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

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

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

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

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

свернуть все

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

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

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

свернуть все

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

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

Больше о

свернуть все

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

Вейвлет Хаара, также известный как вейвлет Daubechies порядка 1, db1, единственный сжато поддерживаемый ортогональный вейвлет, который симметричен, или эквивалентно имеет линейную фазу. Никакой другой сжато поддерживаемый ортогональный вейвлет не может быть симметричным. Однако возможно вывести вейвлеты, которые минимально асимметричны, означая, что их фаза будет очень почти линейна. Для оказавшего поддержку ортогональный вейвлет с фазовым откликом, который наиболее тесно напоминает линейный фильтр фазы, называется 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 и symФильтры N равны. Symlet в качестве примера и Daubechies Scaling Filters показывают, что два различных фильтра масштабирования могут удовлетворить тому же полиномиальному уравнению. Для получения дополнительной информации смотрите Daubechies [1].

Ссылки

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

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

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

| |

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