exponenta event banner

wdenoise

Деноизирование вейвлет-сигнала

Описание

пример

XDEN = wdenoise(X) обозначает данные в X с использованием эмпирического байесовского метода с предшествующим Коши. По умолчанию sym4 используют вейвлет с задним медианным пороговым правилом. Деноизинг снижен до минимума floor(log2N) и wmaxlev(N,'sym4') где N - количество выборок в данных. (Дополнительные сведения см. в разделе wmaxlev.) X - действительный вектор, матрица или расписание.

  • Если X является матрицей, wdenoise обозначает каждый столбец X.

  • Если X - расписание, wdenoise должен содержать векторы вещественных значений в отдельных переменных или одну матрицу данных вещественных значений.

  • X Предполагается равномерно отобранная проба.

  • Если X является расписанием, и метки времени не расположены линейно, wdenoise выдает предупреждение.

XDEN = wdenoise(X,LEVEL) denoises X вниз до LEVEL. LEVEL является положительным целым числом, меньшим или равным floor(log2N) где N - количество выборок в данных. Если не указано, LEVEL по умолчанию - минимальное значение floor(log2N) и wmaxlev(N,'sym4').

пример

XDEN = wdenoise(___,Name,Value) задает параметры, использующие аргументы пары имя-значение в дополнение к любому из входных аргументов в предыдущих синтаксисах.

[XDEN,DENOISEDCFS] = wdenoise(___) возвращает деноизированные коэффициенты вейвлета и масштабирования в массиве ячеек DENOISEDCFS. Элементы DENOISEDCFS в порядке уменьшения разрешающей способности. Последний элемент DENOISEDCFS содержит коэффициенты аппроксимации (масштабирования).

[XDEN,DENOISEDCFS,ORIGCFS] = wdenoise(___) возвращает исходные коэффициенты вейвлета и масштабирования в массиве ячеек ORIGCFS. Элементы ORIGCFS в порядке уменьшения разрешающей способности. Последний элемент ORIGCFS содержит коэффициенты аппроксимации (масштабирования).

Примеры

свернуть все

Получение деноизированной версии шумного сигнала с использованием значений по умолчанию.

load noisdopp
xden = wdenoise(noisdopp);

Постройте график исходных и деноизированных сигналов.

plot([noisdopp' xden'])
legend('Original Signal','Denoised Signal')

Figure contains an axes. The axes contains 2 objects of type line. These objects represent Original Signal, Denoised Signal.

Запретить расписание шумных данных до уровня 5, используя пороговое значение блока.

Загрузите шумный набор данных.

load wnoisydata

Понижение уровня данных до уровня 5 с помощью пороговой обработки блоков путем установки пары имя-значение 'DenoisingMethod','BlockJS'.

xden = wdenoise(wnoisydata,5,'DenoisingMethod','BlockJS');

Постройте график исходных и денонсированных данных.

h1 = plot(wnoisydata.t,[wnoisydata.noisydata(:,1) xden.noisydata(:,1)]);
h1(2).LineWidth = 2;
legend('Original','Denoised')

Figure contains an axes. The axes contains 2 objects of type line. These objects represent Original, Denoised.

Деноизируйте сигнал по-разному и сравните результаты.

Загрузите файл данных, содержащий чистые и шумные версии сигнала. Постройте график сигналов.

load fdata.mat
plot(fNoisy,'r-')
hold on
plot(fClean,'b-')
grid on
legend('Noisy','Clean');

Figure contains an axes. The axes contains 2 objects of type line. These objects represent Noisy, Clean.

Denoise сигнал с помощью sym4 и db1 вейвлеты с девятиуровневой вейвлет-декомпозицией. Постройте график результатов.

cleansym = wdenoise(fNoisy,9,'Wavelet','sym4');
cleandb = wdenoise(fNoisy,9,'Wavelet','db1');
figure
plot(cleansym)
title('Denoised - sym')
grid on

Figure contains an axes. The axes with title Denoised - sym contains an object of type line.

figure
plot(cleandb)
title('Denoised - db')
grid on

Figure contains an axes. The axes with title Denoised - db contains an object of type line.

Вычислите SNR каждого денозированного сигнала. Подтвердите, что с помощью sym4 вейвлет дает лучший результат.

snrsym = -20*log10(norm(abs(fClean-cleansym))/norm(fClean))
snrsym = 35.9623
snrdb = -20*log10(norm(abs(fClean-cleandb))/norm(fClean))
snrdb = 32.2672

Загрузка в файл, содержащий шумные данные 100 временных рядов. Каждый временной ряд является шумной версией fClean. Денуазировать временной ряд дважды, оценивая дисперсию шума по-разному в каждом случае.

load fdataTS.mat
cleanTSld = wdenoise(fdataTS,9,'NoiseEstimate','LevelDependent');
cleanTSli = wdenoise(fdataTS,9,'NoiseEstimate','LevelIndependent');

Сравните один из шумных временных рядов с его двумя денонсированными версиями.

figure
plot(fdataTS.Time,fdataTS.fTS15)
title('Original')
grid on

Figure contains an axes. The axes with title Original contains an object of type line.

figure
plot(cleanTSli.Time,cleanTSli.fTS15)
title('Level Independent')
grid on

Figure contains an axes. The axes with title Level Independent contains an object of type line.

figure
plot(cleanTSld.Time,cleanTSld.fTS15)
title('Level Dependent')
grid on

Figure contains an axes. The axes with title Level Dependent contains an object of type line.

Входные аргументы

свернуть все

Входные данные, определенные как матрица, вектор или расписание вещественных значений. Если X является вектором, он должен иметь по крайней мере две выборки. Если X - матрица или расписание, оно должно содержать не менее двух строк.

Типы данных: double

Уровень вейвлет-разложения, заданный как положительное целое число. LEVEL является положительным целым числом, меньшим или равным floor(log2N) где N - количество выборок в данных.

  • Если не указано, LEVEL по умолчанию - минимальное значение floor(log2N) и wmaxlev(N,'sym4').

  • Для порогов блока Джеймса-Стейна, 'BlockJS', должно быть floor(log2N) коэффициенты на самом высоком уровне разрешения, LEVEL.

Типы данных: double

Аргументы пары «имя-значение»

Укажите дополнительные пары, разделенные запятыми Name,Value аргументы. Name является именем аргумента и Value - соответствующее значение. Name должен отображаться внутри кавычек. Можно указать несколько аргументов пары имен и значений в любом порядке как Name1,Value1,...,NameN,ValueN.

Пример: 'Wavelet','db6','DenoisingMethod','Bayes' отрицает использование Daubechies db6 вейвлет и эмпирический байесовский метод.

Имя вейвлета, определяемого как символьный массив, который используется для обличения. Вейвлет должен быть ортогональным или биортогенным. Ортогональные и биоугольные вейвлеты обозначаются соответственно как вейвлеты типа 1 и типа 2 в менеджере вейвлетов. wavemngr.

  • Допустимые встроенные ортогональные семейства вейвлетов начинаются с haar, dbN, fkN, coifN, или symN где N - количество исчезающих моментов для всех семейств, кроме fk. Для fk, N - количество коэффициентов фильтра.

  • Допустимые семейства биортогональных вейвлетов начинаются с 'biorNr.Nd' или 'rbioNd.Nr', где Nr и Nd - количество исчезающих моментов в вейвлете реконструкции (синтеза) и разложения (анализа).

Определение допустимых значений для моментов исчезновения с помощью waveinfo с кратким именем семейства вейвлетов. Например, введите waveinfo('db') или waveinfo('bior'). Использовать wavemngr('type',WNAME) чтобы определить, является ли вейвлет ортогональным (возвращает 1) или биортогональным (возвращает 2).

Метод деноизирования, используемый для определения порогов деноизирования для данных X.

  • Bayes - Эмпирический Байес

    Этот метод использует пороговое правило, основанное на предположении, что измерения имеют независимые предшествующие распределения, задаваемые моделью смеси. Поскольку измерения используются для оценки веса в модели смеси, метод имеет тенденцию работать лучше с большим количеством образцов. По умолчанию для измерения риска используется правило задней медианы [8].

  • BlockJS - Блок Джеймс-Стейн

    Этот способ основан на определении «оптимального размера блока и порога». Результирующий блок оценки порогов дает одновременно оптимальную глобальную и локальную адаптивность [3].

  • FDR - Частота ложного обнаружения

    Этот метод использует пороговое правило, основанное на управлении ожидаемым отношением ложных положительных обнаружений ко всем положительным обнаружениям. FDR способ лучше всего работает с разреженными данными. Выбор соотношения, или Q-значения, менее 1/2 дает асимптотически минимальную оценку [1].

  • Minimax - Оценка Minimax

    Этот способ использует фиксированный порог, выбранный для получения минимальной производительности для среднеквадратической ошибки по отношению к идеальной процедуре. Принцип minimax используется в статистике для разработки оценщиков. Посмотрите thselect для получения дополнительной информации.

  • SURE - Объективная оценка риска Stein

    Этот метод использует правило выбора порога, основанное на несмещенной оценке риска Штейна (квадратичная функция потерь). Получают оценку риска для конкретного порогового значения (t). Минимизация рисков в (t) дает выбор порогового значения.

  • UniversalThreshold - Универсальный порог 2ln (длина (x)).

    Этот метод использует пороговое значение фиксированной формы, дающее минимальную производительность, умноженную на малый коэффициент, пропорциональный log(length(X)).

Примечание

Для 'FDR', существует необязательный аргумент для Q-значения, которое является долей ложных срабатываний. Q - действительный скаляр между 0 и 1/2, 0 < Q <= 1/2. Определить 'FDR' с Q-значением используйте массив ячеек, где вторым элементом является Q-значение. Например, 'DenoisingMethod',{'FDR',0.01}. Если не указано, по умолчанию Q имеет значение 0.05.

Пороговое правило, заданное как символьный массив, для использования для сжатия вейвлет-коэффициентов. 'ThresholdRule' действителен для всех денонсирующих методов, но допустимые опции и значения по умолчанию зависят от деноизирующего метода. Правила, возможные для различных методов обезвреживания, определяются следующим образом:

  • 'BlockJS' - Единственным поддерживаемым вариантом является 'James-Stein'. Указывать не нужно ThresholdRule для 'BlockJS'.

  • 'SURE', 'Minimax', 'UniversalThreshold' - Допустимые параметры: 'Soft' или 'Hard'. Значение по умолчанию: 'Soft'.

  • 'Bayes' - Допустимые параметры: 'Median', 'Mean', 'Soft', или 'Hard'. Значение по умолчанию: 'Median'.

  • 'FDR' - Единственным поддерживаемым вариантом является 'Hard'. Определение не требуется ThresholdRule для 'FDR'

СПОСОБ ОЦЕНКИ ДИСПЕРСИИ ШУМА В ДАННЫХ.

  • 'LevelIndependent' - Оценить дисперсию шума на основе самых тонких (наивысшего разрешения) вейвлет-коэффициентов.

  • 'LevelDependent' Оценка дисперсии шума на основе вейвлет-коэффициентов на каждом уровне разрешения.

Определение NoiseEstimate с 'BlockJS' способ обессоливания не оказывает влияния. Блок оценки Джеймса-Стейна всегда использует 'LevelIndependent' оценка шума.

Выходные аргументы

свернуть все

Деноизированный вектор, матрица или версия расписания X. Для ввода расписания, XDEN имеет те же имена переменных и метки времени, что и исходное расписание.

Типы данных: double

Деноизолированный вейвлет и коэффициенты масштабирования деноизолированных данных XDEN, возвращено в массиве ячеек. Элементы DENOISEDCFS в порядке уменьшения разрешающей способности. Последний элемент DENOISEDCFS содержит коэффициенты аппроксимации (масштабирования).

Типы данных: double

Исходные вейвлет-коэффициенты и коэффициенты масштабирования данных X, возвращено в массиве ячеек. Элементы ORIGCFS в порядке уменьшения разрешающей способности. Последний элемент ORIGCFS содержит коэффициенты аппроксимации (масштабирования).

Типы данных: double

Алгоритмы

Наиболее общая модель для шумного сигнала имеет вид:

s (n) = f (n) + starte (n),

где время n равно. В простейшей модели предположим, что e (n) является гауссовым белым шумом N (0,1), а уровень шума λ равен 1. Целью подавления является подавление шумовой части сигнала s и восстановление f.

Процедура обезвреживания состоит из трех этапов:

  1. Декомпозиция - выберите вейвлет и уровень N. Вычислить вейвлет-разложение сигнала s на уровне N.

  2. Пороговое значение коэффициентов детализации - для каждого уровня от 1 до Nвыберите порог и примените мягкое пороговое значение к коэффициентам детализации.

  3. Реконструкция - вычислить вейвлет-реконструкцию на основе исходных коэффициентов аппроксимации уровня N и измененные коэффициенты детализации уровней от 1 до N.

Более подробная информация о правилах выбора порога приведена в Vavelet Denoising и Nonparametric Function Estimation и в помощи thselect функция.

Ссылки

[1] Абрамович, Ф., Я. Беньямини, Д. Л. Донохо, И. М. Джонстон. «Адаптация к неизвестной разреженности путем управления частотой ложного обнаружения». Анналы статистики, том 34, номер 2, стр. 584-653, 2006.

[2] Антониадис, А. и Г. Оппенгейм, эд. Вейвлеты и статистика. Лекционные записки по статистике. Нью-Йорк: Спрингер Верлаг, 1995.

[3] Cai, T.T. «О пороге блока в вейвлет-регрессии: адаптивность, размер блока и пороговый уровень». Statistica Sinica, Vol. 12, pp. 1241-1273, 2002.

[4] Донохо, Д. Л. «Прогресс в вейвлет-анализе и WVD: десятиминутный тур». Прогресс в вейвлет-анализе и приложениях (Y. Meyer, и S. Roques, eds.). Gif-sur-Yvette: Editions Frontières, 1993.

[5] Донохо, Д. Л., И. М. Джонстон. «Идеальная пространственная адаптация с помощью Wavelet Shrinkage». Биометрика, том 81, стр. 425-455, 1994.

[6] Донохо, Д. Л. «Снятие шума с помощью мягкого порогования». IEEE Transactions on Information Theory, Vol. 42, Number 3, pp. 613-627, 1995.

[7] Донохо, Д. Л., И. М. Джонстоун, Г. Керкячарян и Д. Пикар. «Wavelet Shrinkage: асимптопия?» Журнал Королевского статистического общества, серия B, том 57, № 2, стр. 301 - 369, 1995.

[8] Джонстон, И. М. и Б. В. Сильверман. «Иглы и солома в стогах сена: эмпирические оценки Байеса возможно разреженных последовательностей». Анналы статистики, том 32, номер 4, стр. 1594 - 1649, 2004.

Расширенные возможности

..
Представлен в R2017b