预览加载中,请您耐心等待几秒...
1/5
2/5
3/5
4/5
5/5

在线预览结束,喜欢就下载吧,查找使用更方便

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

07级电信(2)班刘坤洋24实验一利用MATLAB实现信号DFT的计算一、实验目的:1、熟悉利用MATLAB计算信号DFT的方法2、掌握利用MATLAB实现由DFT计算线性卷积的方法二、实验设备:电脑、matlab软件三、实验内容:练习用matlab中提供的内部函数用于计算DFTfft(x),fft(x,N),ifft(x),ifft(x,N)的含义及用法在进行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')>>title('mypicture')结果图:在对信号进行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);>>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')结果图: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')结果图:利用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点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');>>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');结果图: