matlab⽤DFT画信号频谱,利⽤DFT分析信号频谱matlab
利⽤DFT分析信号频谱matlab
实验 2-1 利⽤ DFT分析信号频谱 ⼀、 实验⽬的 1. 加深对 DFT 原理的理解。 2. 应⽤ DFT 分析信号频谱。 3. 深刻理解利⽤ DFT 分析信号频谱的原理,分析实现过程中出现的现象及解决⽅法 ⼆、 实验内容 1. x(n)= {2 ,−1 ,1 ,1},完成如下要求: 1) 计算其 DTFT,并画出[−π ,π ]区间的波形 2) 计算 4 点 DFT,并把结果显⽰在(1)所画的图形中 3) 对 x (n)补零,计算 64 点 DFT,并显⽰结果 4) 是否可以由 DFT 计算 DTFT,如果可以,请编程实现 程序代码 xn=[2,-1,1,1]; n=0:3; w=-pi:0.01:pi; X=xn*exp(-1i*n *w); %计算 DTFT
yy=abs(X); subplot(211); plot(w,yy);%绘出DTFT后的波形 Y=fft(xn); %利⽤FFT计算 4点DFT yy=abs(Y); hold on; stem((0:3),yy); %绘出DFT后的波形,并同绘在⼀个图中 N=64; m=6; xn=[2,-1,1,1]; xn=[xn,zeros(1,60)]; %对 xn补零 y=fft(xn); yy=abs(y); f=0:N-1; subplot(212); stem(f,yy); %绘出 64点 DFT图 hold on; plot(f,yy); %由 DFT通过绘制包络近似得到 DTFT 进⾏试验 输出图像: 由图可推得DFT所取的点数越多,DFT越逼近DTFT 故增加补零项,取1024个点程序如下: x1=[2 -1 1 1]; N=1024;
x2=linspace(0,0,N-4); x=[x1,x2]; n=0:(N-1); w=0:0.01:2*pi/N*(N-1);%计算序列DTFT X=x*exp(-j*n *w); subplot(211);%绘制DTFT图像 plot(w*N/(2*pi),abs(X), k ); xlabel( Nw/2\pi ); title( DTFT[x(n)] ); xn=[2,-1,
matlab求傅里叶变换1,1]; xn=[xn,zeros(1,1020)]; %对 xn补零
y=fft(xn); f=0:N-1; subplot(212); plot(f,abs(y), k );%绘制DFT图像 xlabel( k ); title( DFT[x(n)] ); 输出图像: 由图可知,当N取
1024点时,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 )的频谱,并画出波形 程序代码 n=[0:10]; x=cos(0.48*pi*n)+cos(0.52*pi*n); %x(n)频谱 n在 0到 10 y=fft(x); subplot(3,1,1); stem(n,y, filled ); xn=[x,zeros(1,90)]; %对 xn补零 yn=fft(xn); hold on; nn=[0:100]; subplot(3,1,2); stem(nn,yn, filled ); n1= [0:100]; x1=cos(0.48*pi*n1)+cos(0.52*pi*n1); %x(n)频谱 n在 0到 100 y1=fft(x1); subplot(3,1,3); stem(n1,y1, filled ); 进⾏试验 输出图像: 3. 已知信号 x(t ) =0 .15 sin(2π f1t)+sin(2π f2t)- 0.1sin (2π f3t),其中 f1=1Hz,f2=2Hz,f3=3Hz。从x (t)的表达式可以看出,它包含三个频率的正弦波,但是,从其时域波形来看,似乎是⼀个正弦信号,利⽤ DFT 做频谱分析,确定适合的参数,使得到的频谱的频率分辨率符合需要 程序代码 f1=1; f2=2; f3=3; t=0:0.01:2; x=0.15*sin(2*pi*f1*t)+sin(2*pi*f2*t)-0.1*sin(2*pi*f3*t); y=fft(x); subplot(211); plot(t,x); subplot(212); plot(t,abs(y)) 进⾏试验 实验中,通过改变t的取值间隔与点数,逐渐形成满意频谱看到三个频率点如下图。 输出图像: 三、 实验分析 1. 分析第 1题的实验结果,说明 DFT 和 DTFT 的关系;分析序列补零
加长后,对 DFT 结果的影响;分析是否可以利⽤ DFT 计算 DTFT,如果可以,怎么实现。 答:⼀个N点离散时间序列的傅⾥叶变换(DTFT)所得的频谱是以
2π为周期延拓的连续函数。由采样定理,时域进⾏采样,则频域周期延拓,同样在频域进⾏采样,则时域也会周期延拓。DFT就基于这个理论,在频域进⾏采样,从⽽将信号的频谱离散化。所以,⼀个N点离散时间信号可以⽤⼀个频域内⼀个N点序列来唯⼀确定,这就是DFT 表达式所揭⽰的内容。序列补零加长后,相当于频域的抽样点增多,反映在图形上即加零越多,频域抽样点越多,DFT越逼近DTFT。如果只是要在图形上显⽰DTFT,可以通过取⾜够多的点DFT来实现。 2. 分析第 2题实验结果,思考利⽤ DFT 计算频谱时如何提⾼频谱的分辨率;对序列补零加长是否能提⾼频谱的分辨率。 答:更长的时域信号能够提供更⾼的频域分辨率,因为⼀个N点的时域信号能被分解为
N/2+1个余弦信号和N/2+1个正弦信号,N增⼤则(N/2+1)也增⼤,频域间隔(1/2的时域采样频率)/(N/2+1)减⼩,所以频域分辨率提⾼了。所以利⽤DFT计算频谱时增加取样点的长度范围可以提⾼分辨率。补零加长并不会改变频域的间隔,所以不能提⾼分辨率。 3. 分析第3题实验结果,总结利⽤ DFT 计算连续时间信号频谱的⽅法,实现过程中需要注意的问题 答:利⽤DFT计算连续时间信号频谱,⾸先进⾏时域抽样,所得的抽样数据进⾏DFT计算,然后再将离散数据连续化,得到连续时间信号的频谱。实现过程中应该注意时域抽样的间隔与长度,抽样不当将会丢失频率点,使计算出现错误。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。