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;%抽样频率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')的频谱分析利用)π4cos()π4cos()(DFT21tftftxHz600,Hz120,Hz10021sffftitle('mypicture')结果图:(3)在对信号进行DFT时选择hamming窗增加频率分辨率请举例,并编程实现题目:源程序:N=50;%数据的长度L=512;%DFT的点数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);的频谱分析利用)π4cos(15.0)π4cos()(DFT21tftftxHz600,Hz150,Hz10021sfffwh=(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')结果图:2、增加DFT点数M以显示更多频谱细节请举例,并编程实现题目:利用MATLAB计算16点序列x[k]的512点DFT。源程序:N=32;k=0:N-1;4,32),/π4cos(][rNNrkkxL=0:511;x=cos(4*pi*k*4./N);X=fft(x);plot(k/N,abs(X),'o');holdonXE=fft(x,512);plot(L/512,abs(XE));legend('N=32')结果图:3、利用MATLAB实现由DFT计算线性卷积请举例,并编程实现题目:利用MATLAB由DFT计算x[k]*h[k]。x[k]={1,2,1,1},h[k]={2,2,1,1}源程序:%利用DFT计算线性卷积x=[1211];h=[2211];%确定卷积结果的长度L=length(x)+length(h)-1;%计算序列的L点DFTXE=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');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');结果图: