网站域名价值查询工具/抖音seo排名系统
小波实验报告双树复小波变换
一、题目:双树复小波变换
二、目的:双树复小波和实小波变换的比较
三、算法及其实现:提取阶梯型边界点
算法。
幅值:
相位:
代码实现。
我采用Matlab函数编程实现。具体程序见shift_test_2D.m,drawcirc.m,setfig.m,dtwavexfm2.m,dtwaveifm2.m,waveifm2.m,wavexfm2.m
SkelMap.m。
设 和 分别是双正交对偶尺度函数与对偶小波, , , 和 是相应的低通滤波器和高通滤波器,即它们满足
实部: 虚部:
双树复小波变换可以通过离散小波变换DWT实现:一个DWT产生实部,另一个产生虚部。
实现工具:Matlab
程序代码:
(1)shift_test_2D.m:
% shift_test_2D.m
%
% M-file to perform a 4-level wavelet transform on a circle using Q-shift
% dual wavelet tree and DWT, and to compare shift invariance properties.
%
% Nick Kingsbury, Cambridge University, May 2002.
clear all
close all
% Draw a circular disc.
x = round((drawcirc(64,1,0,0,256) - 0.5) * 200);
setfig(1);
colormap(gray(256))
image(min(max(x+128,1),256));
set(gca,'position',[0.1 0.25 .25 .5]);
axis('off');
axis('image');
% draw(xx);
title('Input (256 x 256)','FontSize',14); drawnow
% Do 4 levels of CWT.
[Yl,Yh] = dtwavexfm2(x,4,'near_sym_b','qshift_b');
% Loop to reconstruct output from coefs at each level in turn.
% Starts with the finest level.
titl = ['1st';'2nd';'3rd';'4th';'Low'];
yy = zeros(size(x) .* [2 3]);
yt1 = 1:size(x,1); yt2 = 1:size(x,2);
for mlev = 1:5,
mask = zeros(6,5);
mask(:,mlev) = 1;
z = dtwaveifm2(Yl*mask(1,5),Yh,'near_sym_b','qshift_b',mask);
figure;draw(z);drawnow
yy(yt1,yt2) = z;
yt2 = yt2 + size(x,2)/2;
end
% disp('Press a key ...')
% pause
% Now do same with DWT.
% Do 4 levels of Real DWT using 'antonini' (9,7)-tap filters.
[Yl,Yh] = wavexfm2(x,4,'antonini');
yt1 = [1:size(x,1)] + size(x,1); yt2 = 1:size(x,2);
for mlev = 1:5,
mask = zeros(3,5);
mask(:,mlev) = 1;
z = waveifm2(Yl*mask(1,5),Yh,'antonini',mask);
figure;draw(z);drawnow
yy(yt1,yt2) = z;
yt2 = yt2 + size(x,2)/2;
end
figure;
setfig(gcf);
colormap(gray(256))
image(min(max(yy+128,1),256));
set(gca,'position',[0.1 0.1 .8 .8]);
axis('off');
axis('image');
hold on
plot(128*[[1;1]*[1:4] [0;6]]+1,128*[[0;4]*[1 1 1 1] [2;2]]+1,'-k');
hold