symaux

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

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

Синтаксис

w = symaux(n)
w = symaux(___,sumw)

Описание

w = symaux(n) порядок n Symlet, масштабирующий фильтр, таким образом что sum(w) = 1.

Примечание

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

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

пример

w = symaux(___,sumw) порядок n Symlet, масштабирующий фильтр, таким образом что sum(w) = sumw.

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

Примеры

свернуть все

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

Вычислите масштабирующиеся коэффициенты фильтра порядка 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')

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

Этот пример показывает, что symlet и 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')

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

Сгенерируйте wsym4, порядок 4 symlet масштабирующий фильтр и постройте его. Симлеты являются вейвлетами "наименьшего количества асимметричного" Добечиса, полученными из другого выбора между корнями 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')

Вычислите 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

Для оказавшего поддержку ортогональный вейвлет с фазовым откликом, который наиболее тесно напоминает линейный фильтр фазы, называется наименее асимметричный. Symlets являются примерами наименьшего количества асимметричных вейвлетов. Они - измененные версии классических вейвлетов дб Daubechies. В этом примере вы покажете, что порядок 4 symlet имеет почти линейный фазовый отклик, в то время как порядок 4 вейвлет Daubechies не делает.

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

[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

Сгенерируйте фильтры, сопоставленные с порядком 4 symlet и вейвлетами 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
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')

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

[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')

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

Во-первых, установите порядок к 15 и сгенерируйте масштабирующиеся коэффициенты фильтра для вейвлета Daubechies и Symlet. Оба вейвлета имеют поддержку длины 29.

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

Затем, сгенерируйте масштабирующиеся коэффициенты фильтра для порядка 5 Coiflet. Этот вейвлет также имеет поддержку длины 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')

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

свернуть все

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

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

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

свернуть все

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

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

Больше о

свернуть все

Наименьшее количество асимметричного вейвлета

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

Построение сжато поддерживаемого ортогонального основания вейвлета включает корни выбора конкретного полиномиального уравнения. Различный выбор корней приведет к вейвлетам, фазы которых отличаются. Пример Наименьшее количество Асимметричного Вейвлета и Фазы сравнивает вейвлеты с различными фазами. Symlet в качестве примера и Daubechies Scaling Filters показывают, что два различных фильтра масштабирования могут удовлетворить тому же полиномиальному уравнению. Для получения дополнительной информации смотрите Daubechies [1].

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

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

k=1Jgk2k=1Jhk2

Неравенство проиллюстрировано в примере Экстремальная Фаза. {hk} иногда называются минимальным фильтром задержки [2].

Ссылки

[1] Daubechies, я. (1992), Десять Лекций по Вейвлетам, ряду конференции CBMS-NSF в прикладной математике, SIAM Эд.

[2] Оппенхейм, Алан V и Рональд В. Шафер. Обработка сигналов дискретного времени. Englewood Cliffs, NJ: Prentice Hall, 1989.

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

| |

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