wdenoise

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

Синтаксис

XDEN = wdenoise(X)
XDEN = wdenoise(X,LEVEL)
XDEN = wdenoise(___,Name,Value)
[XDEN,DENOISEDCFS] = wdenoise(___)
[XDEN,DENOISEDCFS,ORIGCFS] = wdenoise(___)

Описание

пример

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

  • Если 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')

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')

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

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

load fdata.mat
plot(fNoisy,'r-')
hold on
plot(fClean,'b-')
grid on
legend('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
plot(cleandb)
title('Denoised - db')
grid on

Вычислите ОСШ каждого сигнала 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
plot(cleanTSli.Time,cleanTSli.fTS15)
title('Level Independent')
grid on

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

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

свернуть все

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

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

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

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

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

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

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

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

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

Имя вейвлета, заданного как символьный массив, чтобы использовать для шумоподавления. Вейвлет должен быть ортогональным или биоортогональным. Ортогональные и биоортогональные вейвлеты определяются как тип 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 - Блокируйте 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', 'Mean', 'Soft' или 'Hard'. Значением по умолчанию является 'Median'.

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

Метод оценки отклонения шума в данных, заданных как символьный массив. Допустимыми опциями является 'LevelIndependent' и 'LevelDependent'.

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

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

  • Для средства оценки блока James-Stein ('BlockJS') '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