exponenta event banner

symaux

Вычисление вейвлет-фильтра Symlet

Описание

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).

Примеры

свернуть все

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

Вычислите коэффициенты масштабного фильтра порядка 10 symlet, сумма которых равна 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.

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

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

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 - фильтр «группы Лагранжа» для 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, масштабный фильтр symlet порядка 4 и постройте его график. Symlets - «наименее асимметричные» вейвлеты Daubechies, полученные из другого выбора между корнями 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.

Вычислите конвейер (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. В этом примере показано, что symlet порядка 4 имеет почти линейный фазовый отклик, а вейвлет Daubechies порядка 4 - нет.

Сначала постройте график функций масштабирования порядка 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.

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

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.

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.

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

свернуть все

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

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

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

свернуть все

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

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

Подробнее

свернуть все

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

Вейвлет Хаара, также известный как вейвлет Даубехиеса порядка 1, db1, является единственным компактно поддерживаемым ортогональным вейвлетом, который является симметричным или эквивалентно имеет линейную фазу. Никакой другой компактно поддерживаемый ортогональный вейвлет не может быть симметричным. Однако можно получить вейвлеты, которые минимально асимметричны, что означает, что их фаза будет очень почти линейной. Для данной опоры ортогональный вейвлет с фазовым откликом, который больше всего напоминает линейный фазовый фильтр, называется наименее асимметричным.

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

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

∑k=1Jgk2≤∑k=1Jhk2

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

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

Ссылки

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

[2] Оппенгейм, Алан В. и Рональд В. Шефер. Дискретно-временная обработка сигналов. Энглвуд Клиффс, Нью-Джерси: Прентис Холл, 1989.

См. также

| |

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