实验一利用DFT分析信号频谱.docx

上传人:b****8 文档编号:28702475 上传时间:2023-07-19 格式:DOCX 页数:12 大小:96.10KB
下载 相关 举报
实验一利用DFT分析信号频谱.docx_第1页
第1页 / 共12页
实验一利用DFT分析信号频谱.docx_第2页
第2页 / 共12页
实验一利用DFT分析信号频谱.docx_第3页
第3页 / 共12页
实验一利用DFT分析信号频谱.docx_第4页
第4页 / 共12页
实验一利用DFT分析信号频谱.docx_第5页
第5页 / 共12页
点击查看更多>>
下载资源
资源描述

实验一利用DFT分析信号频谱.docx

《实验一利用DFT分析信号频谱.docx》由会员分享,可在线阅读,更多相关《实验一利用DFT分析信号频谱.docx(12页珍藏版)》请在冰豆网上搜索。

实验一利用DFT分析信号频谱.docx

实验一利用DFT分析信号频谱

实验一-利用DFT分析信号频谱

实验一利用DFT分析信号频谱

一、实验目的

1.加深对DFT原理的理解。

2.应用DFT分析信号的频谱。

3.深刻理解利用DFT分析信号频谱的原理,分析实现过程中出现的现象及解决方法。

二、实验设备与环境

计算机、MATLAB软件环境。

三、实验基础理论

1.DFT与DTFT的关系

DFT实际上是DTFT在单位圆上以

的抽样,数学公式表示为:

(2—1)

2、利用DFT求DTFT

方法一:

利用下列公式:

(2—2)

其中

为内插函数

方法二:

实际在MATLAB计算中,上述插值运算不见得是最好的办法。

由于DFT是DTFT的取样值,其相邻两个频率样本点的间距为

所以如果我们增加数据的长度N,使得到的

DFT谱线就更加精细,其包络就越接近DTFT的结果,这样就可以利用DFT计算DTFT。

如果没有更多的数据,可以通过补零来增加数据长度。

3、利用DFT分析连续时间函数

利用DFT分析连续时间函数是,主要有两个处理:

①抽样,②截断

对连续时间信号

一时间T进行抽样,截取长度为M,则

(2—3)

再进行频域抽样可得

(2—4)

因此,利用DFT分析连续时间信号的步骤如下:

(1)、确定时间间隔,抽样得到离散时间序列

.

(2)、选择合适的窗函数和合适长度M,得到M点离散序列

.

(3)、确定频域采样点数N,要求N≥M。

(4)、利用FFT计算N点DFT,得到

(5)、根据式(2—4)计算

的近似值。

利用上述方法分析连续连续时间时,应该注意以下问题:

(1)、频谱泄露

(2)、频谱混叠

(3)、栅栏效应和频谱分辨率

四、实验内容

1、已知x(n)={2,-1,1,1},完成如下要求:

 

(1)、计算他的DTFT,并画出[-π,π]区间的波形。

 

(2)、计算4点DFT,并把结果显示在

(1)所画的图形中。

 (3)、对x(n)补零,计算64点DFT,并显示结果。

 

(4)、 根据实验结果,分析是否可以由DFT计算DTFT,如果可以,如何实现.

(1)

(2)实验代码如下:

x=[2-111];

n=0:

3;

w=0:

0.01*pi:

pi*2;

X1=x*exp(-j*n'*w);

X2=fft(x)

subplot(211);

plot(w,abs(X1));

holdon;

stem(n*pi/2,abs(X2),'filled');

axistight;

subplot(212);

plot(w,angle(X1));

holdon;

stem(n*pi/2,angle(X2),'filled');

axistight;

MATLAB图形如下:

 

(3)实验代码如下:

N=0:

63;

x=[-2-111zeros(1,60)];

Y=fft(x);

subplot(211);

stem(abs(Y),'filled');

subplot(212);

stem(angle(Y),'filled');

MATLAB图像如下:

(4)

答:

可以由DFT计算DTFT。

由实验结果波形看出,序列补零后,长度越长,DFT点数越多,其DFT越逼近其DTFT的连续波形。

所以,令序列补零至无穷长时,可由其DFT当做其DTFT

2、考察序列

 x(n)=cos(0.48πn)+cos(0.52πn) 

(1)0<=n<=10时,用DFT估计x(n)的频谱;将x(n)补零加长到长度为100点序列用DFT估计x(n)的频谱,要求画出相应波形。

(2)0<=n<=100时,用DFT估计x(n)的频谱。

并画出波形。

(3)根据实验结果,分析怎样提高频谱分辨率

(1)实验程序代码如下:

n=0:

10;

k=0:

10;

x=cos(0.48*pi*n)+cos(0.52*pi*n);

Y=fft(x);

subplot(211);

stem(k,abs(Y),'filled');

subplot(212);

stem(k,angle(Y),'filled');

MATLAB波形如下:

补零至100点再分析其频谱

程序代码:

n=[n1n2]

k=0:

99

n1=0:

10

x1=cos(0.48*pi*n1)+cos(0.52*pi*n1);

n2=11:

99

x2=zeros(1,89);

x=[x1x2];

Y=fft(x);

subplot(211);

stem(k,abs(Y),'filled');

subplot(212);

stem(k,angle(Y),'filled');

MATLAB图形如下:

(2)0≤n≤100时

程序代码如下:

n=0:

100;

x=cos(0.48*pi*n)+cos(0.52*pi*n);

y=fft(x);

subplot(211);

stem(0:

100,abs(y),'filled');

subplot(212);

stem(0:

100,angle(y)/pi,'filled');

MATLAB图形如下:

(3)可以通过增加N来提高频谱分辨率。

3、已知信号x(t)=0.15sin2πf1t+sin2πf2t-0.1sin2πf3t,其f1=1Hz,f2=2Hz,f3=3Hz。

从x(t)的表达式可以看出,它包含三个频率的正弦波,但是,从其时域波形来看,似乎是一个正弦信号,利用

DFT做频谱分析,确定适合的参数,使得到的频谱的频率分辨率符合需要。

T=input('T=');

M=input('M=');

N=input('N=');

k=0:

N-1;

t1=0:

T:

(M-1)*T;

x1=0.15*sin(2*pi*t1)+sin(4*pi*t1)-0.1*sin(6*pi*t1);

T2=M*T:

N-1;

x2=zeros(1,N-M*T);

x=[x1x2];

X=fft(x);

Y=T*X;

subplot(211);

stem(k,abs(Y),'filled');

subplot(212);

stem(k,angle(Y),'filled');

MATLAB波形图如下:

T=1,M=4,N=10

MATLAB图形如下:

4、利用DFT分析连续时间信号x(t)=e-0.1 u(t)的频谱(幅度值)。

分析采用不同的采样间隔和截取长度进行计算的结果,并最终确定合适的参数。

程序代码:

T=input('T=');

M=input('M=');

N=input('N=');

k=0:

N-1;

t1=0:

T:

(M-1)*T;

x1=exp(-0.1*t1)

T2=M*T:

N-1;

x2=zeros(1,N-M*T);

x=[x1x2];

X=fft(x);

Y=T*X;

stem(k,abs(Y),'filled');

T=1M=3,N=10

波形图如下:

T=1,M=4,T=20

波形图如下:

五、实验心得与体会

通过上机实验,更加深入的了解到了利用DFT分析连续时间信号的优缺点以及处理方法,同于对于DFT和DTFT和FT的关系也有了更进一步的认识。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 幼儿教育 > 幼儿读物

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1