exponenta event banner

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

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

Создайте нулевой сигнал длиной 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);

Установите один коэффициент детализации уровня 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.

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