wden

Автоматическое 1-D шумоподавление

wden больше не рекомендуется. Использовать wdenoise вместо этого.

Описание

пример

XD = wden(X,TPTR,SORH,SCAL,N,wname) возвращает деноизированную версию XD сигнала X. Функция использует N-уровневое вейвлет X использование заданного ортогонального или биортогонального вейвлет wname для получения вейвлет. Правило выбора порогового значения TPTR применяется к разложению вейвлета. SORH и SCAL определить, как применяется правило.

XD = wden(C,L,___) возвращает деноизированную версию XD сигнала X используя те же опции, что и в предыдущем синтаксисе, но получаемые непосредственно из структуры вейвлеты разложения [C, L] из X. [C, L] - выход wavedec.

XD = wden(W,'modwtsqtwolog',SORH,'mln',N,wname) возвращает деноизированный сигнал XD полученный при работе с матрицей дискретного вейвлет (MODWT) с максимальным перекрытием W, где W - выходы modwt. Вы должны использовать тот же ортогональный вейвлет в обоих modwt и wden.

[XD,CXD] = wden(___) возвращает деноизированные коэффициенты вейвлета. Для дискретного преобразования вейвлета (DWT) шумоподавления, CXD является вектором (см. wavedec). Для шумоподавления MODWT, CXD является матрицей с N+ 1 строка ( см.modwt). Количество столбцов CXD равен длине входного сигнала X.

[XD,CXD,LXD] = wden(___) возвращает количество коэффициентов по уровням для шумоподавления DWT. Посмотрите wavedec для получения дополнительной информации. The LXD выход не поддерживается для шумоподавления MODWT. Дополнительные выходные аргументы [CXD,LXD] являются структурой разложения вейвлет (см. wavedec для получения дополнительной информации) деноизмененного сигнала XD.

[XD,CXD,LXD,THR] = wden(___) возвращает пороги шумоподавления по уровням для шумоподавления DWT.

[XD,CXD,THR] = wden(___) возвращает пороги шумоподавления по уровням для шумоподавления MODWT, когда вы задаете 'modwtsqtwolog' входной параметр.

Примеры

свернуть все

Этот пример показов, как применить три различных метода шумоподавления к сигналу с шумом. Он сравнивает результаты с графиками и пороговыми значениями, полученными каждым методом.

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

rng('default')

Создайте сигнал, состоящий из синусоиды 2 Гц с переходными процессами на 0,3 и 0,72 секунде. Добавьте случайным образом сгенерированный шум к сигналу и постройте график результата.

N = 1000;
t = linspace(0,1,N);
x = 4*sin(4*pi*t);
x = x - sign(t-0.3) - sign(0.72-t);
sig = x + 0.5*randn(size(t));
plot(t,sig)
title('Signal')
grid on

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

Использование sym8 вейвлет, выполните вейвлет-разложение сигнала 5 уровня и обнулите его путем применения трех различных правил выбора порога к вейвлет-коэффициентам: SURE, minimax и универсальный порог Донохо и Джонстона с зависящей от уровня оценкой шума. В каждом случае примените жесткое пороговое значение.

lev = 5;
wname = 'sym8';
[dnsig1,c1,l1,threshold_SURE] = wden(sig,'rigrsure','h','mln',lev,wname);
[dnsig2,c2,l2,threshold_Minimax] = wden(sig,'minimaxi','h','mln',lev,wname);
[dnsig3,c3,l3,threshold_DJ] = wden(sig,'sqtwolog','h','mln',lev,wname);

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

subplot(3,1,1)
plot(t,dnsig1)
title('Denoised Signal - SURE')
grid on
subplot(3,1,2)
plot(t,dnsig2)
title('Denoised Signal - Minimax')
grid on
subplot(3,1,3)
plot(t,dnsig3)
title('Denoised Signal - Donoho-Johnstone')
grid on

Figure contains 3 axes. Axes 1 with title Denoised Signal - SURE contains an object of type line. Axes 2 with title Denoised Signal - Minimax contains an object of type line. Axes 3 with title Denoised Signal - Donoho-Johnstone contains an object of type line.

Сравните пороги, применяемые на каждом уровне детализации для трех методов шумоподавления.

threshold_SURE
threshold_SURE = 1×5

    0.9592    0.6114    1.4734    0.7628    0.4360

threshold_Minimax
threshold_Minimax = 1×5

    1.1047    1.0375    1.3229    1.1245    1.0483

threshold_DJ
threshold_DJ = 1×5

    1.8466    1.7344    2.2114    1.8798    1.7524

В этом примере аннулируется сигнал с использованием DWT и MODWT. Он сравнивает результаты с графиками и пороговыми значениями, полученными каждым методом.

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

rng('default')

Создайте сигнал, состоящий из синусоиды 2 Гц с переходными процессами на 0,3 и 0,72 секунде. Добавьте случайным образом сгенерированный шум к сигналу и постройте график результата.

N = 1000;
t = linspace(0,1,N);
x = 4*sin(4*pi*t);
x = x - sign(t-0.3) - sign(0.72-t);
sig = x + 0.5*randn(size(t));
plot(t,sig)
title('Signal')
grid on

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

Использование db2 вейвлет, выполните вейвлет-разложение сигнала уровня 3 и денуризируйте его с помощью универсального порога Донохо и Джонстона с зависящей от уровня оценкой шума. Получите деноизированные версии с помощью DWT и MODWT, обе с мягким порогом.

wname = 'db2';
lev = 3;
[xdDWT,c1,l1,threshold_DWT] = wden(sig,'sqtwolog','s','mln',lev,wname);
[xdMODWT,c2,threshold_MODWT] = wden(sig,'modwtsqtwolog','s','mln',lev,wname);

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

subplot(2,1,1)
plot(t,xdDWT)
grid on
title('DWT Denoising')
subplot(2,1,2)
plot(t,xdMODWT)
grid on
title('MODWT Denoising')

Figure contains 2 axes. Axes 1 with title DWT Denoising contains an object of type line. Axes 2 with title MODWT Denoising contains an object of type line.

Сравните пороги, применяемые в каждом случае.

threshold_DWT
threshold_DWT = 1×3

    1.7783    1.6876    2.0434

threshold_MODWT
threshold_MODWT = 1×3

    1.2760    0.6405    0.3787

Этот пример деноидирует блочный сигнал, используя wavelet Haar с DWT и MODWT деноизацией. Он сравнивает результаты с графиками и метриками для оригинальной и деноизированной версий.

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

rng('default')

Сгенерируйте сигнал и шумную версию с квадратным корнем отношения сигнал/шум, равным 3. Постройте график и сравните каждый.

[osig,nsig] = wnoise('blocks',10,3);
plot(nsig,'r')
hold on
plot(osig,'b')
legend('Noisy Signal','Original Signal')

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

Используя вейвлет Haar, выполните вейвлет-разложение уровня 6 сигнала с шумом и обнулите его, используя универсальный порог Донохо и Джонстона с зависящей от уровня оценкой шума. Получите деноизированные версии с помощью DWT и MODWT, обе с мягким порогом.

wname = 'haar';
lev = 6 ;
[xdDWT,c1,l1] = wden(nsig,'sqtwolog','s','mln',lev,wname);
[xdMODWT,c2] = wden(nsig,'modwtsqtwolog','s','mln',lev,wname);

Постройте и сравните оригинальную, бесшумную версию сигнала с двумя деноизованными версиями.

figure
plot(osig,'b')
hold on
plot(xdDWT,'r--')
plot(xdMODWT,'k-.')
legend('Original','DWT','MODWT')
hold off

Figure contains an axes. The axes contains 3 objects of type line. These objects represent Original, DWT, MODWT.

Вычислите нормы L2 и L-бесконечности различия между исходным сигналом и двумя деноизированными версиями.

L2norm_original_DWT = norm(abs(osig-xdDWT),2)
L2norm_original_DWT = 36.1194
L2norm_original_MODWT = norm(abs(osig-xdMODWT),2)
L2norm_original_MODWT = 14.5987
LInfinity_original_DWT = norm(abs(osig-xdDWT),Inf)
LInfinity_original_DWT = 4.7181
LInfinity_original_MODWT = norm(abs(osig-xdMODWT),Inf)
LInfinity_original_MODWT = 2.9655

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

свернуть все

Входные данные для денуилизации, заданные как действительный вектор.

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

Вейвлеты вейвлет-расширения данных, которые будут деноизменены, заданы как действительный вектор. C - выходы wavedec.

Пример: [C,L] = wavedec(randn(1,1024),3,'db4')

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

Размер вейвлетов вейвлет-расширения деноцируемого сигнала, заданный как вектор положительных целых чисел. L - выход wavedec.

Пример: [C,L] = wavedec(randn(1,1024),3,'db4')

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

Максимальное перекрытие вейвлета структура разложения сигнала для денуизации, заданная как действительная матрица. W - выход modwt. Вы должны использовать тот же ортогональный вейвлет в обоих modwt и wden.

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

Правило выбора порога для применения к структуре разложения вейвлетов X:

  • 'rigsure' - Используйте принцип объективного риска Штейна.

  • 'heursure' - Используйте эвристический вариант объективного риска Штейна.

  • 'sqtwolog - Использовать универсальный порог 2ln(длина(x)).

  • 'minimaxi' - Используйте минимаксное пороговое значение. (См. thselect для получения дополнительной информации

Тип порога для выполнения:

  • 's' - Мягкое пороговое значение

  • 'h' - Жесткое пороговое значение

Мультипликативное перемасштабирование порога:

  • 'one' - Нет перемасштабирования

  • 'sln' - Пересмотр с использованием одной оценки уровня шума на основе коэффициентов первого уровня

  • 'mln' - Пересмотр с использованием зависящей от уровня оценки шума уровня

Уровень вейвлет, заданный как положительное целое число. Использовать wmaxlev для обеспечения того, чтобы коэффициенты вейвлета были свободны от граничных эффектов. Если граничные эффекты не являются проблемой в вашем приложении, хорошим правилом является установка N меньше или равно fix(log2(length(X))).

Имя вейвлета, заданное как символьный массив, используемое для шумоподавления. Для шумоподавления DWT вейвлет должен быть ортогональным или биортогональным. Для шумоподавления MODWT вейвлет должен быть ортогональным. Ортогональные и биортогональные вейвлеты обозначаются как вейвлеты типа 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).

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

свернуть все

Денонизированные данные, возвращенные как действительный вектор.

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

Деноизмененные коэффициенты вейвлета, возвращенные как действительный вектор или матрица. Для шумоподавления DWT, CXD является вектором (см. wavedec). Для шумоподавления MODWT, CXD является матрицей с N+1 строки (см. modwt). Количество столбцов равно длине входного сигнала X.

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

Размер деноцированных коэффициентов вейвлета по уровню для шумоподавления DWT, возвращенный как вектор положительных целых чисел (см. wavedec). The LXD выход не поддерживается для шумоподавления MODWT. [CXD, LXD] - структура вейвлет деноизмененного сигнала XD.

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

Шумоподавление порогов по уровню, возвращается как длина N вектор с реальным значением.

Типы данных: 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.

Более подробная информация о правилах выбора порогов содержится в Denoising Wavelet и непараметрической оценке функции и в помощи thselect функция. Обратите внимание, что:

  • Вектор коэффициентов детализации является суперпозицией коэффициентов f и коэффициентов e. Разложение e приводит к коэффициентам детализации, которые являются стандартными Гауссовыми белыми шумами.

  • Минимаксные и SURE правила выбора порога более консервативны и более удобны, когда небольшие детали функции f лежать в шумовой области значений. Два других правила удаляют шум более эффективно. Опция 'heursure' это компромисс.

На практике базовая модель не может использоваться непосредственно. Чтобы справиться с отклонениями модели, оставшийся параметр scal необходимо указать. Это соответствует методам перемасштабирования порогов.

  • Опция scal = 'one' соответствует базовой модели.

  • Опция scal = 'sln' обрабатывает перемасштабирование порога с использованием одной оценки уровня шума на основе коэффициентов первого уровня.

    В целом можно игнорировать уровень шума, который должен быть оценен. Коэффициенты детализации CD 1 (самая мелкая шкала) являются по существу шумовыми коэффициентами со стандартным отклонением, равным Срединное абсолютное отклонение коэффициентов является устойчивой оценкой Использование надежной оценки имеет решающее значение. Если коэффициенты уровня 1 содержат детали f, эти детали концентрируются в нескольких коэффициентах, чтобы избежать эффектов конца сигнала, которые являются чистыми программными продуктами из-за расчетов на ребрах.

  • Опция scal = 'mln' обрабатывает перемасштабирование порога с использованием зависящей от уровня оценки шума уровня.

    Когда вы подозреваете небелое шумовое e, пороги должны быть пересмотрены зависимой от уровня оценкой шума уровня. Такой же вид стратегии используется при оценке по уровням, Эта оценка реализована в файле wnoisest, который обрабатывает структуру вейвлета разложения исходного сигнала s непосредственно.

Ссылки

[1] Antoniadis, A., and G. Oppenheim, eds. Вейвлеты и статистика, 103. Лекции по статистике. Нью-Йорк: Springer Verlag, 1995.

[2] Donoho, D. L. «Progress in Wavelet Analysis and WVD: A Ten Minute Tour». Прогресс в области Wavelet Analysis and Applications (Y. Meyer, and S. Roques, eds.). Gif-sur-Yvette: Editions Frontiéres, 1993.

[3] Donoho, D. L., and Johnstone, I.M «Ideal Spatial Adaptation by Wavelet Shrinkage». Биометрика, том 81, стр. 425-455, 1994.

[4] Donoho, D. L. «De-noising by Soft-Thresholding». Транзакции IEEE по теории информации, том 42, № 3, стр. 613-627, 1995.

[5] Donoho, D. L., I. M. Johnstone, G. Kerkyacharian, and D. Picard. «Усадка вейвлет: асимптопия?» Журнал Королевского статистического общества, серия B. Vol. 57, Number 2, pp . 301-369, 1995.

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

.

См. также

Функции

Приложения

Представлено до R2006a