1、傅立叶变化的原理;(1)原理正交级数的展开是其理论基础!将一个在时域收敛的函数展开成一系列不同频率谐波的叠加,从而达到解决周期函数问题的目的。在此基础上进行推广,从而可以对一个非周期函数进行时频变换。从分析的角度看,他是用简单的函数去逼近(或代替)复杂函数,从几何的角度看,它是以一族正交函数为基向量,将函数空间进行正交分解,相应的系数即为坐标。从变幻的角度的看,他建立了周期函数与序列之间的对应关系;而从物理意义上看,他将信号分解为一些列的简谐波的复合,从而建立了频谱理论。当然Fourier积分建立在傅氏积分基础上,一个函数除了要满足狄氏条件外,一般来说还要在积分域上绝对可积,才有古典意义下的傅
2、氏变换。引入衰减因子e(-st),从而有了Laplace变换。(2)计算方法连续傅里叶变换将平方可积的函数f(t)表示成复指数函数的积分或级数形式。这是将频率域的函数F()表示为时间域的函数f(t)的积分形式。连续傅里叶变换的逆变换 (inverse Fourier transform)为即将时间域的函数f(t)表示为频率域的函数F()的积分。一般可称函数f(t)为原函数,而称函数F()为傅里叶变换的像函数,原函数和像函数构成一个傅里叶变换对(transform pair)。实例应用:例一平稳信号:x=2*sin(2*pi*20*t)+4*sin(2*pi*60*t)+8*cos(2*pi*9
3、0*t)+10*sin(2*pi*120*t)利用Matlab语言编写的数字图像处理的例程如下:clcclear allfs=100;N=128; %采样频率和数据点数n=0:N-1;t=n/fs; %时间序列x=2*sin(2*pi*20*t)+4*sin(2*pi*60*t)+8*cos(2*pi*90*t)+10*sin(2*pi*120*t); %信号y=fft(x,N); %对信号进行快速Fourier变换mag=abs(y); %求得Fourier变换后的振幅f=n*fs/N; %频率序列subplot(2,2,1),plot(t,x);xlabel(时间/s);ylabel(振幅
4、title(滤波前时域图subplot(2,2,2);plot(f,mag);频率/Hz滤波前频域图N1=11;wc=0.5;hd=fir1(N1,wc);z=filter(hd,1,x);subplot(2,2,3);plot(t,z);滤波后时域图subplot(2,2,4);plot(f,abs(fft(z);滤波后频域图在matlab中运行后,实验结果如图:例二:(一)对原图像进行傅立叶变换,实验结果如图1:图1 分析:图像显示了原图像及其傅立叶频谱。观察傅立叶谱中心对称,在此图像进行傅立叶变换的计算之前被乘以,以此增强了灰度级细节。 (二)输出彩色图像greens.jpg的傅立叶频谱
5、,实验结果如图2:图2图像显示了原图像和其彩色图像傅立叶频谱。可以看出图像的频率分布是以原点为圆心,对称分布的。变换之后的图像在原点平移之前四角是低频,最亮,平移之后中间部分是低频,最亮,亮度大说明低频的能量大(幅角比较大)(三)对彩色图像football.jpg进行二维DCT变换,实验结果如图3:图3二维DCT变换后的频谱图亮点在左上角。%傅立叶变换Matlab图像的DFTclc;figure(1);load imdemos saturn2;imshow(saturn2);原图像figure(2);S=fftshift(fft2(saturn2);imshow(log(abs(S),);原图
6、像傅立叶频谱%彩色图像的傅立叶频谱A=imread(greens.jpgB=rgb2gray(A);imshow(B);S=fftshift(fft2(B);彩色图像的傅立叶频谱%二维DCT变换RGB=imread(football.jpgimshow(RGB);彩色图像GRAY=rgb2gray(RGB);imshow(GRAY);灰色图像DCT=dct2(GRAY);figure(3);imshow(log(abs(DCT),);二维DCT变换例三:利用Matlab语言编写的数字图像处理的例程如下:x=imread(C:UserskjDesktop1.jpgX=rgb2gray(x);su
7、bplot(3,2,1);imshow(X);原图y=fft2(X);Y=log(1+abs(y);subplot(3,2,2);imshow(Y,);傅里叶变化图m,n=size(y);for i=1:m for j=1:n if im/2-140 & in/2-250 & jn/2+250 y1(i,j)=y(i,j); else y1(i,j)=0; endendsubplot(3,2,3);imshow(log(1+abs(y1),);对傅里叶变化后处理图z1=real(ifft2(y1);Z1=uint8(z1);subplot(3,2,4);imshow(Z1);对频率图处理之后的
8、反变化图 y2(i,j)=0; y2(i,j)=y(i,j);subplot(3,2,5);imshow(log(1+abs(y2),);z2=real(ifft2(y2);Z2=uint8(z2);subplot(3,2,6);imshow(Z2); 原图例四:Matlab源程序如下:clcclearallimg=imread(Dolphin.jpgsubplot(2,2,1),imshow(img);f=rgb2gray(img);F=fft2(f);subplot(2,2,2),imshow(F);傅里叶变换%二维傅里叶变换FS=fftshift(F);%频率图%频谱 S=log(1+a
9、bs(FS);imshow(S,)直接变换频谱图%二维傅里叶逆变换fr=real(ifft2(ifftshift(FS);%频域的图反变ret=im2uint8(mat2gray(fr);%取其灰度图subplot(2,2,4),imshow(ret);逆傅里叶变换I=imread(logo.tifimshow(I);DCT=dct2(I);imshow(log(abs(DCT),);总结:因各个科学技术领域广泛的使用了FFT技术,它大大推动了信号处理技术的进步,现已成为数字信号处理强有力的工具,本论文将比较全面的叙述快速傅里叶变换算法原理、特点,并完成了基于MATLAB的实现。参考文献:【1】曾光奇 工程测试技术 华中科技大学出版社