1、信息科学与工程学院 数字信号处理实验报告 实验二 DFT 和 FFT一、实验目的1)认真复习周期序列 DFS、有限长序列DFT 的概念、旋转因子的定义、以及DFS 和DFT的性质等有关内容;复习基2-FFT 的基本算法,混合基 -FFT 的基本算法、Chirp-Z 变换的算法等快速傅立叶变换的方法。2)掌握有限长序列的循环移位、循环卷积的方法,对序列共轭对称性的含义和相关内容加深理解和掌握,掌握利用DFT 分析序列的频谱特性的基本方法。3)掌握 FFT 算法的基本原理和方法、 Chirp-Z 变换的基本原理和方法,掌握利用FFT 分析序列的频谱特性的方法。4)熟悉利用 MATLAB 进行序列的
2、 DFT、FFT 的分析方法。二、实验内容1)设周期序列( ) xn =,0,1,2,3,0,1,2,3,0,1,2,3,,求该序列的离散傅立叶级数X (k) = DFSx(n) ,并画出DFS 的幅度特性。主程序:clc;N=4;n=0:N-1;k=0:N-1;xn=0 1 2 3;Xk=xn*exp(-j*2*pi/N).(n*k);stem(k, abs(Xk);信息科学与工程学院 数字信号处理实验报告 xlabel(k);gtext(|X(k)|);分析:由定义可知,对于周期序列,根据离散傅里叶级数公式即可求出,此实验中显示了一个周期的傅里叶级数。2)设周期方波序列为其中 N 为基波周
3、期,L/N 是占空比。(1) 用L 和N求| X(k) |的表达式;(2) 当L 和N 分别为:L=5,N=20;L=5 ,N=40; L=5,N=60 以及信息科学与工程学院 数字信号处理实验报告 L=7,N=60 时画出DFS 的幅度谱;(3) 对以上结果进行讨论,总结其特点和规律。主程序:L=5,N=20 时clc;N=20;xn=ones(1,5),zeros(1,15);xn=xn,xn,xn;n=0:3*N-1;k=0:3*N-1;Xk=xn*exp(-j*2*pi/N).(n*k)stem(k,abs(Xk);xlabel(k);title(L=5,N=20时DFS 幅度谱 );
4、结果:(修改代码中的L和N(x(n) ),可以得到其他占空比时DFS 的幅度谱)信息科学与工程学院 数字信号处理实验报告 信息科学与工程学院 数字信号处理实验报告 信息科学与工程学院 数字信号处理实验报告 分析:由四组图对比可知,N越大,其频域抽样间隔越小,N 为频域的重复周期。占空比L/N主要决定第一零点带宽(在一个周期内)。3)设有限长序列x(n) = 0,1,2,3,计算DTFTx(n)=X(ej),并画出它的幅度谱;然后利用k=2*pi*k/4,k=0,1,2,3 对X(ej)进行采样,并证明它等于实验 a 中的X(k) 。主程序:clc;N=4;xn=0 1 2 3;n=0:N-1;
5、k=0:N-1;w=2*pi*(0:2047)/2048;Xw=exp(-j*w)+2*exp(-j*2*w)+3*exp(-j*3*w);subplot(211);plot(w/pi,abs(Xw);title(X(ejw)幅度谱);Xk=fft(xn,N);subplot(212);stem(k,abs(Xk),fill);hold on;plot(N/2*w/pi,abs(Xw);结果:信息科学与工程学院 数字信号处理实验报告 分析:对比第一题的结果可以看出,对离散傅里叶变换的频谱进行抽样,在满足采样定理的条件下,可以无失真的恢复原来的波形。4)序列x(n)=R4(n) ,计算DTFTx
6、(n)=X(ej) ,并绘制其幅度和相位谱。(1) 计算x(n) 的 4 点DFT,并绘制DFT 的幅度与相位谱;(2) 将x(n) 补零形成 8 点序列,计算8 点DFT,并绘制幅度与相位谱,求频率分辨率;(3) 将x(n) 补零形成 16 点序列,计算 16 点DFT,并绘制幅度与相位谱,求频率分辨率;主程序:N1=8; N2=16;信息科学与工程学院 数字信号处理实验报告 n=0:N1-1;k1=0:N1-1;k2=0:N2-1;w=2*pi*(0:2047)/2048;Xw=(1-exp(-j*4*w)./(1-exp(-j*w);%对x(n)的频谱函数采样2048个点可以看做连续的频
7、谱xn=(n=0)n=0:9;x=n+1;h=1,0,-1;y1=conv(x,h)y2=fdconv(x,h,6)实验结果:y1 =1 2 2 2 2 2 2 2 2 2 -9 -10y2 =1 2 2 2 2 2 2 2 2 2 -9 -10 0 0 0 0分析:编写分段卷积函数如下:%重叠保留法求分段卷积function y=fdconv(x,h,N)Lx=length(x);M=length(h);M1=M-1;L=N-M1;%各段搭接长度 M1,有效程度为L信息科学与工程学院 数字信号处理实验报告 h=h,zeros(1,N-M);%将h 延长至循环长度N;x=zeros(1,M1)
8、,x,zeros(1,N-1);%在x前面加上M-1 个0K=floor(Lx+M1-1)/(L)+1;%段数Y=zeros(K+1,N);for k=0:K-1;xk=x(k*L+1:k*L+N);Y(k+1,:)=circonv(xk,h,N);end;Y=Y(:,M:N);%去掉前面M-1个样本y=(Y(:);%将列向量转换成行向量输出对比两个结果可以看出,自己编写的函数长度为14,产生误差的是最后4个样本,这是由于自己编写的函数输入的长度不合适,在其后面随便补了几个0,从而产生几个样本的误差。9)序列x(n)=R6(n) ,用快速傅立叶变换FFT 计算6 点DFTx(n)和8 点DFT
9、x(n),绘制波形图并比较结果。主程序:N=6;n1=0:5;n2=0:7;x=stepseq(0,0,6);y1=fft(x,6);y2=fft(x,8);信息科学与工程学院 数字信号处理实验报告 subplot(221);stem(n1,abs(y1),.);title(6点fft幅度谱 );subplot(222);stem(n1,angle(y1),.);title(6点fft相位谱 );subplot(223);stem(n2,abs(y2),.);title(8点fft幅度谱 );subplot(224);stem(n2,angle(y2),.);title(8点fft相位谱 );
10、实验结果:信息科学与工程学院 数字信号处理实验报告 10) 设两个序列x(n)=(2n+3)R17(n),h(n)=(n+1)R4(n),采用重叠相加法,按分段长度L=7的 FFT 计算线性卷积:y(n)=x(n)*h(n),并与直接线性卷积的结果进行比较。主程序:n=0:16;x=2*n+3;h=1 2 3 4;y1=conv(x,h)y2=fdconv(x,h,7)实验结果:y1 =Columns 1 through 18 信息科学与工程学院 数字信号处理实验报告 3 11 26 50 70 90 110 130 150 170 190 210 230 250 270 290 310 29
11、3Columns 19 through 20 237 140y2 =Columns 1 through 18 3 11 26 50 70 90 110 130 150 170 190 210 230 250 270 290 310 293Columns 19 through 24 237 140 0 0 0 0分析:fdconv函数源代码与第8题一致,对比两个结果可以看出,自己编写的函数长度为24,产生误差的是最后4个样本,这是由于自己编写的函数输入的长度不合适,在其后面随便补了几个0,从而产生几个样本的误差。11)设序列x(n)=(0.8)nR15(n),计算序列x(n) 在单位园上的Chi
12、rp-z 变换,并与DFTx(n)的结果进行比较。主程序:clc;n=0:14;x=(0.8).n).*stepseq(0,0,14);y1=czt(x);y2=fft(x,15);subplot(211)信息科学与工程学院 数字信号处理实验报告 stem(n,abs(y1),.);title(Chirp-z变换的图形 );subplot(212)stem(n,abs(y2),.);title(DFT变换的图形);实验结果:分析:由实验结果可以看出,两种方法求的结果一致,在单位圆上求Z变换可信息科学与工程学院 数字信号处理实验报告 以直接调用ctz函数。12)设信号x(t)=sin(f1t)+
13、sin(f2t)+sin(f3t)+sin(f4t)+sin(f5t),其中f1=6Hz,f2=6.5Hz ,f3=8Hz和f4=9Hz,f5=10Hz,对信号x(t)进行频率为40Hz 进行抽样,时域抽样400 点。(1) 用Chirp-z 变换计算DFTx(n);(2) 直接计算DFTx(n);主程序:clc;N=400;n=0:399;fs=40;xn=sin(6*n*fs)+sin(6.5*n*fs)+sin(8*n*fs)+sin(9*n*fs)+sin(10*n*fs);y1=czt(xn);y2=fft(xn,400);subplot(211)stem(n,abs(y1),.);title(Chirp-z变换的图形 );subplot(212)stem(n,abs(y2),.);title(DFT变换的图形);结果: