wdenoise

Шумоподавление сигнала вейвлета

Описание

пример

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

  • Если X матрица, wdenoise denoises каждый столбец 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(___) возвращает denoised вейвлет и масштабные коэффициенты в массиве ячеек DENOISEDCFS. Элементы DENOISEDCFS в порядке уменьшающегося разрешения. Итоговый элемент DENOISEDCFS содержит приближение (масштабирование) коэффициенты.

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

Примеры

свернуть все

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

load noisdopp
xden = wdenoise(noisdopp);

Постройте сигналы denoised и оригинал.

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

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

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

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

load wnoisydata

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

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

Отобразите на графике исходные данные и denoised данные.

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

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

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

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

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

Figure contains an axes object. The axes object 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 object. The axes object with title Denoised - sym contains an object of type line.

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

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

Вычислите ОСШ каждого сигнала denoised. Подтвердите то использование 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. Denoise временные ряды дважды, оценивая шумовое отклонение по-другому в каждом случае.

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

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

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

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

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

Figure contains an axes object. The axes object 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 object. The axes object with title Level Dependent contains an object of type line.

Входные параметры

свернуть все

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

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

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

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

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

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

Аргументы name-value

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

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

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

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

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

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

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

  • Bayes — Эмпирический байесов

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

  • BlockJS — Блокируйте James-глиняную-кружку

    Этот метод основан на определении 'оптимального размера блока и порога. Получившееся средство оценки пороговой обработки блока дает к одновременно оптимальной глобальной и локальной адаптивности [3].

  • FDR — Ложный уровень открытия

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

  • Minimax — Минимаксная оценка

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

  • SURE — Несмещенная оценка риска глиняной кружки

    Этот метод использует пороговое правило выбора на основе Объективной оценки Глиняной кружки Риска (квадратичная функция потерь). Каждый получает оценку риска для конкретного порогового значения (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'среднее значение, 'Soft', или 'Hard'. Значением по умолчанию является 'Median'.

  • 'FDR' — Единственной поддерживаемой опцией является 'Hard'. Вы не должны задавать ThresholdRule для 'FDR'

Метод оценки отклонения шума в данных.

  • 'LevelIndependent' — Оцените отклонение шума на основе самой прекрасной шкалы (самое высокое разрешение) коэффициенты вейвлета.

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

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

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

свернуть все

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

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

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

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

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

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

Алгоритмы

Самая общая модель для сигнала с шумом имеет следующую форму:

s(n)=f(n)+σe(n),

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

Процедура шумоподавления имеет три шага:

  1. Разложение — Выбирает вейвлет и выбирает уровень N. Вычислите разложение вейвлета s сигнала на уровне N.

  2. Детализируйте содействующую пороговую обработку — Для каждого уровня от 1 до N, выберите порог и примените мягкую пороговую обработку к коэффициентам детали.

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

Больше деталей о пороговых правилах выбора находится в Шумоподавлении Вейвлета и Непараметрической Функциональной Оценке и в справке thselect функция.

Ссылки

[1] Абрамович, F., И. Бенямини, Д. Л. Донохо и я. М. Джонстон. “Адаптируясь к Неизвестной Разреженности путем Управления Ложным Уровнем Открытия”. Летопись Статистики, Издания 34, Номера 2, стр 584–653, 2006.

[2] Antoniadis, A., и Г. Оппенхейм, вейвлеты редакторов и Статистика. Читайте лекции Примечаниям в Статистике. Нью-Йорк: Springer Verlag, 1995.

[3] Стоимость и страхование, T. T. “На Пороговой обработке Блока в Регрессии Вейвлета: Адаптивность, Размер блока и Пороговый уровень”. Statistica Sinica, Издание 12, стр 1241–1273, 2002.

[4] Donoho, D. L. “Прогресс Анализа Вейвлета и WVD: Десятиминутный Тур”. Прогресс Анализа Вейвлета и Приложений (И. Мейер, и. Рок, редакторы). Джиф-сур-Иветт: Выпуски Frontières, 1993.

[5] Donoho, D. L. i. М. Джонстон. “Идеальная Пространственная Адаптация Уменьшением Вейвлета”. Biometrika, Издание 81, стр 425–455, 1994.

[6] Donoho, D. L. “Шумоподавление Мягкой Пороговой обработкой”. Транзакции IEEE на Теории информации, Издании 42, Номере 3, стр 613–627, 1995.

[7] Donoho, D. L. i. М. Джонстон, Г. Керкьячариэн и Д. Пикар. “Уменьшение вейвлета: Asymptopia?” Журнал Королевского Статистического Общества, серий B, Издания 57, № 2, стр 301–369, 1995.

[8] Джонстон, я. M. и Б. В. Сильверман. “Иглы и Солома в Стогах сена: Эмпирические Байесовы Оценки Возможно Разреженных Последовательностей”. Летопись Статистики, Издания 32, Номера 4, стр 1594–1649, 2004.

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

Введенный в R2017b