欢迎来到天天文库
浏览记录
ID:12990957
大小:95.00 KB
页数:9页
时间:2018-07-20
《快速傅里叶变化算法及应用》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、快速傅里叶变化算法及应用课程数字信号处理实验系(院)物理与电子科学系专业班级学生姓名学号一、一、离散傅里叶变换的性质离散傅里叶变换(DFT),是连续傅里叶变换在时域和频域上都离散的形式,将时域信号的采样变换为在离散时间傅里叶变换(DTFT)频域的采样。在形式上,变换两端(时域和频域上)的序列是有限长的,而实际上这两组序列都应当被认为是离散周期信号的主值序列。即使对有限长的离散信号作DFT,也应当将其看作经过周期延拓成为周期信号再作变换。在实际应用中通常采用快速傅里叶变换以高效计算DFT。离散傅里叶变换具有下列性质:1)线性需将较短序列补零
2、后,再按长序列的点数做DFT2)循环位移(Circularshiftofasequence)3)对称性(symmetry)周期共轭对称(Periodicconjugatesymmetry)定义为周期共轭反对称(Periodicconjugateantisymmetry)定义为4)循环卷积定理二、快速傅里叶变换的算法原理1.将长序列DFT分解为短序列的DFT2.利用旋转因子的周期性、对称性、可约性。将时域序列逐次分解为一组子序列,利用旋转因子的特性,由子序列的DFT来实现整个序列的DFT。其中:快速傅里叶变换分为两种,分为基2时间抽取算法和
3、基2频率抽取算法1)基2时间抽取(Decimationintime)FFT算法其中:r=0,1,2…81)基2频率抽取(Decimationinfrequency)FFT算法三、FFT的特点和规律1)FFT算法特点:()(1)共需次迭代;(2)第次迭代对偶结点的偶距为,因此一组结点覆盖的序号个数是。(3)第次迭代结点的组数为。(4)可以预先计算好,而且的变化范围是。2)FFT算法流程:()(1)初始化:;(2)第次迭代:(a)下标控制变量初始化;(b)“结点对”的个数初始化;(c)四、蝶形运算的MATALAB的程序设计下面以16点为例:d
4、isp('请输入一个16点序列');forii=1:16 %自由输入序列x(ii)=input(['x(',num2str(ii),')=']);end%整体运用原位计算m=nextpow2(x);N=2^m;%求x的长度对应的2的最低幂次miflength(x)5、formm=1:m%将DFT作m次基2分解,从左到右,对每次分解作DFT运算,共做m级蝶形运算,每一级都有2^(mm-1)个蝶形结Nz=2^mm;u=1;%旋转因子u初始化为WN^0=1WN=exp(-i*2*pi/Nz);%本次分解的基本DFT因子WN=exp(-i*2*pi/Nz)forj=1:Nz/2%本次跨越间隔内的各次蝶形运算,在进行第mm级运算时需要2^(mm-1)个蝶形fork=j:Nz:N%本次蝶形运算的跨越间隔为Nz=2^mmkp=k+Nz/2;%蝶形运算的两个因子对应单元下标的关系t=y(kp)*u;%蝶形运算的乘积项6、y(kp)=y(k)-t;%蝶形运算y(k)=y(k)+t;%蝶形运算endu=u*WN;%修改旋转因子,多乘一个基本DFT因子WNendendyy1=fft(x)五、快速傅里叶变换MATALAB程序设计functionsamples(f,Fs,M)N=2^M;%fft点数=取样总点数Ts=1/Fs;%取样时间间隔T=N*Ts;%取样总时间=取样总点数*取样时间间隔n=0:N-1;t=n*Ts;Xn=cos(2*f*pi*t);8subplot(2,1,1);stem(t,Xn);axis([0T1.1*min(Xn)1.1*max(Xn7、)]);xlabel('t-->');ylabel('Xn');Xk=abs(fft(Xn,N));subplot(2,1,2);stem(n,Xk);axis([0N1.1*min(Xk)1.1*max(Xk)]);xlabel('frequency-->');ylabel('!Xk!');六、用FFT对时域的离散信号进行频谱的分析(1)对以下序列进行谱分析。选择FFT的变换区间N为8和16两种情况进行频谱分析。分别打印其幅频特性曲线。并进行对比、分析和讨论。程序如下:x1n=[ones(1,4)];M=8;xa=1:(M/2);xb=8、(M/2):-1:1;x2n=[xa,xb];x3n=[xb,xa];X1k8=fft(x1n,8);X1k16=fft(x1n,16);X2k8=fft(x2n,8);X2k16=fft(x
5、formm=1:m%将DFT作m次基2分解,从左到右,对每次分解作DFT运算,共做m级蝶形运算,每一级都有2^(mm-1)个蝶形结Nz=2^mm;u=1;%旋转因子u初始化为WN^0=1WN=exp(-i*2*pi/Nz);%本次分解的基本DFT因子WN=exp(-i*2*pi/Nz)forj=1:Nz/2%本次跨越间隔内的各次蝶形运算,在进行第mm级运算时需要2^(mm-1)个蝶形fork=j:Nz:N%本次蝶形运算的跨越间隔为Nz=2^mmkp=k+Nz/2;%蝶形运算的两个因子对应单元下标的关系t=y(kp)*u;%蝶形运算的乘积项
6、y(kp)=y(k)-t;%蝶形运算y(k)=y(k)+t;%蝶形运算endu=u*WN;%修改旋转因子,多乘一个基本DFT因子WNendendyy1=fft(x)五、快速傅里叶变换MATALAB程序设计functionsamples(f,Fs,M)N=2^M;%fft点数=取样总点数Ts=1/Fs;%取样时间间隔T=N*Ts;%取样总时间=取样总点数*取样时间间隔n=0:N-1;t=n*Ts;Xn=cos(2*f*pi*t);8subplot(2,1,1);stem(t,Xn);axis([0T1.1*min(Xn)1.1*max(Xn
7、)]);xlabel('t-->');ylabel('Xn');Xk=abs(fft(Xn,N));subplot(2,1,2);stem(n,Xk);axis([0N1.1*min(Xk)1.1*max(Xk)]);xlabel('frequency-->');ylabel('!Xk!');六、用FFT对时域的离散信号进行频谱的分析(1)对以下序列进行谱分析。选择FFT的变换区间N为8和16两种情况进行频谱分析。分别打印其幅频特性曲线。并进行对比、分析和讨论。程序如下:x1n=[ones(1,4)];M=8;xa=1:(M/2);xb=
8、(M/2):-1:1;x2n=[xa,xb];x3n=[xb,xa];X1k8=fft(x1n,8);X1k16=fft(x1n,16);X2k8=fft(x2n,8);X2k16=fft(x
此文档下载收益归作者所有