欢迎来到天天文库
浏览记录
ID:51321298
大小:81.50 KB
页数:5页
时间:2020-03-10
《利用MATLAB实现信号DFT的计算.doc》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、07级电信(2)班刘坤洋24实验一利用MATLAB实现信号DFT的计算一、实验目的:1、熟悉利用MATLAB计算信号DFT的方法2、掌握利用MATLAB实现由DFT计算线性卷积的方法二、实验设备:电脑、matlab软件三、实验内容:1、练习用matlab中提供的内部函数用于计算DFT(1)fft(x),fft(x,N),ifft(x),ifft(x,N)的含义及用法(2)在进行DFT时选取合适的时域样本点数N请举例,并编程实现题目:源程序:>>N=30;%数据的长度>>L=512;%DFT的点数>>f1=100;f2=120;>>fs=600;%抽样频
2、率>>T=1/fs;%抽样间隔>>ws=2*pi*fs;>>t=(0:N-1)*T;>>f=cos(4*pi*f1*t)+cos(4*pi*f2*t);>>F=fftshift(fft(f,L));>>w=(-ws/2+(0:L-1)*ws/L)/(2*pi);>>hd=plot(w,abs(F));>>ylabel('幅度谱')>>xlabel('频率/Hz')>>title('mypicture')结果图:(1)在对信号进行DFT时选择hamming窗增加频率分辨率请举例,并编程实现题目:源程序:>>N=50;%数据的长度>>L=512;%DFT的
3、点数>>f1=100;f2=150;>>fs=600;%抽样频率>>T=1/fs;%抽样间隔>>ws=2*pi*fs;>>t=(0:N-1)*T;>>f=cos(4*pi*f1*t)+0.15*cos(4*pi*f2*t);>>wh=(hamming(N))';>>f=f.*wh;>>F=fftshift(fft(f,L));>>w=(-ws/2+(0:L-1)*ws/L)/(2*pi);>>plot(w,abs(F));>>ylabel('幅度谱')>>xlabel('频率/Hz')>>title('mypicture')>>legend('N=50
4、')结果图:2、增加DFT点数M以显示更多频谱细节请举例,并编程实现题目:利用MATLAB计算16点序列x[k]的512点DFT。源程序:>>N=32;>>k=0:N-1;>>L=0:511;>>x=cos(4*pi*k*4./N);>>X=fft(x);plot(k/N,abs(X),'o');>>holdon>>XE=fft(x,512);plot(L/512,abs(XE));>>legend('N=32')结果图:3、利用MATLAB实现由DFT计算线性卷积请举例,并编程实现题目:利用MATLAB由DFT计算x[k]*h[k]。x[k]={1,
5、2,1,1},h[k]={2,2,1,1}源程序:%利用DFT计算线性卷积>>x=[1211];>>h=[2211];>>%确定卷积结果的长度>>L=length(x)+length(h)-1;%计算序列的L点DFT>>XE=fft(x,L);>.HE=fft(h,L);>>%由IDFT计算卷积结果>>y1=ifft(XE.*HE);>>%绘制卷积结果及误差图>>k=0:L-1;>>subplot(1,2,1);>>stem(k,real(y1));axis([0607]);>>title('ResultoflinearConvolution');>>
6、xlabel('Timeindexk');ylabel('Amplitude');>>y2=conv(x,h);error=y1-y2;>>subplot(1,2,2);stem(k,abs(error));>>xlabel('Timeindexk');ylabel('Amplitude');>>title('ErrorMagnitude');结果图:
此文档下载收益归作者所有