Symlet вейвлета фильтрация расчета
The symaux
функция генерирует коэффициенты масштабирующего фильтра для «наименее асимметричных» вейвлетов Daubechies.
является порядком w
= symaux(n
)n
Фильтр масштабирования Symlet такой, что sum(w) = 1
.
Примечание
Нестабильность может возникнуть, когда n
слишком велик. Начиная со значений n
в области значений 30-х годов выход функции больше не будет точно представлять коэффициенты масштабирующего фильтра.
Как n
увеличивается, время, необходимое для быстрого вычисления коэффициентов фильтра, увеличивается.
Для n
= 1, 2 и 3, порядок n
Фильтры Symlet и упорядочивайте n
Фильтры Daubechies идентичны. См. Экстремальная фаза.
В этом примере вы сгенерируете коэффициенты симлетного масштабирования фильтра, норма которых равна 1. Вы также подтвердите, что коэффициенты удовлетворяют необходимому отношению.
Вычислите коэффициенты масштабирующего фильтра симлета порядка 10, сумма которого равна.
n = 10; w = symaux(n,sqrt(2));
Подтвердите, что сумма коэффициентов равна и норма равна 1.
sqrt(2)-sum(w)
ans = 0
1-sum(w.^2)
ans = 1.1324e-14
Поскольку целочисленные преобразования функции масштабирования образуют ортогональный базис, коэффициенты удовлетворяют отношению . Подтвердите это, взяв автокорреляцию коэффициентов и построив график результата.
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')
Этот пример показывает, что симлетные и 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 является фильтром «Lagrange trous» для N = 4. Оцените P и постройте график. P является симметричным фильтром, и wdb4 является минимальным фазовым решением предыдущего уравнения на основе корней P.
P = conv(wrev(wdb4),wdb4)*2;
stem(P)
title('''Lagrange trous'' filter')
Сгенерируйте 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')
Вычислите 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
Сгенерируйте фильтры, сопоставленные с симлетами порядка 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 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')
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
[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
вейвлеты. Оба вейвлета имеют поддержку ширины .
[~,~,LoR_db,~] = wfilters('db15'); [~,~,LoR_sym,~] = wfilters('sym15');
Затем сгенерируйте коэффициенты масштабирующего фильтра для coif5
вейвлет. Этот вейвлет также имеет поддержку ширины .
[~,~,LoR_coif,~] = wfilters('coif5');
Подтвердите сумму коэффициентов для всех трех вейвлет равной .
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')
n
- Порядок симлетовПорядок симлета, заданный как положительное целое число.
sumw
- Сумма коэффициентовСумма коэффициентов масштабирующего фильтра, заданная как положительное вещественное число. Установите значение sqrt(2)
чтобы сгенерировать вектор коэффициентов, чья норма равна 1.
w
- Фильтрация коэффициентовВектор коэффициентов масштабирующего фильтра порядка n
симлет.
Коэффициенты масштабирующего фильтра удовлетворяют ряду свойств. Можно использовать эти свойства для проверки результатов. Дополнительные сведения см. в разделе Модули фильтра масштабирования единичных норм.
Вейвлет Haar, также известный как вейвлет Daubechies порядок 1 , <reservedrangesplaceholder0>
, является единственным компактно поддерживаемым ортогональным вейвлетом, который симметричен или эквивалентно имеет линейную фазу. Никакие другие компактно поддерживаемые ортогональные вейвлет не могут быть симметричными. Однако возможно получить вейвлеты, которые являются минимально асимметричными, что означает, что их фаза будет очень почти линейной. Для заданной поддержки ортогональный вейвлет со фазового отклика, наиболее близко напоминающей линейную фазу фильтр, называется least asymmetric.
Построение компактно поддерживаемого ортогонального вейвлета базиса включает выбор корней конкретного полиномиального уравнения. Различные варианты корней приводят к вейвлетам, фазы которых различны. Выбор корней, которые находятся внутри модуля круга в комплексной плоскости результатов в фильтре с сильно нелинейной фазой. Говорят, что такой вейвлет имеет extremal phase и энергию, сконцентрированную на малых абсциссах. Пусть {hk} обозначает набор масштабирующих коэффициентов, сопоставленных с экстремальной фазой вейвлет, где k = 1,…,M. Тогда для любого другого набора масштабирующих коэффициентов {gk}, возникающих в результате другого выбора корней, следующее неравенство будет иметь место для всех J = 1,…,M:
{hk} иногда называют фильтром минимальной задержки [2].
Упомянутое выше полиномиальное уравнение зависит от желаемого количества моментов исчезновения, N для вейвлета. Чтобы создать вейвлет базиса включает выбор корней уравнения. В случае наименее асимметричных вейвлетов и экстремальных фаз вейвлетов для порядков 1 , 2 и 3 фактически нет выбора. Для N = 1, 2 и 3 db
N и sym
N фильтры равны. Пример 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.
У вас есть измененная версия этого примера. Вы хотите открыть этот пример с вашими правками?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.