实验三 离散傅里叶变换及性质

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

实验3 离散傅里叶变换及性质

1、实验目的

(1)通过本实验的练习,了解离散时间信号时域运算的基本

实现方法。

(2)了解相关函数的调用格式及作用。

(3)通过本实验,掌握离散傅里叶变换的原理及编程思想。

2、实验原理

对于离散序列,存在着两种傅里叶变换——离散时间傅里叶变换(DTFT)和离散傅里叶变换(DFT)。DTFT用以求出离散信号的连续频谱,它仅在时域上离散而在频域上是连续的;DFT用以求出连续频谱上的离散样本点,所以其在时域和频域上都是离散的。对于一个离散序列x(n),它的离散时间傅里叶变换(DTFT)的定义为:

离散时间傅里叶变换收敛的充分条件是x(n)绝对可加,即利用离散快速傅里叶变换函数计算傅里叶变换。MATLAB提供了内部函数来快速地进行离散傅里叶变换(DFT)和逆变换(IDFT)的计算,如下所列。

fft(x), fft(x,N), ifft(x), ifft(x,N)

(1) fft(x):计算L点的DFT,L为序列x的长度,

即L=length(x)。

(2) fft(x,N):计算N点的DFT。N为指定采用的点数,

当N>L,则程序会自动给x后面补N-L个零点;如果

N

(3) ifft(x):计算L点的IDFT,L为序列x的长度,

即L=length(x)。

(4) ifft(x,N):计算N点的IDFT。N为指定采用的点数,

当N>L,则程序会自动给x后面补N-L个零点;如果

N

3、实验内容和方法

1. 离散时间傅里叶变换DTFT

【例3-1】求有限长序列x(n)=[1,2,3,4,5]的DTFT,画出它的幅值谱、相位谱、实部和虚部。

MATLAB程序如下:

clf;

x=[1,2,3,4,5];nx=[-1:3];

w=linspace(0,2*pi,512);

H=x*exp(-j*nx'*w);

subplot(2,2,1); plot(w,abs(H)); ylabel('幅度'); grid on;%画幅度特性曲线

subplot(2,2,2); plot(w,angle(H)); ylabel('相角'); grid on;%画相位特性曲线

subplot(2,2,3); plot(w,real(H)); ylabel('实部'); grid on;%画幅度实

部特性曲线

subplot(2,2,4); plot(w,imag(H)); ylabel('虚部'); grid on;%画幅度虚

部特性曲线

set(gcf,'color','w');

程序运行的结果如图3.1所示。

Image

图3.1 DTFT的计算

2. 离散傅里叶变换DFT

【例3-2】对于离散序列x(n)=cos(2πn/5),求出它的20点和23点的离散傅里叶变换的幅值谱。

MATLAB程序如下:

n1=[0:1:19];x1=cos(2*pi*n1/5);xk1=abs(fft(x1));

n2=[0:1:22];x2=cos(2*pi*n2/5);xk2=abs(fft(x2));

subplot(2,2,1);plot(n1,x1);

xlabel('n');ylabel('x1(n)');grid on;

subplot(2,2,2);stem(n1,xk1);

xlabel('k');ylabel('X1(k)');grid on;

subplot(2,2,3);plot(n2,x2);

axis([0,22,-1,1]);xlabel('n');ylabel('x2(n)');grid on;

subplot(2,2,4);stem(n2,xk2);

axis([0,22,0,10]);xlabel('k');ylabel('X2(k)');grid on;

set(gca,'XTickMode','manual','XTick',[0,5,10,15,22])

set(gcf,'color','w');

离散傅里叶变换及其快速计算结果如图3.2所示。

Image

图3.2 离散傅里叶变换及其快速计算

从图3. 2中可以看出,只有序列的20点的傅里叶变换得到的频谱图是单一谱线。这是由于序列的周期是5,而20是5的整数倍,所以得到了单一谱线的频谱图,而23则选取了4个半周期,即出现了频谱的泄漏,所以得不到单一谱线的频谱图。

3. 离散傅里叶变换DFT的性质

1) 时移性质

【例3-3】将序列x(n)=[2,1,-1,8,6,-2,-4,9,-3]右移10位,观察它的幅值谱和相位谱的变化。

MATLAB程序如下:

clf;

w=-pi:2*pi/511:pi;

d=10;

x1=[2,1,-1,8,6,-2,-4,9,-3];

xk1=abs(freqz(x1,1,w));

omega1=angle(freqz(x1,1,w));

x2=[zeros(1,d),x1];

xk2=abs(freqz(x2,1,w));

omega2=angle(freqz(x2,1,w));

subplot(2,2,1);plot(w/pi,xk1);

grid on;title('原始序列的幅值谱');

subplot(2,2,2);plot(w/pi,xk2);

grid on;title('时移序列的幅值谱');

subplot(2,2,3);plot(w/pi,omega1);

grid on;title('原始序列的相位谱');

subplot(2,2,4);plot(w/pi,omega2);

grid on;title('时移序列的相位谱');

set(gcf,'color','w');

离散傅里叶变换的时移性质如图3.3所示。

相关文档
最新文档