北理工数字信号处理实验1 利用DFT分析信号频谱.docx
《北理工数字信号处理实验1 利用DFT分析信号频谱.docx》由会员分享,可在线阅读,更多相关《北理工数字信号处理实验1 利用DFT分析信号频谱.docx(13页珍藏版)》请在冰豆网上搜索。
北理工数字信号处理实验1利用DFT分析信号频谱
实验1利用DFT分析信号频谱
一、实验目的
1、加深对DFT原理的理解
2、应用DFT分析信号的频谱
3、深刻理解利用DFT分析信号频谱的原理,分析实现过程中出现的现象及解决方法
二、实验设备与环境
计算机、MATLAB软件环境
三、实验理论基础
1、DFT与DTFT的关系
有限长序列
的离散时间傅里叶变换
在频率区间
的N个等间隔分布的点
上的N个取样值可以由下式表示:
由上式可知,序列
的N点DFT,实际上就是序列
的DTFT在N个等间隔频率点
上样本
2、利用DFT求DTFT
3、利用DFT分析连续时间信号的频谱
4、可能用到的MATLAB函数与代码
四、实验内容
1.已知
,完成如下要求:
(1)计算其DTFT,并画出
区间的波形
(2)计算4点DFT,并把结果显示在
(1)所画的图形中
(3)对
补零,计算64点DFT,并显示结果
(4)根据实验结果,分析是否可以由DFT计算DTFT,如果可以,如何实现
解:
(1)
x=[2,-1,1,1];n=0:
3;w=-pi:
0.01*pi:
pi;X=x*exp(-j*n'*w);
subplot(211);
plot(w,abs(X));xlabel('\Omega/\pi');title('Magnitude');axistight
subplot(212);
plot(w,angle(X)/pi);xlabel('\Omega/\pi');title('Phase');axistight
(2)
x=[2,-1,1,1];
n=0:
3;
w=-pi:
0.01*pi:
pi;
X=x*exp(-j*n'*w);
y=fft(x,4);
subplot(211);
holdon
plot(w,abs(X));xlabel('\Omega/\pi');title('Magnitude');axistight
stem(0:
3,abs(y),'fill');
subplot(212);
holdon
plot(w,angle(X)/pi);xlabel('\Omega/\pi');title('Phase');axistight
stem(0:
3,angle(y)/pi,'fill')
(3)
x=[2,-1,1,1];
x=[x,zeros(1,60)];
y=fft(x,64);
subplot(212);
stem(0:
63,abs(y),'fill');
title('Magnitude');
subplot(211);
stem(0:
63,angle(y)/pi,'fill');
axistight
(4)
可以
通过实验波形看出,序列通过补零后,长度越长,DFT点数越多,其DFT越逼近其DTFT的连续波形。
所以,当补零至无穷长序列时可以由DFT计算DTFT。
2.考察序列
(1)
时,用DFT估计x(n)的频谱,将x(n)补零加长到长度为100点序列,用DFT估计x(n)的频谱,要求画出相应波形。
(2)
时,用DFT估计x(n)的频谱,并画出波形。
(3)根据实际结果,分析怎样提高频谱分辨率。
解:
(1)
n=0:
10;
x=cos(0.48*pi*n)+cos(0.52*pi*n);
y=fft(x);
subplot(211);
stem(0:
10,abs(y),'fill');
title('Magnitude');
subplot(212);
stem(0:
10,angle(y)/pi,'fill');
title('Phase')
n=0:
10;
x=cos(0.48*pi*n)+cos(0.52*pi*n);
x=[x,zeros(1,39)];y=fft(x);
subplot(211);
stem(0:
49,abs(y),'fill');
title('Magnitude');
subplot(212);
stem(0:
49,angle(y)/pi,'fill');
title('Phase')
n=0:
10;
x=cos(0.48*pi*n)+cos(0.52*pi*n);
x=[x,zeros(1,89)];
y=fft(x);
subplot(211);
stem(0:
99,abs(y),'fill');
title('Magnitude');
subplot(212);
stem(0:
99,angle(y)/pi,'fill');
title('Phase')
(2)
n=0:
100;
x=cos(0.48*pi*n)+cos(0.52*pi*n);
y=fft(x);
subplot(211);
stem(0:
100,abs(y),'fill');
title('Magnitude');
subplot(212);
stem(0:
100,angle(y)/pi,'fill');
title('Phase')
(3)
0:
10和0:
100的分辨率差很多,所以我们可以通过增加时域内的信号采样点数来提高分辨率
3.已知信号
。
利用DFT做频谱分析,确定适合的参数,使得到的频谱的频率分辨率符合要求。
解:
n=0:
0.1:
6;x=0.15*sin(2*pi*n)+sin(4*pi*n)-0.1*sin(6*pi*n);y=fft(x);
subplot(211);stem(0:
60,abs(y),'fill');title('Magnitude');
subplot(212);stem(0:
60,angle(y)/pi,'fill');title('Phase')
4.利用DFT分析连续时间信号
的频谱(幅度谱)。
分析采用不同的采样间隔和截取长度进行计算的结果,并最终确定适合的参数。
解:
n=-6:
0.1:
6;
x=exp(-0.1*n).*heaviside(n);
y=fft(x);
subplot(211);
stem(-60:
60,abs(y),'fill');
title('Magnitude');
subplot(212);
stem(-60:
60,angle(y)/pi,'fill');
title('Phase')
n=-10:
0.1:
10;
x=exp(-0.1*n).*heaviside(n);
y=fft(x);
subplot(211);
stem(-100:
100,abs(y),'fill');
title('Magnitude');
subplot(212);
stem(-100:
100,angle(y)/pi,'fill');
title('Phase')
五、实验心得与体会
通过本次实验,加深了对DFT原理的理解;实验中,应用DFT分析信号的频谱,对信号的频谱分辨率进行研究;深刻理解了利用DFT分析信号频谱的原理,分析实现过程中出现的现象及解决方法。
实验中,通过对不同函数的调用,对MATLAB软件的使用更加熟练。