symaux

Symlet вейвлета фильтрация расчета

Описание

The symaux функция генерирует коэффициенты масштабирующего фильтра для «наименее асимметричных» вейвлетов Daubechies.

w = symaux(n) является порядком n Фильтр масштабирования Symlet такой, что sum(w) = 1.

Примечание

  • Нестабильность может возникнуть, когда n слишком велик. Начиная со значений n в области значений 30-х годов выход функции больше не будет точно представлять коэффициенты масштабирующего фильтра.

  • Как n увеличивается, время, необходимое для быстрого вычисления коэффициентов фильтра, увеличивается.

  • Для n = 1, 2 и 3, порядок n Фильтры Symlet и упорядочивайте n Фильтры Daubechies идентичны. См. Экстремальная фаза.

пример

w = symaux(___,sumw) является порядком n Фильтр масштабирования Symlet такой, что sum(w) = sumw.

w = symaux(n,0) эквивалентно w = symaux(n,1).

Примеры

свернуть все

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

Вычислите коэффициенты масштабирующего фильтра симлета порядка 10, сумма которого равна2.

n = 10;
w = symaux(n,sqrt(2));

Подтвердите, что сумма коэффициентов равна 2 и норма равна 1.

sqrt(2)-sum(w)
ans = 0
1-sum(w.^2)
ans = 1.1324e-14

Поскольку целочисленные преобразования функции масштабирования образуют ортогональный базис, коэффициенты удовлетворяют отношению nw(n)w(n-2k)=δ(k). Подтвердите это, взяв автокорреляцию коэффициентов и построив график результата.

corrw = xcorr(w,w);
stem(corrw)
grid on
title('Autocorrelation of scaling coefficients')

Figure contains an axes. The axes with title Autocorrelation of scaling coefficients contains an object of type stem.

stem(corrw(2:2:end))
grid on
title('Even-indexed autocorrelation values')

Figure contains an axes. The axes with title Even-indexed autocorrelation values contains an object of type stem.

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

Сгенерируйте порядок 4 масштабирующий фильтр Daubechies и постройте его график.

wdb4 = dbaux(4)
wdb4 = 1×8

    0.1629    0.5055    0.4461   -0.0198   -0.1323    0.0218    0.0233   -0.0075

stem(wdb4)
title('Order 4 Daubechies Scaling Filter')

Figure contains an axes. The axes with title Order 4 Daubechies Scaling Filter contains an object of type stem.

wdb4 является решением уравнения: P = conv (wrev (w), w) * 2, где P является фильтром «Lagrange trous» для N = 4. Оцените P и постройте график. P является симметричным фильтром, и wdb4 является минимальным фазовым решением предыдущего уравнения на основе корней P.

P = conv(wrev(wdb4),wdb4)*2;
stem(P)
title('''Lagrange trous'' filter')

Figure contains an axes. The axes with title 'Lagrange trous' filter contains an object of type stem.

Сгенерируйте wsym4, фильтр симлетного масштабирования порядка 4 и постройте его график. Симлеты являются «наименее асимметричными» вейвлетами Доубехи, полученными из другого выбора между корнями P.

wsym4 = symaux(4)
wsym4 = 1×8

    0.0228   -0.0089   -0.0702    0.2106    0.5683    0.3519   -0.0210   -0.0536

stem(wsym4)
title('Order 4 Symlet Scaling Filter')

Figure contains an axes. The axes with title Order 4 Symlet Scaling Filter contains an object of type stem.

Вычислите conv (wrev (wsym4), wsym4) * 2 и подтвердите, что wsym4 является другим решением уравнения P = conv (wrev (w), w) * 2.

P_sym = conv(wrev(wsym4),wsym4)*2;
err = norm(P_sym-P)
err = 1.8677e-15

Для заданной поддержки ортогональный вейвлет с фазового отклика, наиболее близко напоминающей линейную фазу фильтр, называется наименее асимметричным. Симлеты являются примерами наименее асимметричных вейвлеты. Это модифицированные версии классических вейвлетов Daubechies db. В этом примере вы покажете, что симлет порядка 4 имеет почти линейный фазовый отклик, в то время как вейвлет порядка 4 Daubechies не имеет.

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

[phi_sym,~,xval_sym]=wavefun('sym4',10);
[phi_db,~,xval_db]=wavefun('db4',10);
subplot(2,1,1)
plot(xval_sym,phi_sym)
title('sym4 - Scaling Function')
grid on
subplot(2,1,2)
plot(xval_db,phi_db)
title('db4 - Scaling Function')
grid on

Figure contains 2 axes. Axes 1 with title sym4 - Scaling Function contains an object of type line. Axes 2 with title db4 - Scaling Function contains an object of type line.

Сгенерируйте фильтры, сопоставленные с симлетами порядка 4 и вейвлетами Daubechies.

scal_sym = symaux(4,sqrt(2));
scal_db = dbaux(4,sqrt(2));

Вычислите частотную характеристику фильтров масштабирующего синтеза.

[h_sym,w_sym] = freqz(scal_sym);
[h_db,w_db] = freqz(scal_db);

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

h_sym_u = unwrap(angle(h_sym));
h_db_u = unwrap(angle(h_db));
figure
plot(w_sym/pi,h_sym_u,'.')
hold on
plot(w_sym([1 end])/pi,h_sym_u([1 end]),'r')
grid on
xlabel('Normalized Frequency ( x \pi rad/sample)')
ylabel('Phase (radians)')
legend('Phase Angle of Frequency Response','Straight Line')
title('Symlet Order 4 - Phase Angle')

Figure contains an axes. The axes with title Symlet Order 4 - Phase Angle contains 2 objects of type line. These objects represent Phase Angle of Frequency Response, Straight Line.

figure
plot(w_db/pi,h_db_u,'.')
hold on
plot(w_db([1 end])/pi,h_db_u([1 end]),'r')
grid on
xlabel('Normalized Frequency ( x \pi rad/sample)')
ylabel('Phase (radians)')
legend('Phase Angle of Frequency Response','Straight Line')
title('Daubechies Order 4 - Phase Angle')

Figure contains an axes. The axes with title Daubechies Order 4 - Phase Angle contains 2 objects of type line. These objects represent Phase Angle of Frequency Response, Straight Line.

The sym4 и db4 вейвлеты не симметричны, но биортогональный вейвлет. Постройте график функции масштабирования, связанной со bior3.5 вейвлет. Вычислите частотную характеристику фильтра масштабирования синтеза для вейвлета и проверьте, что он имеет линейную фазу.

[~,~,phi_bior_r,~,xval_bior]=wavefun('bior3.5',10);
figure
plot(xval_bior,phi_bior_r)
title('bior3.5 - Scaling Function')
grid on

Figure contains an axes. The axes with title bior3.5 - Scaling Function contains an object of type line.

[LoD_bior,HiD_bior,LoR_bior,HiR_bior] = wfilters('bior3.5');
[h_bior,w_bior] = freqz(LoR_bior);
h_bior_u = unwrap(angle(h_bior));
figure
plot(w_bior/pi,h_bior_u,'.')
hold on
plot(w_bior([1 end])/pi,h_bior_u([1 end]),'r')
grid on
xlabel('Normalized Frequency ( x \pi rad/sample)')
ylabel('Phase (radians)')
legend('Phase Angle of Frequency Response','Straight Line')
title('Biorthogonal 3.5 - Phase Angle')

Figure contains an axes. The axes with title Biorthogonal 3.5 - Phase Angle contains 2 objects of type line. These objects represent Phase Angle of Frequency Response, Straight Line.

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

Сгенерируйте коэффициенты масштабирующего фильтра для db15 и sym15 вейвлеты. Оба вейвлета имеют поддержку ширины 2×15-1=29.

[~,~,LoR_db,~] = wfilters('db15');
[~,~,LoR_sym,~] = wfilters('sym15');

Затем сгенерируйте коэффициенты масштабирующего фильтра для coif5 вейвлет. Этот вейвлет также имеет поддержку ширины 6×5-1=29.

[~,~,LoR_coif,~] = wfilters('coif5');

Подтвердите сумму коэффициентов для всех трех вейвлет равной 2.

sqrt(2)-sum(LoR_db)
ans = 2.2204e-16
sqrt(2)-sum(LoR_sym)
ans = 0
sqrt(2)-sum(LoR_coif)
ans = 2.2204e-16

Постройте график совокупных сумм квадратов коэффициентов. Обратите внимание, как быстро сумма Daubechies увеличивается. Это связано с тем, что его энергия сосредоточена в небольших абсциссах. Поскольку вейвлет Daubechies имеет экстремальную фазу, совокупная сумма его квадратов коэффициентов увеличивается быстрее, чем два других вейвлета.

plot(cumsum(LoR_db.^2),'rx-')
hold on
plot(cumsum(LoR_sym.^2),'mo-')
plot(cumsum(LoR_coif.^2),'b*-')
legend('Daubechies','Symlet','Coiflet')
title('Cumulative Sum')

Figure contains an axes. The axes with title Cumulative Sum contains 3 objects of type line. These objects represent Daubechies, Symlet, Coiflet.

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

свернуть все

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

Сумма коэффициентов масштабирующего фильтра, заданная как положительное вещественное число. Установите значение sqrt(2) чтобы сгенерировать вектор коэффициентов, чья норма равна 1.

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

свернуть все

Вектор коэффициентов масштабирующего фильтра порядка n симлет.

Коэффициенты масштабирующего фильтра удовлетворяют ряду свойств. Можно использовать эти свойства для проверки результатов. Дополнительные сведения см. в разделе Модули фильтра масштабирования единичных норм.

Подробнее о

свернуть все

Наименее асимметричный вейвлет

Вейвлет Haar, также известный как вейвлет Daubechies порядок 1 , <reservedrangesplaceholder0>, является единственным компактно поддерживаемым ортогональным вейвлетом, который симметричен или эквивалентно имеет линейную фазу. Никакие другие компактно поддерживаемые ортогональные вейвлет не могут быть симметричными. Однако возможно получить вейвлеты, которые являются минимально асимметричными, что означает, что их фаза будет очень почти линейной. Для заданной поддержки ортогональный вейвлет со фазового отклика, наиболее близко напоминающей линейную фазу фильтр, называется least asymmetric.

Экстремальная фаза

Построение компактно поддерживаемого ортогонального вейвлета базиса включает выбор корней конкретного полиномиального уравнения. Различные варианты корней приводят к вейвлетам, фазы которых различны. Выбор корней, которые находятся внутри модуля круга в комплексной плоскости результатов в фильтре с сильно нелинейной фазой. Говорят, что такой вейвлет имеет extremal phase и энергию, сконцентрированную на малых абсциссах. Пусть {hk} обозначает набор масштабирующих коэффициентов, сопоставленных с экстремальной фазой вейвлет, где k = 1,…,M. Тогда для любого другого набора масштабирующих коэффициентов {gk}, возникающих в результате другого выбора корней, следующее неравенство будет иметь место для всех J = 1,…,M:

k=1Jgk2k=1Jhk2

{hk} иногда называют фильтром минимальной задержки [2].

Упомянутое выше полиномиальное уравнение зависит от желаемого количества моментов исчезновения, N для вейвлета. Чтобы создать вейвлет базиса включает выбор корней уравнения. В случае наименее асимметричных вейвлетов и экстремальных фаз вейвлетов для порядков 1 , 2 и 3 фактически нет выбора. Для N = 1, 2 и 3 dbN и symN фильтры равны. Пример Symlet и Daubechies Scaling Filters показывает, что два разных масштабирующих фильтра могут удовлетворять одному и тому же полиномиальному уравнению. Для получения дополнительной информации смотрите Daubechies [1].

Ссылки

[1] Daubechies, I. Десять лекций по вейвлетам, серия региональных конференций CBMS-NSF по прикладной математике. Филадельфия, Пенсильвания: СИАМ Эд, 1992.

[2] Oppenheim, Alan V., and Ronald W. Schafer. Обработка сигнала в дискретном времени. Englewood Cliffs, Нью-Джерси: Prentice Hall, 1989.

См. также

| |

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