您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 管理学资料 > 利用DFT分析离散信号频谱
本科学生验证性实验报告学号114090315姓名李开斌学院物电学院专业、班级11电子实验课程名称利用DFT分析离散信号频谱教师及职称李宏宁开课学期2013至2014学年下学期填报时间2014年04月02日云南师范大学教务处编印一、实验设计方案实验序号04实验名称利用DFT分析离散信号频谱实验时间2014年04月02日实验室同析3栋3131.实验目的应用离散傅里叶变换(DFT),分析离散信号x[k]的频谱。深刻理解DFT分析离散信号频谱的原理,掌握改善分析过程中产生的误差的方法。2.实验原理、实验流程或装置示意图根据信号傅里叶变换建立的时域与频域之间的对应关系,可以得到有限长序列的离散傅里叶变换(DFT)与四种确定信号傅里叶变换的之间的关系,实现由DFT分析其频谱。信号的傅里叶变换建立了信号的时域与频域之间的一一对应关系,如果信号在时域存在某种联系,则在其频谱函数之间必然存在联系。若离散非周期信号x[k]是连续非周期信号x(t)的等间隔抽样序列,则信号x[k]的频谱函数是信号x(t)的频谱函数的周期化;若离散周期信号是离散非周期信号x[k]的周期化,则信号的频谱函数是信号的频谱函数的离散化。Matlab中提供了fft函数,FFT是DFT的快速算法X=fft(x):用于计算序列x的离散傅里叶变换(DFT)X=fft(x,n):对序列x补零或截短至n点的离散傅里叶变换。当x的长度小于n时,在x的尾部补零使x的长度达到n点;当x的长度大于n时,将x截短使x的长度成n点;x=ifft(X)和x=ifft(X,n)是相应的离散傅里叶反变换。fftshift(x)将fft计算输出的零频移到输出的中心位置。利用DFT计算离散周期信号x[k]的频谱分析步骤为:(1)确定离散周期序列的基本周期N;(2)利用fft函数求其一个周期的DFT,得到X[m];(3)][][~mXmX利用DFT计算离散非周期信号x[k]的频谱分析步骤为:(1)确定序列的长度M及窗函数的类型。当序列为无限长时,需要根据能量分布,进行截短。(2)确定作FFT的点数N;根据频域取样定理,为使时域波形不产生混叠,必须取MN。(3)使用fft函数作N点FFT计算X[m]。3.实验设备及材料装有Matlab的计算机一台][~kx][~kx4.实验方法步骤及注意事项利用Matlab中的函数分析并绘出常用基本信号的波形。注意事项:(1)在使用MATLAB时应注意中英输入法的切换,在中文输入法输入程序时得到的程序是错误的;(2)MATLAB中两个信号相乘表示为x.*u,中间有个‘.’,同样两个信号相除也是如此;(3)使用MATLAB编写程序时,应新建一个m文件,而不是直接在Comandante窗口下编写程序;在使用MATLAB编程时,应该养成良好的编写习惯。5.实验数据处理方法比较法画图法6.参考文献陈后金,等.《数字信号处理》.2版【M】.北京:高等教育出版社,2010张德丰,等.《MATLAB数值计算与方法》.北京:机械工业出版社,2010二.实验报告1.实验现象与结果1.利用FFT分析信号31,1,0),8π3cos(][kkkx的频谱;(1)确定DFT计算的参数;(2)进行理论值与计算值比较,讨论信号频谱分析过程中误差原因及改善方法。%该周期序列的周期N=32,基频W0=p/8。N=32;k=0:N-1;x=cos(pi*3/8*k);X=fft(x,N);subplot(2,1,1);stem(k-N/2,abs(fftshift(X)));ylabel('Magnitude');xlabel('Frequency(rad)');title('Magnitude—Frequency');subplot(2,1,2);stem(k-N/2,angle(fftshift(X)));ylabel('Phase');xlabel('Frequency(rad)');title('Phase—Frequency');-20-15-10-505101505101520MagnitudeFrequency(rad)Magnitude—Frequency-20-15-10-5051015-4-2024PhaseFrequency(rad)Phase—Frequency2.利用FFT分析信号][)(][21kukxk的频谱;(1)确定DFT计算的参数;(2)进行理论值与计算值比较,讨论信号频谱分析过程中误差原因及改善方法。%该周期序列的周期N=32,基频W0=p/8。N=32;k=0:N-1;x=(0.5).^k;X=fft(x,N);subplot(2,1,1);stem(k-N/2,abs(fftshift(X)));ylabel('Magnitude');xlabel('Frequency(rad)');title('Magnitude—Frequency周期N=32,基频W0=p/8');subplot(2,1,2);stem(k-N/2,angle(fftshift(X)));ylabel('Phase');xlabel('Frequency(rad)');title('Phase—Frequency');-20-15-10-505101500.511.52MagnitudeFrequency(rad)Magnitude—Frequency周期N=32,基频W0=p/8-20-15-10-5051015-1-0.500.51PhaseFrequency(rad)Phase—Frequency3.有限长脉冲序列]5,4,3,2,1,0;5,0,1,3,3,2[][kkx,利用FFT分析其频谱,并绘出其幅度谱与相位谱。%该序列的N=6。N=6;k=0:N-1;x=[2,3,3,1,0,5];X=fft(x,N);subplot(2,1,1);stem(k-N/2,abs(fftshift(X)));ylabel('Magnitude');xlabel('Frequency(rad)');title('Magnitude—FrequencyN=6');subplot(2,1,2);stem(k-N/2,angle(fftshift(X)));ylabel('Phase');xlabel('Frequency(rad)');title('Phase—Frequency');-3-2.5-2-1.5-1-0.500.511.52051015MagnitudeFrequency(rad)Magnitude—FrequencyN=6-3-2.5-2-1.5-1-0.500.511.52-4-2024PhaseFrequency(rad)Phase—Frequency4.某周期序列由3个频率组成:)2πcos()16π9cos()167πcos(][kkkkx,利用FFT分析其频谱。如何选取FFT的点数N?此3个频率分别对应FFT计算结果X[m]中的哪些点?若选取的N不合适,FFT计算出的频谱X[m]会出现什么情况?%该周期序列的周期N=32,N=64,基频W0=p/16。N=32;k=0:N-1;x=cos(pi*7/16*k)+cos(9*pi/16*k)+cos(8*pi/16*k);X=fft(x,N);subplot(4,1,1);stem(k-N/2,abs(fftshift(X)));ylabel('Magnitude');xlabel('Frequency(rad)');title('Magnitude—FrequencyN=32');subplot(4,1,2);stem(k-N/2,angle(fftshift(X)));ylabel('Phase');xlabel('Frequency(rad)');title('Phase—FrequencyN=32');N=64;k=0:N-1;x=cos(pi*7/16*k)+cos(9*pi/16*k)+cos(8*pi/16*k);X=fft(x,N);subplot(4,1,3);stem(k-N/2,abs(fftshift(X)));ylabel('Magnitude');xlabel('Frequency(rad)');title('Magnitude—FrequencyN=64');subplot(4,1,4);stem(k-N/2,angle(fftshift(X)));ylabel('Phase');xlabel('Frequency(rad)');title('Phase—FrequencyN=64');-20-15-10-505101501020MagnitudeFrequency(rad)Magnitude—FrequencyN=32-20-15-10-5051015-505PhaseFrequency(rad)Phase—FrequencyN=32-40-30-20-1001020304002040MagnitudeFrequency(rad)Magnitude—FrequencyN=64-40-30-20-10010203040-505PhaseFrequency(rad)Phase—FrequencyN=645.某离散序列630),15π3.2cos(75.0)152πcos(][kkkkx,利用FFT分析其频谱。(1)对x[k]做64点FFT,绘出信号频谱,能分辨出其中的两个频率吗?%该周期序列的周期N=64,基频W0=p/15。N=64;k=0:N-1;x=cos(pi*2/15*k)+0.75*cos(2.3*pi/15*k);X=fft(x,N);subplot(2,1,1);stem(k-N/2,abs(fftshift(X)));ylabel('Magnitude');xlabel('Frequency(rad)');title('Magnitude—FrequencyN=64');subplot(2,1,2);stem(k-N/2,angle(fftshift(X)));ylabel('Phase');xlabel('Frequency(rad)');title('Phase—FrequencyN=64');-40-30-20-100102030400102030MagnitudeFrequency(rad)Magnitude—FrequencyN=64-40-30-20-10010203040-2-1012PhaseFrequency(rad)Phase—FrequencyN=64(2)对x[k]补零到256点后计算FFT,能分辨出其中的两个频率吗?%该周期序列的周期N=256,基频W0=p/15。N=256;k=0:N-1;x=cos(pi*2/15*k)+0.75*cos(2.3*pi/15*k);X=fft(x,N);subplot(2,1,1);stem(k-N/2,abs(fftshift(X)));ylabel('Magnitude');xlabel('Frequency(rad)');title('Magnitude—FrequencyN=256');subplot(2,1,2);stem(k-N/2,angle(fftshift(X)));ylabel('Phase');xlabel('Frequency(rad)');title('Phase—FrequencyN=256');-150-100-50050100150050100150MagnitudeFrequency(rad)Magnitude—FrequencyN=256-150-100-50050100150-4-2024PhaseFrequency(rad)Phase—FrequencyN=2566.已知序列others,050,e][2)1.0(2kkxk利用FFT分析下列信号的幅频特性,频率范围为)π,π[Ω,N=500点。(1)]2[][kxky
本文标题:利用DFT分析离散信号频谱
链接地址:https://www.777doc.com/doc-1502102 .html