资源描述:
《fourier和gabor和小波变换的理解》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、小波分析第二次作业201111131923王小燕Fourier和Gabor和小波变换的理解Fourier变换是信号在整个时域内的积分;Fourier频谱只是信号频率的统计特性,没有局部化分析信号的功能;它虽然能将信号的时域和频域特征联系起来,但却不能将它们有机地结合起来对信号进行分析。这样的方法只适合处理平稳信号,无法处理非平稳信号。Gabor变换在一定程度上克服了Fourier变换不具有局部化分析能力的问题,但也存在着一些缺陷:Gabor变换的时频窗口的形状一旦选定就是不可改变的,即不能根据待分析信号频率的变化而改变分辨率;Gabor变换的品质因数Q是随X变化而变化的,所以它不能准确反映信号
2、的特性;Gabor变换所得结果受窗口函数的影响,有一定的失真。小波变换不但具有时频两域局部化分析的能力,而且品质因数都恒定不变。小波变换能作多分辨率分析。当a值较小时,时轴上观察范围小,而在频域上相当于用较高频率作分辨率较高的分析,即用高频小波作细致观察;当a值较大时,时轴上观察范围大,而在频域上相当于用较低频小波作概貌观察,很符合实际工作的需要。另外,小波变换的核函数不具唯一性,所以小波变换在工程应用中最值得关注的一个问题就是最优小波基的选取,这也是小波变换如何恰当地应用于各种具体问题的一个重点和难点。一个关于Fourier和Gabor和小波变换的程序分析Fourier的分析>>fun=@(
3、x)0.*(x<0
4、x>5)+x.*(x>=0&x<1)+1.*(x>=1&x<4)+(5-x).*(x>=4&x<5)%分段函数>>x=-5:0.2:10;%x自变量>>y=fun(x);%得到输入的平稳信号y>>Dfy=fft(y);%离散Fourier变换>>Dfy_shift=fftshift(Dfy);%对称变换得到对称的Fourier频谱>>figure(1)>>plot(y);axis([0,80,-0.05,1.05]),xlabel('n'),ylabel('y');%原始平稳信号>>figure(2);>>plot(abs(Dfy)),xlabel('n'),ylabel(
5、'
6、Dfy
7、');%
8、Dft
9、为离散频谱幅值信息>>figure(3);>>plot(abs(Dfy_shift)),xlabel('n'),ylabel('
10、Dfy
11、');%对称变换后的频谱functiongy=Gb_fun(a,b,x)fun=@(x)0.*(x<0
12、x>5)+x.*(x>=0&x<1)+1.*(x>=1&x<4)+(5-x).*(x>=4&x<5);%分段函数g=@(a,x)1./(2*(pi.*a).^(1/2)).*exp(-x.^2./(4*a));%窗口函数gy=g(a,x-b.*ones(size(x))).*fun(x);%窗口函数与原始信号的卷积 >>x=-
13、5:0.2:10;%x自变量>>a=1;%Gauss窗口函数的窗口大小参数>>b=-5:0.2:10;%平移参数,一般为原始信号长度。>>Dfy=zeros(length(b),length(b));>>fori=1:length(b)GDfy(i,:)=fft(Gb_fun(a,b(i),x));%针对不同的b的离散Fourier变换GDfy_shift(i,:)=fftshift(GDfy(i,:));%平移频率中心end>>figure(1)%绘制平面频谱立体图和图像>>subplot(1,2,1);>>mesh(abs(GDfy));xlabel('b'),ylabel('w'),zl
14、abel('
15、Gabor(a,w)
16、');>>subplot(1,2,2);>>imshow(abs(GDfy));>>figure(2)%绘制对称变换后的平面频谱立体图和图像>>subplot(1,2,1);>>mesh(abs(GDfy_shift));xlabel('b'),ylabel('w'),zlabel('
17、Gabor(a,w)
18、');>>subplot(1,2,2);>>imshow(abs(GDfy_shift));%针对同一个分段函数,我们采用“Haar“小波分解,得到小波的频谱>>fun=@(x)0.*(x<0
19、x>5)+x.*(x>=0&x<1)+1.*(x>=1&x<
20、4)+(5-x).*(x>=4&x<5);%分段函数>>x=-5:0.2:10;%x自变量>>y=fun(x);>>subplot(1,2,1);>>cab=cwt(y,1:2:32,'haar','3Dplot');%连续小波变换,并进行频谱幅值的三维显示>>subplot(1,2,2);>>cab=cwt(y,1:2:32,'haar','plot');%连续小波变换,并进行频谱幅值的图像显示