您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 管理学资料 > 离散傅里叶变换(DFT)快速傅里叶变换(FFT)-实验四
第7页共7页实验四:DFS、DFT与FFT1、已知某周期序列的主值序列为x(n)=[0,1,2,3,2,1,0],编程显示2个周期的序列波形。要求:①用傅里叶级数求信号的幅度谱和相位谱,并画出图形②求傅里叶级数逆变换的图形,并与原序列进行比较程序清单:N=7;xn=[0,1,2,3,2,1,0];xn=[xn,xn];n=0:2*N-1;k=0:2*N-1;Xk=xn*exp(-1i*2*pi/N).^(n'*k);x=(Xk*exp(1i*2*pi/N).^(n'*k))/N;subplot(2,2,1);stem(n,xn);title('x(n)');axis([-1,2*N,1.1*min(xn),1.1*max(xn)]);subplot(2,2,2);stem(n,abs(x));title('IDFS|X(k)|');axis([-1,2*N,1.1*min(x),1.1*max(x)]);subplot(2,2,3),stem(k,abs(Xk));title('|X(k)|');axis([-1,2*N,1.1*min(abs(Xk)),1.1*max(abs(Xk))]);subplot(2,2,4),stem(k,angle(Xk));title('arg|X(k)|');axis([-1,2*N,1.1*min(angle(Xk)),1.1*max(angle(Xk)]);程序运行结果如下图:课程名称:数字信号处理实验成绩:指导教师:实验报告院系:信息工程学院班级:学号:姓名:日期:2011.10.30第7页共7页05100123x(n)05100510IDFS|X(k)|051051015|X(k)|0510-2-1012arg|X(k)|2、已知有限长序列x(n)=[1,0.5,0,0.5,1,1,0.5,0],要求:①求该序列的DFT、IDFT的图形;程序清单:xn=[1,0.5,0,0.5,1,1,0.5,0];N=length(xn);n=0:N-1;k=0:N-1;Xk=xn*exp(-1i*2*pi/N).^(n'*k);x=(Xk*exp(1i*2*pi/N).^(n'*k))/N;subplot(2,2,1);stem(n,xn);title('x(n)');axis([-1,N,1.1*min(xn),1.1*max(xn)]);subplot(2,2,2);stem(n,abs(x));title('IDFT|X(k)|');axis([-1,N,1.1*min(x),1.1*max(x)]);subplot(2,2,3),stem(k,abs(Xk));title('|X(k)|');axis([-1,N,1.1*min(abs(Xk)),1.1*max(abs(Xk))]);subplot(2,2,4),stem(k,angle(Xk));title('arg|X(k)|');axis([-1,N,1.1*min(angle(Xk)),1.1*max(angle(Xk))]);程序运行结果如下图:第7页共7页0246800.51x(n)0246800.51IDFT|X(k)|024681234|X(k)|02468-2-1012arg|X(k)|②用FFT算法求该序列的DFT、IDFT的图形;程序清单:xn=[1,0.5,0,0.5,1,1,0.5,0];N=length(xn);subplot(2,2,1);stem(n,xn);title('x(n)');k=0:N-1;Xk=fft(xn,N);subplot(2,1,2);stem(k,abs(Xk));title('Xk=DFT(xn)');xn1=ifft(Xk,N);subplot(2,2,2);stem(n,xn1);title('x(n)=IDFT(Xk)程序运行结果如下图:第7页共7页0246800.20.40.60.81x(n)01234567012345Xk=DFT(xn)0246800.20.40.60.81x(n)=IDFT(Xk)③假定采用频率Fs=20Hz,序列长度N分别取8、32和64,用FFT计算其幅度谱和相位谱。程序清单:Ts=0.05;C=[8,32,64];forr=0:2;N=C(r+1);n=0:N-1;xn=[1,0.5,0,0.5,1,1,0.5,0,zeros(1,N-8)];D=2*pi/(N*Ts);k=floor(-(N-1)/2:(N-1)/2);X=fftshift(fft(xn,N));subplot(3,2,2*r+1);plot(k*D,abs(X));subplot(3,2,2*r+2);stairs(k*D,angle(X));end程序运行结果如下图:第7页共7页-100-500500246-100-50050-505-100-500501000246-100-50050100-505-100-500501000246-100-50050100-5053、已知一个无限长序列x(n)=0.5n(n≥0),采样周期Ts=0.2s,要求序列长度分别取8、32和64,用FFT求其频谱。程序清单:Ts=0.2;C=[8,32,64];forr=0:2;N=C(r+1);n=0:N-1;xn=0.5.^n;D=2*pi/(N*Ts);k=floor(-(N-1)/2:(N-1)/2);X=fftshift(fft(xn,N));subplot(3,2,2*r+1);plot(k*D,abs(X));axis([-80,80,0,3]);subplot(3,2,2*r+2);stairs(k*D,angle(X));axis([-80,80,-1,1]);end程序运行结果如下图:第7页共7页-500500123-50050-101-500500123-50050-101-500500123-50050-1014.思考题:①离散傅里叶级数与连续性周期信号的傅里叶级数有何不同?周期序列的频谱有何特点?答:傅里叶级数仅有N个独立的谐波分量,展成离散傅立叶级数时,只能取k=0~N-1的N个独立的谐波分量,而连续性周期信号的傅里叶级数由无穷多个与基波频率成整数倍的谐波分量叠加而成。周期序列的频谱特点:以N为周期的周期序列的频谱X(k)也是一个以N为周期的周期序列。②DFS、DFT、FFT有何联系?答:DFS是求周期序列(周期为N)的离散傅里叶级数X(k),X(k)也是一个以N为周期的周期序列,DFT是求有限长序列的离散傅立叶变换X(k),而X(k)是X(k)的主值序列,也就是说对DFS的变换结果只取0~N-1的序列值就得到DFT的变换。FFT只是DFT的一种快速高效的算法,它适用序列长度很大时,使用其可以大大缩短运算时间。第7页共7页5.实验总结:答:通过本次实验,我知道了对有限长的序列求DFT时一定注意序列长度的取值范围;矩阵的求幂运算与数组的求幂运算的表达格式是不同的,前者为:a^n,后者为:a.^n,另外参与矩阵幂运算的量必须有一个是标量,底数矩阵必须是方阵,才能反复相乘;进行频谱分析时,若对频谱精度要求较高时,可使N的取值适度的大,因为N值取得越大,即序列保留的越长,曲线精度越高;离散傅里叶级数变换通用子程序dfs,逆变换通用子程序idfs,仅适用于对主值区间进行变换,周期次数无法传递给子程序,因此程序执行结果仅显示一个周期的变换情况。
本文标题:离散傅里叶变换(DFT)快速傅里叶变换(FFT)-实验四
链接地址:https://www.777doc.com/doc-1872450 .html