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

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

См. также

|