Аналитические вейвлеты с использованием преобразования двойственного древовидного вейвлета

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

Создайте нулевой сигнал 256 выборки в длину. Получите два преобразования нуля в дереве до уровня 5. По умолчанию dualtree использует почти симметричную пару биортогонального фильтра по умолчанию nearsym5_7 для уровня 1 и ортогональной пары вейвлет Гильберта Q-сдвига длины 10 для уровней, больше 1.

x = zeros(256,1);
[a1,d1] = dualtree(x,'Level',5);
[a2,d2] = dualtree(x,'Level',5);

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

d1{5}(5) = 1;
d2{5}(5) = 1i;
wav1 = idualtree(a1,d1);
wav2 = idualtree(a2,d2);

Сформируйте сложный вейвлет, используя первое дерево как действительную часть, а второе - как мнимую. Постройте график действительной и мнимой частей вейвлета.

analwav = wav1+1i*wav2;
plot(real(analwav))
hold on
plot(imag(analwav),'r')
plot(abs(analwav),'k','linewidth',2)
axis tight
legend('Real part','Imaginary part','Magnitude','Location','Northwest')

Figure contains an axes. The axes contains 3 objects of type line. These objects represent Real part, Imaginary part, Magnitude.

Фурье преобразует аналитический вейвлет и строит график величины.

zdft = fft(analwav);
domega = (2*pi)/length(analwav);
omega = 0:domega:(2*pi)-domega;
clf;
plot(omega,abs(zdft))
xlabel('Radians/Sample')
axis tight

Figure contains an axes. The axes contains an object of type line.

Преобразование Фурье вейвлета имеет поддержку по существу только на половину оси частоты.

Для просмотра документации необходимо авторизоваться на сайте