Биоортогональный фильтр вейвлета сплайна
Возвратите биоортогональные фильтры масштабирования вейвлета сплайна с двумя исчезающими моментами.
wname = 'bior2.2';
[RF,DF] = biorwavf(wname)
RF = 1×3
0.2500 0.5000 0.2500
DF = 1×5
-0.1250 0.2500 0.7500 0.2500 -0.1250
В этом примере показано, как взять фильтры анализа и синтеза, сопоставленные с биоортогональным вейвлетом, и сделать их совместимыми с Wavelet Toolbox™. Wavelet Toolbox требует, чтобы анализ и синтез lowpass и фильтры highpass имели равный даже длина. Этот пример использует почти ортогональные биоортогональные вейвлеты на основе Лапласовой финансовой пирамиды Берта и Адельсона (Таблица 8.4 на странице 283 в [1]). Пример также демонстрирует, как исследовать свойства биоортогональных вейвлетов.
Задайте коэффициенты фильтра анализа и синтеза биоортогонального вейвлета.
Hd = [-1 5 12 5 -1]/20*sqrt(2); Gd = [3 -15 -73 170 -73 -15 3]/280*sqrt(2); Hr = [-3 -15 73 170 73 -15 -3]/280*sqrt(2); Gr = [-1 -5 12 -5 -1]/20*sqrt(2);
Hd
и Gd
lowpass и highpass аналитические фильтры, соответственно. Hr
и Gr
lowpass и highpass фильтры синтеза. Они - все фильтры конечной импульсной характеристики (FIR). Подтвердите содействующую сумму фильтра lowpass к sqrt(2)
и highpass фильтруют содействующую сумму к 0.
sum(Hd)/sqrt(2)
ans = 1.0000
sum(Hr)/sqrt(2)
ans = 1.0000
sum(Gd)
ans = -1.0061e-16
sum(Gr)
ans = -9.7145e-17
Z-преобразование КИХ-фильтра полином Лорана данный . Степень из Лорана полином задан как . Поэтому длина фильтра . Исследуйте расширение Лорана фильтров вейвлета и масштабирования.
PHd = laurentPolynomial(Coefficients=Hd,MaxOrder=2)
PHd = laurentPolynomial with properties: Coefficients: [-0.0707 0.3536 0.8485 0.3536 -0.0707] MaxOrder: 2
PHr = laurentPolynomial(Coefficients=Hr,MaxOrder=3)
PHr = laurentPolynomial with properties: Coefficients: [-0.0152 -0.0758 0.3687 0.8586 0.3687 -0.0758 -0.0152] MaxOrder: 3
PGd = laurentPolynomial(Coefficients=Gd,MaxOrder=3)
PGd = laurentPolynomial with properties: Coefficients: [0.0152 -0.0758 -0.3687 0.8586 -0.3687 -0.0758 0.0152] MaxOrder: 3
PGr = laurentPolynomial(Coefficients=Gr,MaxOrder=2)
PGr = laurentPolynomial with properties: Coefficients: [-0.0707 -0.3536 0.8485 -0.3536 -0.0707] MaxOrder: 2
Поскольку фильтры сопоставлены с биоортогональным вейвлетом, подтвердить .
PHd*PHr + PGd*PGr
ans = laurentPolynomial with properties: Coefficients: 2 MaxOrder: 0
Wavelet Toolbox™ требует, чтобы фильтры, сопоставленные с вейвлетом, имели даже равную длину. Использовать Лапласов вейвлет просачивается тулбокс, необходимо включать недостающие степени Ряда Лорана как нули.
Степени PHd
и PHr
4 и 6, соответственно. Минимальный фильтр ровной длины, который может вместить четыре фильтра, имеет длину 8, который соответствует полиному Лорана степени 7. Стратегия состоит в том, чтобы предварительно ожидать и добавить 0s максимально равномерно так, чтобы все фильтры имели длину 8. Предварительно ожидайте 0 ко всем фильтрам, и затем добавьте два 0s к Hd
и Gr
.
Hd = [0 Hd 0 0]; Gd = [0 Gd]; Hr = [0 Hr]; Gr = [0 Gr 0 0];
Можно исследовать свойства биоортогональных вейвлетов путем создания наборов фильтров DWT. Создайте два пользовательских набора фильтров DWT с помощью фильтров, один для анализа и другого для синтеза. Подтвердите, что наборы фильтров биоортогональны.
fb = dwtfilterbank('Wavelet','Custom',... 'CustomScalingFilter',[Hd' Hr'],... 'CustomWaveletFilter',[Gd' Gr']); fb2 = dwtfilterbank('Wavelet','Custom',... 'CustomScalingFilter',[Hd' Hr'],... 'CustomWaveletFilter',[Gd' Gr'],... 'FilterType','Synthesis'); fprintf('fb: isOrthogonal = %d\tisBiorthogonal = %d\n',... isOrthogonal(fb),isBiorthogonal(fb));
fb: isOrthogonal = 0 isBiorthogonal = 1
fprintf('fb2: isOrthogonal = %d\tisBiorthogonal = %d\n',... isOrthogonal(fb2),isBiorthogonal(fb2));
fb2: isOrthogonal = 0 isBiorthogonal = 1
Постройте масштабирование и функции вейвлета, сопоставленные с наборами фильтров в самой грубой шкале.
[phi,t] = scalingfunctions(fb); [psi,~] = wavelets(fb); [phi2,~] = scalingfunctions(fb2); [psi2,~] = wavelets(fb2); subplot(2,2,1) plot(t,phi(end,:)) grid on title('Scaling Function - Analysis') subplot(2,2,2) plot(t,psi(end,:)) grid on title('Wavelet - Analysis') subplot(2,2,3) plot(t,phi2(end,:)) grid on title('Scaling Function - Synthesis') subplot(2,2,4) plot(t,psi2(end,:)) grid on title('Wavelet - Synthesis')
Вычислите набор фильтров framebounds.
[analysisLowerBound,analysisUpperBound] = framebounds(fb)
analysisLowerBound = 0.9505
analysisUpperBound = 1.0211
[synthesisLowerBound,synthesisUpperBound] = framebounds(fb2)
synthesisLowerBound = 0.9800
synthesisUpperBound = 1.0528
wname
— Имя биоортогонального вейвлетаИмя биоортогонального вейвлета в виде 'biorNr.Nd'
где возможные значения для Nr
и Nd
следующие:
Nr = 1 | Nd = 1 , 3 or 5 |
Nr = 2 | Nd = 2 , 4 , 6 or 8 |
Nr = 3 | Nd = 1 , 3 , 5 , 7 or 9 |
Nr = 4 | Nd = 4 |
Nr = 5 | Nd = 5 |
Nr = 6 | Nd = 8 |
Nr
и Nd
числа исчезающих моментов для фильтров реконструкции и разложения, соответственно.
Пример: 'biorwavf3.7'
RF
— Фильтр реконструкцииФильтр реконструкции сопоставил с биоортогональным вейвлетом wname
, возвращенный как вектор с действительным знаком.
DF
— Фильтр разложенияФильтр разложения сопоставил с биоортогональным вейвлетом wname
, возвращенный как вектор с действительным знаком.
У вас есть модифицированная версия этого примера. Вы хотите открыть этот пример со своими редактированиями?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.