Этот пример показывает, как создать приблизительно аналитические вейвлеты с помощью двойного древовидного комплексного вейвлета, преобразовывают. Пример демонстрирует, что вы не можете произвольно выбрать анализ (разложение) и синтез (реконструкция) фильтры, чтобы получить приблизительно аналитический вейвлет. КИХ просачивается, эти два набора фильтров должны быть тщательно созданы в порядке получить приблизительно аналитический вейвлет, преобразовывают и выводят преимущества двойного древовидного преобразования.
Получите lowpass и highpass аналитические фильтры.
DF = dtfilters('dtf1');
DF
является 1 2 массивом ячеек - 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))
Используя произвольные ортогональные вейвлеты в этих двух деревьях не приводит приблизительно к аналитическим вейвлетам. Преобразование Фурье получившегося вейвлета имеет поддержку по целой оси частоты.