wpdencmp

Шумоподавление или сжатие с помощью пакетов вейвлета

wpdencmp выполняет процесс шумоподавления или сжатия сигнала или изображения с помощью пакетов вейвлета. Идеи и процедуры для шумоподавления и сжатия с помощью или вейвлета или пакетных разложений вейвлета являются тем же самым. Смотрите wdenoise или wdencmp для получения дополнительной информации.

Синтаксис

[xd,treed,perf0,perfl2] = wpdencmp(x,sorh,n,wname,crit,par,keepapp)
[___] = wpdencmp(tree,sorh,crit,par,keepapp)

Описание

пример

[xd,treed,perf0,perfl2] = wpdencmp(x,sorh,n,wname,crit,par,keepapp) возвращает denoised или сжатую версию xd входных данных x, полученный пакетной содействующей пороговой обработкой вейвлета. wpdencmp также возвращает пакет вейвлета лучшее древовидное разложение treed xd (см. besttree для получения дополнительной информации), и L 2 энергетических очков восстановления и сжатия в процентах как perfl2 и perf0, соответственно.

[___] = wpdencmp(tree,sorh,crit,par,keepapp) использует пакетное разложение вейвлета tree данных, чтобы быть denoised или сжатый.

Примеры

свернуть все

Этот пример показывает как denoise использование пакетов вейвлета.

Используйте wnoise, чтобы сгенерировать тяжелый сигнал синуса и шумную версию.

init = 1000;
[xref,x] = wnoise(5,11,7,init);
figure
subplot(2,1,1)
plot(xref)
axis tight
title('Heavy Sine')
subplot(2,1,2)
plot(x)
axis tight
title('Noisy Heavy Sine')

Denoise сигнал с шумом с помощью четырехуровневого пакетного разложения вейвлета. Используйте порядок 4 Daubechies наименьшее количество асимметричного вейвлета.

n = length(x);
thr = sqrt(2*log(n*log(n)/log(2)));
xwpd = wpdencmp(x,'s',4,'sym4','sure',thr,1);

Сравните с основанным на вейвлете результатом шумоподавления. Используйте wdenoise с сопоставимыми входными параметрами. Постройте различия между двумя сигналами denoised и исходным сигналом.

xwd = wdenoise(x,4,'Wavelet','sym4','DenoisingMethod','UniversalThreshold','ThresholdRule','Hard');
figure
subplot(2,1,1)
plot(x-xwpd)
axis tight
ylim([-12 12])
title('Difference Between Wavelet Packet Denoised and Original')
subplot(2,1,2)
plot(x-xwd)
axis tight
ylim([-12 12])
title('Difference Between Wavelet Denoised and Original')

Этот пример показывает как denoise изображение с помощью пакетов вейвлета.

Загрузите изображение и сгенерируйте шумную копию. Поскольку воспроизводимость установила случайный seed.

rng default
load sinsin
x = X/18 + randn(size(X));
imagesc(X)
colormap(gray)
title('Original Image')

figure
imagesc(x)
colormap(gray)
title('Noisy Image')

Denoise шумное изображение с помощью пакетного разложения вейвлета. Используйте ddencmp, чтобы определить параметры шумоподавления. Сделайте трехуровневое разложение с порядком 4 Daubechies наименьшее количество асимметричного вейвлета.

[thr,sorh,keepapp,crit] = ddencmp('den','wp',x);
xd = wpdencmp(x,sorh,3,'sym4',crit,thr,keepapp);
figure
imagesc(xd)
colormap(gray)
title('Denoised Image')

Этот пример показывает, как сжать 1D сигнал с помощью пакетов вейвлета.

Загрузите сигнал. Используйте ddencmp, чтобы определить значения сжатия для того сигнала.

load sumlichr
x = sumlichr;
[thr,sorh,keepapp,crit] = ddencmp('cmp','wp',x)
thr = 0.5193
sorh = 
'h'
keepapp = 1
crit = 
'threshold'

Сожмите сигнал с помощью глобальной пороговой обработки с порогом лучшее основание. Используйте порядок 4 Daubechies наименьшее количество асимметричного вейвлета и сделайте трехуровневое пакетное разложение вейвлета.

[xc,wpt,perf0,perfl2] = wpdencmp(x,sorh,3,'sym4',crit,thr,keepapp);

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

subplot(2,1,1)
plot(x)
title('Original Signal')
axis tight
subplot(2,1,2)
plot(xc)
xlabel(['L^2 rec.: ',num2str(perfl2),'%   zero cfs.: ',num2str(perf0),'%'])
title('Compressed Signal Using Wavelet Packets')
axis tight

Сожмите сигнал снова, но это делает трехуровневое разложение вейвлета. Сохраните все другие параметры тем же самым.

[thr,sorh,keepapp] = ddencmp('cmp','wv',x);
[xcwv,~,~,perf0wv,perfl2wv] = wdencmp('gbl',x,'sym4',3,thr,sorh,keepapp);
figure
subplot(2,1,1)
plot(x)
title('Original Signal')
axis tight
subplot(2,1,2)
plot(xc)
xlabel(['L^2 rec.: ',num2str(perfl2wv),'%   zero cfs.: ',num2str(perf0wv),'%'])
title('Compressed Signal Using Wavelets')
axis tight

Большая часть коэффициентов установлена равная 0 при сжатии использования пакетного разложения вейвлета.

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

свернуть все

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

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

Пакетное разложение вейвлета данных, чтобы быть denoised или сжатый, заданный как пакетное дерево вейвлета. Смотрите wpdec и wpdec2 для получения дополнительной информации.

Тип пороговой обработки, чтобы выполнить:

  • S Мягкая пороговая обработка

  • H Трудная пороговая обработка

Смотрите wthresh для получения дополнительной информации.

Пакетный уровень разложения вейвлета, заданный как положительное целое число.

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

Энтропийный тип, заданный как одно из следующего:

Энтропийный тип (crit)

Пороговый параметр (par)

Комментарии

'shannon' 

par не используется.

'log energy' 

par не используется.

'threshold'0 ≤ par

par является порогом.

'sure'0 ≤ par

par является порогом.

'norm'1 ≤ par

par является степенью.

'user'Символьный вектор

par является вектором символов, содержащим имя файла вашей собственной энтропийной функции с одним входом x.

'FunName'Никакие ограничения на par

FunName является любым вектором символов кроме предыдущих энтропийных перечисленных типов.

FunName содержит имя файла вашей собственной энтропийной функции с x, как введено и par как дополнительный параметр к вашей энтропийной функции.

crit и пороговый параметр, par вместе задает энтропийный критерий, раньше определяли лучшее разложение. Смотрите wentropy для получения дополнительной информации.

Если crit = 'nobest', никакая оптимизация не сделана, и текущее разложение является порогом.

Пороговый параметр, заданный вещественным числом, вектором символов или скаляром строки. par и энтропийный тип, crit вместе задает энтропийный критерий, раньше определяли лучшее разложение. Смотрите wentropy для получения дополнительной информации.

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

Пороговая установка приближения, заданная или как 0 или как 1. Если keepapp = 1, коэффициенты приближения не могут быть порогом. Если keepapp = 0, коэффициенты приближения могут быть порогом.

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

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

свернуть все

Denoised или сжатые данные, возвращенные как вектор с действительным знаком или матрица. xd и x имеют те же размерности.

Пакет вейвлета лучшее древовидное разложение xd, возвращенного как пакетное дерево вейвлета.

Счет сжатия, возвращенный как вещественное число. perf0 является процентом пороговых коэффициентов, которые равны 0.

L 2 энергетических восстановления, возвращенные как вещественное число. perfl2 равен 100×(векторная норма   пакетных коэффициентов вейвлета  xdвекторная норма   пакетных коэффициентов вейвлета  x)2. Если x является одномерным сигналом и wname ортогональный вейвлет, perfl2 упрощает до

Ссылки

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

[2] Койфман, R. R. и М. Ф. Викераузер. “Основанные на энтропии Алгоритмы для Лучшего Базисного Выбора”. Транзакции IEEE на Теории информации. Издание 38, Номер 2, 1992, стр 713–718.

[3] DeVore, R. A. Б. Джейрт и Б. Дж. Лукир. “Сжатие изображения Посредством Кодирования Преобразования Вейвлета”. Транзакции IEEE на Теории информации. Издание 38, Номер 2, 1992, стр 719–746.

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

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

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

Смотрите также

Функции

Приложения

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