离散傅立叶变换(Discrete Fourier Transform)简称DFT,在数字信号处理和数字图像处理中应用十分广泛,它建立了离散时域和离散之间的联系。在数字图像处理中,二维离散傅立叶被广泛的应用于图像增强、复原、编码和分类中。
本课程设计是在MATLAB软件环境下读入图像,实现图像的离散傅立叶变换(DFT),并对系数进行分析,并对图像变换后的系数的分布特点进行分析和变换后的系数进行重新排列,将低频系数移到中心位置。
关键词:DFT;MATLAB;系数分析
目 录
1 课题描述 .................................................................................................................... 1 2 设计原理 .................................................................................................................... 1
2.1 离散傅立叶变换原理 ...................................................................................... 1 2.2 二维离散傅立叶变换的性质 .......................................................................... 2 3 设计过程 .................................................................................................................... 5
3.1 软件介绍 .......................................................................................................... 5 3.2 设计内容 .......................................................................................................... 6 3.3 设计程序 .......................................................................................................... 6 3.4 程序运行结果及分析 ...................................................................................... 6 总 结 .......................................................................................................................... 9 参考文献 ...................................................................................................................... 10
课程设计
1 课题描述
离散傅立叶变换(DFT)在数字信号处理和数字图像处理中应用十分广泛。它建立了离散时域和离散之间的联系。如果直接应用卷积和相关运算在时域中处理,计算量将随着取样点数
的平方而增加,这使计算机的计算量大,很费时,
很难达到实时处理的要求。因此,一般可采用 DFT方法,将输入的数字信号首先进行 DFT变换,在频域中进行各种有效的处理,然后进行 DFT反变换,恢复为时域信号。这样用计算机对变换后的信号进行频域处理。比在时域中直接处理更加方便,计算量也大大减少,提高了处理速度。因此,DFT在数字图像处理领域中有很大的实用价值。
离散傅立叶变换还有一个明显的优点就是具有快速算法,即快速傅立叶算法(Fast Fourier Transform),它可以大大减少计算次数,使计算量减少到只是相当于直接使用离散傅立叶变换所用的一小部分。并且,二维离散傅立叶变换很容易从一维的概念推广得到。在数字图像处理中,二维离散傅立叶被广泛的应用于图像增强、复原、编码和分类中。
2设计原理
2.1 离散傅立叶变换原理
傅立叶分析: 建立以时间为自变量的‘信号’和以频率为自变量的‘频谱函数’之间的关系。
离散周期序列的傅里叶级数(DFS),x(n)=x(n+N),习惯上:
X(k)x(n)en0N1j2nkN
(k)k, (2.1)
x(n)1NN1k0Xej2nkN
n,
(2.2)
第 1 页 共10页
课程设计
以上两式称为离散周期序列的傅立叶级数(DFS),在时域周期为NTs、频域的周期s = 2π/Ts=N 0,并离散。在DFS的基础上, 只对时域和频域取一个周期, 构成离散傅立叶变换对,即DFT:
X(k)x(n)en0N1j2nk Nk0,1,2...N11x(n)N
X(k)ek0N1j2nkN n0,1,2...N1 (2.3)
二维离散函数f(x,y)的傅立叶变换为:
F(u,v)f(x,y)M1N1x0y0j2(f(x,y)expMuxvy)N (2.4)
傅立叶反变换为:
1f(x,y)F(u,v)MN1M1N1uxvyF(u,v)expj2()MN (2.5)u0v0
其中:
x0,1,2,,M1y0,1,2,,N1
在数字图像处理中,图像取样一般是方阵,即MN,则二维离散傅立叶变换公式为:
uxvyF(u,v)f(x,y)f(x,y)expj2()N (2.6) x0y0
N1N11f(x,y)F(u,v)2N
1uxvyF(u,v)expj2()N (2.7)u0v0
N1N12.2二维离散傅立叶变换的性质
(1)线性
傅立叶变换是一种线性算子。设F1(u,v)和F2(u,v)分别为二维离散函数
f1(x,y)和f2(x,y)的离散傅立叶变换,则
af1(x,y)bf2(x,y)aF1(u,v)bF2(u,v) 其中a,b是常数。 (2.8) (2)可分离性
二维离散傅立叶变换对可分离成两部分之乘积
第 2 页 共10页
课程设计
1F(u,v)2NN1x0expj2ux/Nf(x,y)expj2ux/Nx0y0N1y0N1N1 (2.9)
f(x,y)expj2ux/NF(u,v)expj2vy/N (2.10)
式中,u,v,x,y 均取0,1,2,,N1。
可分离性的重要意义在于:一个二维傅立叶变换或反变换都可分解为二步进行,
其中每一步都是一个一维傅立叶变换或反变换。
(3)平移性
傅立叶变换的平移性有下式给出:
f(x,y)expj2(u0xv0y)/NF(uu0,vv0) (2.11) (2.12)
f(xx0,yy0)F(u,v)expj2(ux0vy0)/N在数字图像处理中,常常需要将F(u,v)的原点移到NN频域方阵的中心,以便可以清楚地分析傅立叶变换谱的情况。要做到这点,只需要令
u0v0N/2
则
f(x,y)(1)xyF(u11N,vN)22 (2.13)
NN,上式说明:如果需要将图像频谱的原点从起始点(0,0)移到图像的中心点(22),
xy(1)f(x,y)只要乘上因子进行傅立叶变换即可实现。以下实例图表现了图像
平移前后的变化情况。
a平移前的傅立叶变换 b平移后的傅立叶变换
\\图2-1 傅立叶变换的平移性
(4)周期性和共扼性
离散傅立叶变换和反变换具有周期性和共轭对称性。傅立叶变换对的周期性可表示为
第 3 页 共10页
课程设计
F(u,v)F(uaN,vbN) (2.14)
f(x,y)f(xaN,ybN) (2.15)
式中:a,b0,1,2, 共扼对称性克表示为
F(u,v)F*(u,v) (2.16) (2.17) 离散傅立叶变换对的周期性说明正变换后得到的F(u,v)或反变换后得到的f(x,y)都是具有周期为N的周期性重复离散函数。但是,为了安全确定F(u,v)或f(x,y),只需变换一个周期中每个变量的N个值。就是说,为了在频域中完全的确定F(u,v),只需要变换一个周期。在空域中,对f(x,y)也有类似的性质。共扼对称性说明变换后的幅值是以原点为中心对称。利用此特性,在求一个周期内的值时,只需求出半个周期,另半个周期也就知道了,这大大的减少了计算量。
为了说明,以一维变量为例。如图2-2所示,周期性F(u)F(uN)表明F(u)以长度为N的周期重复出现。共轭对称性
F(u,v)F(u,v)F(u)F(u)(说明变换的幅值
F(u)以原点为中心对称,此时离散傅立叶谱
F(u)在
NN,)22一个周期是两个背对背
xF(u)(1)f(x)的半周期的谱。如果在变换前将乘上,就能将变换后的谱的原点
N移至2处,这样在(0,N1)一个周期中,可显示出一个完整周期。
图2-2傅立叶变换的周期性和共轭对称性例图
(5)旋转不变性 若引入极坐标:
第 4 页 共10页
课程设计
xrcosyrsin ucosvsin
则f(x,y)和F(u,v)分别变为f(r,)和F(,),在极坐标系中,存在以下变换对:
(2.18)
此式表明,如果f(x,y)在时间域中旋转0角度后,相应的傅立叶变换F(u,v)在频域中也旋转同一0角,反之,如果F(u,v)在频域中旋转0角,其反变换
f(x,y)在空间域中也旋转0角。 (6)平均值
二维离散函数的平均值定义如下:
1f(x,y)2N
f(r,0)F(,0)f(x,y)x0y0N1N1 (2.19)
将uv0代入二维离散傅立叶定义式,可得:
1F(0,0)2N
f(x,y)x0y0N1N1 (2.20)
比较式(2.19)和(2.20),可看出:
f(x,y)F(0,0) (2.11) 因此,若要求二维离散信号f(x,y)的平均值,只需算出相应的傅立叶变换
F(u,v)在原点的值F(0,0)。
3设计过程
3.1软件介绍
MATLAB是美国Mathworks公司推出的数学工具软件, 它是一种直观、高效的计算机语言,同时又是一个科学计算平台。它为数据分析和数据可视化、算法提供了最核心的数学和高级图形工具。多达几百个数学函数和工程函数,极大地降低了对使用者的数学基础和计算机语言知识的要求,编程效率和计算效率极高,初学者可在很短的时间就能初步掌握它。目前,MATLAB 已经成为国际上最
第 5 页 共10页
课程设计
流行的科学与工程计算软件工具。
MATLAB集科学计算、图像处理、声音处理于一身,是一个高度的集成系统,有良好的用户界面,并有良好的帮助功能。MATLAB不仅流行于控制界,在机械工程、生物工程、语音处理、图像处理、信号分析、计算机技术等各行各业中都有极广泛的应用。
MATLAB语言的特点:1.编程效率高 2.用户使用方便 3.扩充能力强 4.语句简单,内涵丰富 5.高效方便的矩阵和数组运算 6.方便的绘图功能。
3.2设计内容
读入图像,实现图像的离散傅立叶变换(DFT),并对系数进行分析。要求分析变换后的系数的分布特点和对图像变换后的系数进行重新排列,将低频系数移到中心位置。
3.3 设计程序
程序一:
f=imread('A1.jpg'); %打开默认路径下的一幅名为A1的JPEG格式的图像 imshow(f); %求离散傅里叶频谱
J=fftshift(fft2(f)); %对原始图像进行二维傅里叶变换,并将其中心移到零点 figure;
imshow(log(abs(J)),[8,10]);
程序二:
f=imread('B1.jpg'); %打开默认路径下的一幅名为B1的JPEG格式的图像 imshow(f); %求离散傅里叶频谱
J=fftshift(fft2(f)); %对原始图像进行二维傅里叶变换,并将其中心移到零点 figure;
imshow(log(abs(J)),[8,10]); 3.4程序运行结果及分析 程序运行结果如下:
第 6 页 共10页
课程设计
图3-1 原图A1和经过DFT变换后的图A2
图3-2 原图B1和经过DFT变换后的图B2
分析结果:
数字图像的二维DFT变换后频率成分的分别示意图如下所示:
图3-3二维离散傅里叶变换结果中频率成分分布示意图
即变换结果的左上,右上,左下,右下四个角的周围对应于低频成分,中央
第 7 页 共10页
课程设计
部位对应于高频成分。为使直流成分出现在变换结果的中央,可采用图示的换位方法。但要注意:当换位后的数组再进行反变换时,得不到原图。即在进行反变换时候,必须使用四角代表的低频成分的变化结果,使画面中央对应高频成分。
第 8 页 共10页
课程设计
总 结
通过实际完成图像DFT的分析与实现的课程设计,首先初步掌握了使用MATLAB语言进行编程的方法。其次巩固了所学的理论知识,更好地将理论与实践相结合,而且对变换编码的基本思想与目的和图像DFT方法的基本原理有了更深一层的理解,更重要的是提高了独立分析和解决实际问题的能力,这为以后进一步学习和实验提供了宝贵的经验。
在本课程设计过程中,深刻认识到课本上的知识是机械的,抽象的,只有通过实践才能真正掌握所学的知识。
总之,基本达到了预期的课程设计目的。
第 9 页 共10页
课程设计
参考文献
[1] 王慧琴. 数字图像处理,北京:北京邮电大学出版社,2007. [2] 丁玉美,高西全.数字信号处理,西安:电子科技大学出版社,2006. [3] 陈怀琛,吴大正,高西全. MATLAB及在电子信息课程中的应用.北京:电子科技大学出版社,2003.
[4] 程佩青.数字信号处理.北京:清华大学出版社,2006.
[5] 曹雪虹,张宗橙.信息论与编码.北京:清华大学出版社,2007.
[6] 薛年喜, MATLAB在数字信号处理中的应用. 北京:清华大学出版社, 2003
第 10 页 共10页
因篇幅问题不能全部显示,请点此查看更多更全内容