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

В этом примере показано, как создать приблизительно аналитические вейвлеты с помощью двойного древовидного комплексного вейвлета, преобразовывают. Пример демонстрирует, что вы не можете произвольно выбрать анализ (разложение) и синтез (реконструкция) фильтры, чтобы получить приблизительно аналитический вейвлет. КИХ просачивается, эти два набора фильтров должны быть тщательно созданы для того, чтобы получить приблизительно аналитический вейвлет, преобразовывают и выводят преимущества двойного древовидного преобразования.

Получите lowpass и highpass аналитические фильтры.

DF = dtfilters('dtf1');

DF 1 2 массив ячеек N- 2 матрицы, содержащие первую стадию lowpass и фильтры highpass, DF{1}, и lowpass и highpass фильтруют для последующих этапов, DF{2}.

Создайте нулевые выборки сигнала 256 в длине. Получите два двойных древовидных преобразования нулевого сигнала вниз к уровню 5.

x = zeros(256,1);
wt1 = dddtree('cplxdt',x,5,DF{1},DF{2});
wt2 = dddtree('cplxdt',x,5,DF{1},DF{2});

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

wt1.cfs{5}(5,1,1) = 1;
wt2.cfs{5}(5,1,2) = 1;
wav1 = idddtree(wt1);
wav2 = idddtree(wt2);

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

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

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

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

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

Повторите предыдущую процедуру с двумя произвольно выбранными ортогональными вейвлетами, 'db4' и 'sym4'.

[LoD1,HiD1] = wfilters('db4');
[LoD2, HiD2] = wfilters('sym4');
df = {[LoD1' HiD1'],[LoD2',HiD2']};
wt1 = dddtree('cplxdt',x,5,df,df);
wt2 = dddtree('cplxdt',x,5,df,df);
wt1.cfs{5}(5,1,1) = 1;
wt2.cfs{5}(5,1,2) = 1;
wav1 = idddtree(wt1);
wav2 = idddtree(wt2);
analwav = wav1+1i*wav2;
zdft = fft(analwav);
domega = (2*pi)/length(analwav);
omega = 0:domega:(2*pi)-domega;
clf;
plot(omega,abs(zdft))

Используя произвольные ортогональные вейвлеты в этих двух деревьях не приводит приблизительно к аналитическим вейвлетам. Преобразование Фурье получившегося вейвлета имеет поддержку по целой оси частоты.