资源描述:
《实验三数字图像的离散傅里叶变换》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、电子科技大学实验报告学生姓名:学号:指导教师:彭真明日期:2014年4月12日一、实验名称:数字图像的离散傅里叶变换二、实验目的:1.了解数字图像的各种正交变换的概念和用途。2.掌握各种数字图像变换的方法和原理。3.深入理解离散信号采样频率、奈奎斯特频率及频率分辨率等基本概念,弄清它们之间的相互关系。弄清离散傅里叶变换(DFT)中频率泄露的原因,以及如何尽量减少频率泄露影响的途径。4.熟练掌握离DFT、DCT的原理、方法和实现流程,熟悉两种变换的性质,并能对图像DFT及DCT的结果进行必要解释。5.
2、熟悉和掌握利用MATLAB工具进行数字图像FFT及DCT的基本步骤、MATLAB函数使用及具体变换的处理流程。6.能熟练应用MATLAB工具对数字图像进行FFT及DCT处理,并能根据需要进行必要的频谱分析和可视化显示。三、实验原理:傅里叶变换是信号处理领域中一个重要里程碑,它在图像处理技术中同样起着十分重要的作用,被广泛应用于图像提取、图像增强与恢复、噪声控制、纹理分析等多个方面。1.离散傅里叶变换(DFT)要把傅里叶变换应用到数字图像处理中,就必须处理离散数据,离散傅里叶变换的提出使得这种数学方法
3、能够和计算机技术联系起来。正变换:逆变换:幅度:相位角:功率谱:1.快速傅里叶变换(FFT)离散傅里叶变换运算量巨大,计算时间长,其运算次数正比于N^2,当N比较大的时候,运算时间更是迅速增长。而快速傅里叶变换的提出将使傅里叶变换的复杂度由N^2下降到NlgN/lg2,当N很大时计算量可大大减少。快速傅里叶变换需要进行基2或者基4的蝶形运算,算法上面较离散傅里叶变换困难。2.离散余弦变换(DCT)为FT的特殊形式,被展开的函数是实偶函数的傅氏变换,即只有余弦项。变换核固定,利于硬件实现。具有可分离特
4、性,一次二维变换可分解为两次一维变换。正变换:逆变换:其中:一、实验步骤:1.1D离散信号FFT计算及频率分布曲线绘制(1)打开计算机,进入matlab程序;(2)画出程序设计流程图;(3)在matlab中输入代码输入所需的1D连续信号x,并设置采样频率;(4)对信号x进行离散化,并分别做128点和1024点的FFT变换;并将中心平移;(5)在同一窗口作出全部采样频率fs范围、频谱中心化后及去负频3种方式的幅值随频率变化的分布图;(6)记录下图像,并对结果进行分析。2.模型图像的2DFFT实验(1)
5、画出程序设计流程图;(2)在matlab中输入代码生成两幅数字图像;(3)分别进行DFT变换,并做频谱中心化处理;(4)在同一窗口作出生成的及DFT变换后的2D频谱图;(5)记录下图像,并对结果进行分析。3.任选图像的2DFFT实验(1)画出程序设计流程图;(2)在matlab中输入代码读取一幅大小合适的灰度图像;(3)分别进行64×64、128×128、256×256FFT变换,并做频谱中心化处理;(4)画出变换前的原始图像及其频谱的二维平面图;(5)显示64×64的3DFFT图像;(6)记录图像
6、,并对结果进行分析。一、程序框图二、程序源代码:1.1D离散信号FFT计算及频率分布曲线绘制clf;clc;clearall;fs=100;N1=128;N2=1024;%采样频率和数据点数n1=0:N1-1;n2=0:N2-1;t1=n1/fs;t2=n2/fs;%时间序列x1=0.5*sin(30*pi*t1)+2*sin(80*pi*t1);%输入信号x2=0.5*sin(30*pi*t2)+2*sin(80*pi*t2);%输入信号y1=fft(x1,N1);y2=fft(x2,N2);%对
7、信号FFTmag1=abs(y1);mag2=abs(y2);%求得FFT幅值y1=fftshift(y1);y2=fftshift(y2);%频谱原点对称mag3=abs(y1);mag4=abs(y2);%求取FFT振幅f1=n1*fs/N1;f2=n2*fs/N2;%频率采样序列subplot(3,2,1),plot(f1,mag1);%随频率变化的振幅xlabel('频率/Hz');ylabel('振幅');title('N=128,全部频率');gridon;subplot(3,2,2),
8、plot(f2,mag2);%随频率变化的振幅xlabel('频率/Hz');ylabel('振幅');title('N=1024,全部频率');gridon;f3=f1-f1(N1/2);subplot(3,2,3),plot(f3,mag3);%随频率变化的振幅xlabel('频率/Hz');ylabel('振幅');title('N=128,对称频谱');gridon;f4=f2-f2(N2/2);subplot(3,2,4),plot(f4,mag4);%随频