信号与系统实验二实验报告

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

实验二 利用DFT 分析离散信号频谱

一、 实验目的

应用离散傅里叶变换(DFT),分析离散信号x [k ]。深刻理解利用DFT 分析离散信号频谱的原理,掌握改善分析过程中产生的误差的方法。

二、实验原理

根据信号傅里叶变换建立的时域与频域之间的对应关系,可以得到有限长序列的离散傅里叶变换(DFT)与四种确定信号傅里叶变换的之间的关系,实现由DFT 分析其频谱。

三、实验内容

1. 利用FFT 分析信号31,1,0 ),8

π3cos(][ ==k k k x 的频谱; (1) 确定DFT 计算的参数;

(2) 进行理论值与计算值比较,讨论信号频谱分析过程中误差原因及改善方法。 函数代码:N=32; k=0:N-1;

x=cos(3*pi/8.*k);

X=fft(x,N);

subplot(2,1,1);

stem(k-N/2,abs(fftshift(X)));

ylabel('Magnitude');

xlabel('Frequency (rad)');

subplot(2,1,2);

stem(k-N/2,angle(fftshift(X)));

ylabel('Phase');

xlabel('Frequency (rad)');

误差产生主要是k 值有限,通过增大k 值可以减小误差

2. 利用FFT 分析信号]

[)(][21k u k x k 的频谱; (1) 确定DFT 计算的参数;

(2) 进行理论值与计算值比较,讨论信号频谱分析过程中误差原因及改善方法。 函数代码为:k=0:30;

x=0.5.^k;

subplot(2,1,1);

stem(k,x); %画出序列的时域波形

subplot(2,1,2);

w=k-15;

plot(w, abs(fftshift(fft(x)))); %画出序列频谱的幅度谱

3. 有限长脉冲序列]5,4,3,2,1,0;5,0,1,3,3,2[][==k k x ,利用FFT 分析其频谱,并绘出其幅度谱与相位谱。

函数代码为:k=0:5;

x=[2,3,3,1,0,5];

X=fft(x);

subplot(2,1,1);

stem(k,abs(fftshift(X)));

ylabel('Magnitude');

xlabel('Frequency (rad)');

subplot(2,1,2);

stem(k,angle(fftshift(X)));

ylabel('Phase');

xlabel('Frequency (rad)');

4. 某周期序列由3个频率组成: )2

πcos()16π9cos()167πcos(][k k k k x ++=,

利用FFT 分析其频谱。如何选取FFT 的点数N ?此3个频率分别对应FFT 计算结果X [m ]中的哪些点?若选取的N 不合适,FFT 计算出的频谱X [m ]会出现什么情况?

N 取三个因子的最小公倍数为32

函数代码为:N=32; k=0:N-1;

x=cos(7*pi/16.*k)+cos(9*pi/16.*k)+cos(pi/2.*k);

X=fft(x,N);

subplot(2,1,1);

stem(k-N/2,abs(fftshift(X)));

ylabel('Magnitude');

xlabel('Frequency (rad)');

subplot(2,1,2);

stem(k-N/2,angle(fftshift(X)));

ylabel('Phase');

xlabel('Frequency (rad)');

5. 某离散序列由3个频率组成: 630),15

π3.2cos(75.0)152πcos(][≤≤+=k k k k x 利用FFT 分析其频谱。

(1) 对x [k ]做64点FFT ,绘出信号频谱,能分辨出其中的两个频率吗?

答:函数代码为N=64; k=0:N-1;

x=cos(2*pi/15.*k)+0.75*cos(2.3*pi/15.*k);

X=fft(x,N);

subplot(2,1,1);

stem(k-N/2,abs(fftshift(X)));

ylabel('Magnitude');

xlabel('Frequency (rad)');

subplot(2,1,2);

stem(k-N/2,angle(fftshift(X)));

ylabel('Phase');

xlabel('Frequency (rad)');

(2)对x[k]补零到256点后计算FFT,能分辨出其中的两个频率吗?

答:函数代码为:N=256; k=0:N-1;

x=cos(2*pi/15.*k)+0.75*cos(2.3*pi/15.*k);

X=fft(x,N);

subplot(2,1,1);

stem(k-N/2,abs(fftshift(X)));

ylabel('Magnitude');

xlabel('Frequency (rad)');

subplot(2,1,2);

stem(k-N/2,angle(fftshift(X)));

ylabel('Phase');

xlabel('Frequency (rad)');

相关文档
最新文档