exponenta event banner

wden

Автоматический 1-D denoising

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(___) возвращает количество коэффициентов по уровню для denoising DWT. Посмотрите wavedec для получения подробной информации. LXD выход не поддерживается для denoising MODWT. Дополнительные выходные аргументы [CXD,LXD] являются структурой вейвлет-разложения (см. wavedec для получения дополнительной информации) деноизируемого сигнала XD.

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

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

Примеры

свернуть все

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

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

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. Он сравнивает результаты с графиками и пороговыми значениями, полученными с помощью каждого метода.

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

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

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

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

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.

Используя вейвлет Хаара, выполните вейвлет-разложение уровня 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))).

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

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

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

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

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

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

Типы данных: 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 функция. Обратите внимание, что:

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

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

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

  • Выбор scal = 'one' соответствует базовой модели.

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

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

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

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

Ссылки

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

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

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

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

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

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

.

См. также

Функции

Приложения

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