实验一利用DFT 分析信号频谱
一、 实验目的
1. 加深对DFT 原理的理解。
2. 应用DFT 分析信号的频谱。
3. 深刻理解利用DFT 分析信号频谱的原理,分析实现过程中出现的现象及解决方法。
二、 实验设备与环境 计算机、MATLAB^件环境。
三、 实验基础理论 1. DFT 与DTFT 的关系
方法二:实际在MATLAB 十算中,上述插值运算不见得是最好的办法。
由于DFT 是DTFT 的取
样值,其相邻两个频率样本点的间距为 —,所以如果我们增加数据的长度
N,使得到的
N
DFT 谱线就更加精细,其包络就越接近 DTFT 的结果,这样就可以利用 DFT 计算DTFT 如果
没有更多的数据,可以通过补零来增加数据长度。
3、利用DFT 分析连续时间函数
利用DFT 分析连续时间函数是,主要有两个处理:①抽样,②截断 对连续时间信号x a (t) 一时间T 进行抽样,截取长度为
M 则
址
ML
X a (N)「-x a (t)e4dt 二「x a (nT)e jnT
n=0
再进行频域抽样可得
M 4
—j 竺 n
送,T' X a (nT)e N =TX M (k) NT n =0
因此,利用DFT 分析连续时间信号的步骤如下: (1 )、确定时间间隔,抽样得到离散时间序列 x(n).
(2)
、选择合适的窗函数和合适长度 M 得到M 点离散序列x M
DFT 实际上是 DTFT 在单位圆上以
的抽样,数学公式表示为:
N-1
_j 空 k
X(k) = X(z)| 耳八 x(n)e N
z”
N
n=0
(2 — 1)
2、利用 DFT 求DTFT 方法一:利用下列公式:
2rk
X(e j )二、X(k)(
)
k=0
N
k= 0,1,..N - 1
(2 — 2)
Sn(N ,/2) Nsin(,/2)
.N A
e 2为内插函数
(2— 3)
(2—4)
X a (r 1)|
(n) = x(n)w(n).
(3 )、确定频域采样点数N,要求NA M。
(4)、利用FFT计算N点DFT,得到X M (k)。
(5)、根据式(2 —4)计算X a(j0)的近似值。
利用上述方法分析连续连续时间时,应该注意以下问题:
(1 )、频谱泄露
(2 )、频谱混叠
(3)、栅栏效应和频谱分辨率
四、实验内容
1、已知x(n)={2,-1,1,1} ,完成如下要求:
(1)、计算他的DTFT并画出卜n , n ]区间的波形。
(2)、计算4点DFT并把结果显示在(1)所画的图形中。
(3)、对x(n)补零,计算64点DFT并显示结果。
(4)、根据实验结果,分析是否可以由DFT计算DTFT 如果可以,如何实现
(1)(2)实验代码如下:
x=[2 -1 1 1];
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));
hold on;
stem( n*pi/2,abs(X2),'filled');
axis tight;
subplot(212);
plot(w,a ngle(X1));
hold on;
stem( n*pi/2,a ngle(X2),'filled');
axis tight;
MATLAB图形如下:
(3 )实验代码如下:
N=0:63;
x=[-2 -1 1 1 zeros(1,60)]; Y=fft(x);
subplot(211);
stem(abs(Y),'filled'); subplot(212);
stem(a ngle(Y),'filled'); MATLA图像如下:
5
70
答:可以由DFT 计算DTFT 由实验结果波形看出,序列补零后,长度越长, DFT 点数越多, 其DFT 越逼近其DTFT 的连续波形。
所以,令序列补零至无穷长时,可由其 2、考察序列
x(n)=cos(0.48 n n)+cos(0.52 n n)
(1)
0<=n<=10时,用DFT 估计x(n)的频谱;将x(n)补零加长到长度为 100点序列用DFT
估计x(n)的频谱,要求画出相应波形。
(2) 0<=n<=100时,用DFT 估计x(n)的频谱。
并画出波形。
(3) 根据实验结果,分析怎样提高频谱分辨率 (1)实验程序代码如下:
DFT 当做其DTFT
4 3 2 i o
20
30
40
50
60
io
5
70 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,a ngle(Y),'filled');
MATLA波形如下:
将x(n)补零至100点再分析其频谱
程序代码:
n=[ n1 n2]
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=[x1 x2];
Y=fft(x);
subplot(211); stem(k,abs(Y),'filled'); subplot(212);
stem(k,a ngle(Y),'filled');
MATLA图形如下:
(2)0 w n w 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,a ngle(y)/pi,'filled'); MATLA图形如下:
(3) 可以通过增加N 来提高频谱分辨率。
3、已知信号 x(t)=0.15sin2 n f1t+sin2 n f2t-0.1sin2 n f3t,其f1=1Hz,f2=2Hz,f3=3Hz x(t)的表达式可以看出, 它包含三个频率的正弦波,但是,从其时域波形来看,似乎是一个 正弦信号,利用
DFT 故频谱分析,确定适合的参数,使得到的频谱的频率分辨率符合需要。
T=i nput('T='); M=i nput('M='); N=i nput('N='); k=0:N-1; t1=0:T:(M-1)*T;
x1=0.15*si n(2*pi*t1)+si n(4*pi*t1)-0.1*si n(6*pi*t1); T2=M*T:N-1; x2=zeros(1,N-M*T); x=[x1 x2]; X=fft(x); Y=T*X; subplot(211); stem(k,abs(Y),'filled'); subplot(212);
stem(k,a ngle(Y),'filled'); MATLA 波形图如下: T=1,M=4, N=10 MATLA 图形如下:
10
20 30 40 60 70 80 90 100
50 。
从
-15
4
X 10
4、利用DFT分析连续时间信号x(t)=e-0.1 u(t)的频谱(幅度值)。
分析采用不同的采样间隔和截取长度进行计算的结果,并最终确定合适的参数。
程序代码:
T=i nput('T=');
M=i nput('M=');
N=i nput('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=[x1 x2];
X=fft(x);
Y=T*X; stem(k,abs(Y),'filled');
T=1 M=3, N=10 波形图如下:
T=1, M=4, T=20
波形图如下:
20
五、实验心得与体会
通过上机实验,更加深入的了解到了利用DFT分析连续时间信号的优缺点以及处理方法, 于
对于DFT和DTFT和FT的关系也有了更进一步的认识。
20
精选资料,欢迎下载
Welcome !!! 欢迎您的下载, 资料仅供参考!
精选资料,欢迎下载。