利用MATLAB实现信号DFT的计算

更新时间:2024-01-02 22:00:01 阅读量: 教育文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

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

请举例,并编程实现 题目:

利用DFT分析x(t)?cos(4πf1t)?cos(4πf2t)的频谱f1?100Hz,f2?120Hz,fs?600Hz

源程序: >> N=30; %数据的长度 >>L=512; ?T的点数 >>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('my picture') 结果图:

(3) 在对信号进行DFT时选择hamming窗增加频率分辨率

请举例,并编程实现 题目:

利用DFT分析x(t)?cos(4πf1t)?0.15cos(4πf2t)的频谱f1?100Hz,f2?150Hz,fs?600Hz

源程序:>> N=50; %数据的长度 >>L=512; ?T的点数 >>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('my picture') >> legend('N=50') 结果图:

2、增加DFT点数M以显示更多频谱细节

请举例,并编程实现

题目: x[k]?cos(4π rk/N), N?32, r?4利用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'); >> hold on

>> XE = 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 = [1 2 1 1]; >>h = [2 2 1 1];

>> % 确定卷积结果的长度 >>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([0 6 0 7]);

>> title('Result of linear Convolution');

>> xlabel('Time index k');ylabel('Amplitude'); >> y2=conv(x,h);error=y1-y2;

>> subplot(1,2,2);stem(k,abs(error));

>> xlabel('Time index k');ylabel('Amplitude'); >> title('Error Magnitude'); 结果图:

本文来源:https://www.bwwdw.com/article/0exx.html

Top