数字信号处理实验报告 .doc
实验报告学院(系)名称:计算机与通信工程学院姓名学号专业班级实验项目实验二 离散傅里叶变换及性质课程名称数字信号处理课程代码实验时间2013年06月17日实验地点主校区计算机基础实验室批改意见成绩教师签字:一,实验目的 (1)通过本实验的练习,了解离散时间信号时域运算的基本实现方法。 (2)了解相关函数的调用格式及作用。 (3)通过本实验,掌握离散傅里叶变换的原理及编程思想。二,实验原理 对于离散序列,存在着两种傅里叶变换离散时间傅里叶变换(DTFT)和离散傅里叶变换(DFT)。DTFT用以求出离散信号的连续频谱,它仅在时域上离散而在频域上是一个连续的;DFT用以求出连续频谱上的离散样本点,所以其在时域和频域上都是离散的。对于一个离散序列,它的离散时间傅里叶变换(DTFT)的定义为: 离散时间傅里叶变换收敛的充分条件是绝对可加,即 利用离散快速傅里叶变换函数计算傅里叶计算傅里叶变换。MATLAB提供了内部函数来快速地进行离散傅里叶变换(DFT)和逆变换(IDFT)的计算,如下所列。 ,(1) :计算L点的DFT,L为序列的长度,即。(2) :计算N点的DFT。N为指定采用的点数,当,则程序会自动给后面补个零点;如果,则程序会自动截断,取前N个数据。 (3) :计算点的IDFT,L为序列的长度,即。(4) :计算N点的IDFT,N为指定采用的点数,当,则程序会自动 给后面补个零点;如果,则程序会自动截断,取前N个数据。 三,实验内容1.离散时间傅里叶变换DTFT【例3-1-1】求有限长序列的DTFT,画出它的幅值谱、相位谱、实部和虚部。MATLAB程序如下:clf;x=1,2,3,4,5;nx=-1:3w=linspace(0,2*pi,512);H=x*exp(-j*nx*w);subplot(2,2,1);plot(w,abs(H);ylabel(幅度);grid on;%画幅度特性曲线subplot(2,2,2);plot(w,angle(H);ylabel(相角);grid on;%画相位特性曲线subplot(2,2,3);plot(w,real(H);ylabel(实部);grid on;%画幅度实部特性曲线subplot(2,2,4);plot(w,imag(H);ylabel(虚部);grid on;%画幅度虚部特性曲线set(gcf,color,w); 程序运行的结果如图1所示图1 2.离散傅里叶变换DFT 【例3-1-2】对于离散序列,求出它的20点和23点的离散傅里叶变换的幅值谱。MATLAB程序如下:k=5;n1=0:0.75:19;x1=cos(2*pi*n1/k);xk1=abs(fft(x1);n2=0:0.75:22;x2=cos(2*pi*n2/k);xk2=abs(fft(x2);subplot(2,2,1);plot(n1,x1);xlabel(n);ylabel(x1(n);grid on;subplot(2,2,2);stem(n1,xk1);xlabel(k);ylabel(X1(k);grid on;subplot(2,2,3);plot(n2,x2);axis(0,22,-1,1);xlabel(n);ylabel(x2(n);grid on;subplot(2,2,4);stem(n2,xk2);axis(0,22,0,10);xlabel(k);ylabel(X2(k);grid on;set(gca,XTickMode,manual,XTick,0,5,10,15,22)set(gcf,color,w); 离散傅里叶变换及其快速计算结果如图2所示 图2 从图2中可以看出,只有序列的20点的傅里叶变换得到的频谱图是单一谱线。这是由于序列的周期是5,而20是5的整数倍,所以得到了单一谱线的频谱图,而23则选取了4个半周期,即出现了频谱的泄露,所以得不到单一谱线的频谱图。3.离散傅里叶变换DFT的性质(1)时移性质【例3-1-3】将序列右移10位,观察它的幅值谱和相位谱的变化。 MATLAB的程序如下:clf;w=-pi:2*pi/511:pi;d=10;x1=2,1,-1,8,6,-2,-4,9,-3;xk1=abs(freqz(x1,1,w);omegal=angle(freqz(x1,1,w);x2=zeros(1,d),x1;xk2=abs(freqz(x2,1,w);omega2=angle(freqz(x2,1,w);subplot(2,2,1);plot(w/pi,xk1);grid on;title(原始序列的幅值谱);subplot(2,2,2);plot(w/pi,xk2);grid on;title(时移序列的幅值谱);subplot(2,2,3);plot(w/pi,omegal);grid on;title(原始序列的相位谱);subplot(2,2,4);plot(w/pi,omega2);grid on;title(时移序列的相位谱);set(gcf,color,w); 离散傅里叶变换的时移性质如图3所示图3(2)频移性质【例3-1-4】将序列的频谱向右移9位,观察它的频移序列的幅值谱和相位谱。 MATLAB的程序如下:clf;w=-pi:2*pi/511:pi;deltaw=0.4*pi;x1=2,1,-1,8,6,-2,-4,9,-3;xk1=abs(freqz(x1,1,w);omegal=angle(freqz(x1,1,w);L=length(x1);n=0:L-1;x2=exp(deltaw*i*n).*x1;xk2=abs(freqz(x2,1,w);omega2=angle(freqz(x2,1,w);subplot(2,2,1);plot(w/pi,xk1);grid on;title(原始序列的幅值谱);subplot(2,2,2);plot(w/pi,xk2);grid on;title(频移序列的幅值谱);subplot(2,2,3);plot(w/pi,omegal);grid on;title(原始序列的相位谱);subplot(2,2,4);plot(w/pi,omega2);grid on;title(频移序列的相位谱);set(gcf,color,w);离散傅里叶变换的频移性质如图4所示图4(3) 循环卷积性质【例3-1-5】已知序列,求解和的13点循环卷积序列,对比循环卷子序列与积序列的幅值和相位谱。 MATLAB程序如下:clf;w=-pi:2*pi/512:pi;N=13;x=1,3,7,-3,-4,5,-2,6,1;x=x,zeros(1,N-length(x);h=1,-2,3,-2,1;h=h,zeros(1,N-length(h);m=0:N-1;hm=h(mod(-m,N)+1);H=toeplitz(hm,0,h(2:N);y=x*H;xk,w=freqz(x,1,512,whole);hk,w=freqz(h,1,512,whole);yk,w=freqz(y,1,whole);yk1=xk.*hk;subplot(2,2,1);plot(w/pi,abs(yk);grid on;title(卷积序列的幅值谱);subplot(2,2,2);plot(w/pi,abs(yk1);grid on;title(序列积的幅值谱);subplot(2,2,3);plot(w/pi,angle(yk);grid on;title(卷积序列的相位谱);subplot(2,2,4);plot(w/pi,angle(yk1);grid on;title(序列积的相位谱);set(gcf,color,w); 离散傅里叶变换的循环卷积性质如图5所示图5四,实验代码实验结果已知序列,。试设计实验,观察这两个序列的15点循环卷积序列的幅值谱和相位谱。(1) MATLAB程序如下:n=-10:0.5:10;xn=cos(2*pi*n/5);xk1=fft(xn,20);xk2=fft(xn,23);subplot(2,1,1);stem(abs(xk1);subplot(2,1,2);stem(abs(xk2);生成信号如下:图6(2)MATLAB程序如下:w=-pi:2*pi/512:pi;n=15;x=1,2,3,4,5,6,7,8,9 ;x=x,zeros(1,n-length(x);h=1, 2, -3, -1, 0, 2, -2;h=h,zeros(1,n-length(h);m=0:n-1;hm=h(mod(-m,n)+1);H=toeplitz(hm,0,h(2:n);y=x*H;xk,w=freqz(x,1,512,whole);hk,w=freqz(h,1,512,whole);yk,w=freqz(y,1,whole);yk1=xk.*hk;subplot(2,2,1);plot(w/pi,abs(yk);grid on;subplot(2,2,2);plot(w/pi,abs(yk1);grid on;subplot(2,2,3);plot(w/pi,angle(yk);grid on;subplot(2,2,4);plot(w/pi,angle(yk1);grid on;set(gcf,color,w);生成信号如下:图7五,实验预习要求 (1)预习实验原理 (2)熟悉实验程序 (3)思考程序设计实验部分程序的编程六,实验报告要求 (1)在MATLAB中输入程序,验证实验结果,并将实验结果存入指定存储区域中。 (2)对于程序设计实验,要求通过对验证性实验的练习,自行编制完整的实验程序,实现对信号的模拟,并得到实验结果。 (3)在实验报告中写出完整的自编程序,并给出实验结果。七,思考题(1) DFT和DTFT有哪些不同以及有哪些关系?从前者如何求出后者或由后者如何求出前者?答:DFT:时间和频率都离散,可在计算机中处理 DTFT:时间离散,频率连续(2) 归纳DFT的主要特性,并与DTFT进行对比。答:一个N点离散时间序列的傅里叶变换(DTFT)所的频谱是以(2*pi)为周期进行延拓的连续函数,由采样定理知道,时域进行采样,则频域周期延拓;同理,如果在频域进行采样,则