数字信号处理实验:离散时间信号频域分析报告 下载本文

title('64点DFT[x(n)]'); xlabel('k'); ylabel('X(k)'); subplot(3,2,4) k1=0:N/2-1; stem(k1,abs(X1k),'.'); title('64点DFT[x(n)]'); xlabel('k'); ylabel('X1(k)'); subplot(3,2,5); stem(nc,xc,'.');

title('x1(n)的周期延拓序列'); xlabel('n');

ylabel('x(mod(n.32))');

由于频域在 [0,2?]上的采样点数N小于x(n)的长度M,所以产生时域混叠现象,不能由X1(k)恢复序列x(n)。只有满足N大于等于M时,可优频域采样X1(k)得到原序列x(n)。这就是频域采样鼎立,请同学们自己编程验证

N?M.

3. 线性调频Z变换

离散傅立叶变换(DFT)可以看作信号在Z域上沿单位圆的均匀采样。但在实际应用中,并非整个单位圆上的频谱都有意义。一些情况下,如对于窄带信号,只希望分析信号所在的一段频带等,采样点的轨迹是一条弧线或圆周。这种需求,就导致了线性调频Z变换(Chirp z变换)的出现。

Chirp z变换与DFT计算整个频谱的算法不同,它是一种更为灵活的计算频谱的算法,可以用来计算单位圆上任一段曲线的Z变换,作频谱分析时输入的点数和输出的点数可以不相等,从而达到频域“细化”的目的。 y=czt(x,m,w,a) y=czt(x)

例3-4:利用Chirp z变换计算滤波器h(且h=fir1(30,125/500,boxcar(31)))在100Hz~200Hz的频率特性,并用图形文件比较CZT函数和FFT函数。 h=fir1(30,125/500,boxcar(31)); fs=1000;

5 / 14

f1=100;f2=200; m=1024; y=fft(h,1024); fy=fs*(0:1023)/1024; subplot(2,1,1); plot(fy,abs(y)); axis([0,500,0,1.5]);

w=exp(-j*2*pi*(f2-f1)/(m*fs)); a=exp(j*2*pi*f1/fs);

z=czt(h,m,w,a);%产生1024个z值 fz=(f2-f1)*(0:1023)/1024+f1;subplot(2,1,2); plot(fz,abs(z))

4. 实验问题回答

(1)完成例3-1的程序并观察信号序列x(t)在时域和频域上分析的特点。 (2)在实验内容3-2和3-3中按要求完成程序,并回答3-2和3-3中提出的问题。

(2) 完成例3-4的程序并观察Chirp z变换与fft变换的特点。

四.实验报告要求

1.按照实验内容要求完成相关实验程序,并得出相关的实验结果(包括图形结果)。

2.回答实验中提出的问题。

3.总结本次实验结果,按照实验报告格式要求,书写实验报告。

五.实验设备

PC机,MATLAB软件

6 / 14

附录A MATLAB系统的常用概念

1、命令窗口

在Windows 2000下启动MATLAB系统后,Windows 2000的工作平台上会弹出一个窗口,如下图所示,这个窗口称为MATLAB的命令窗口。MATLAB的命令窗口是用户与MATLAB解释器进行通信的工作环境,提示符‘>>’表示MATLAB解释器正等待用户输入命令。所有的MATLAB命令、MATLAB函数,以及MATLAB程序都要在这个窗口下运行。

在命令窗口,用户可以发出MATLAB命令。例如,为了生成一个3*3的矩阵,可以在提示符下,键入如下的命令:

A=[1 2 3;4 5 6; 7 8 9]

方括号命令表示矩阵,空格或逗号将每行的元素分开,而分号将矩阵的各行数值分开。再键入Enter后,MATLAB将回显如下的矩阵:

A=

1 2 3 4 5 6 7 8 9

为了求该矩阵的逆矩阵,则只要键入命令 ?B=inv(A);

7 / 14

MATLAB就将计算出相应的结果。如果不想在命令窗口中显示计算结果,只要如上所示,在该命令后多键入一个分号即可。此时,MATLAB系统只完成该命令所要求的计算任务,其计算结果不回显。这项功能在程序设计中是非常必要的。

MATLAB系统也可以说是一种新的语言,该语言十分容易掌握,其结构非常类似于数学式子的书写格式,用户花上很少的时间即可掌握MATLAB的大部分命令。

2、 图形窗口

MATLAB系统的强大功能之一是其优秀的图形功能。对于任何作图命令,MATLAB将打开另一个窗口来绘制输出图形,这样的窗口在MATLAB系统中被成为图形窗口。

在同一个图形窗口中,可以绘制多个图形,也可以生成多个图形窗口,并选择其中的一个图形窗口,在其中绘制图形。生成图形窗口的方法比较多,在没有图形窗口存在时,每个绘图函数都能自动生成一个图形窗口;也可以用figure 命令生成一个新的图形窗口;还可以用命令窗口的File菜单的New子菜单的Figure项来打开一个新的图形窗口。

3、搜索路径

MATLAB管理着一条搜索路径,它在搜索路径下寻找与命令相关的函数文件。例如,如果在MATLAB提示符下输入example, MATLAB解释器将按照下面的步骤来处理这条字符串:

(1)检查example是不是一个变量;

(2)如果不是,检查example是不是一个内部函数;

(3)如果不是,检查在当前文件夹下是否存在名为example.mex,example.dll或

example.m的文件。MEX文件是MATLAB 的执行文件,将优先执行;

(4)如果不存在,检查在MATLAB 的搜索路径的目录下是否存在名为

MEX,example.mex,example.dll,或example.m的文件。MEX文件优先执行。

用户可以打开路径浏览器(Path Browse)查看MATLAB系统的当前搜索路径,也可以在其中加入自己的路径。

4、 文件类型

在MATLAB系统中,根据功能可将MATLAB系统所使用的外部文件分为几类,并用不同的扩展名作为其标识,我们用的主要是M文件。M文件以字母m为其扩展名,例如startup.m。一般说来,M文件是以ASCII码文本文件,可以用任何文本编辑器进行编辑。在MATLAB系统中,有两类M文件。一类称为程序M文件,简称M文件;另一类称为函数M文件,或简称为函数,统称为 M文件。M文件的内容是由符合MATLAB语法的语句构成的,函数M文件的第一行必须是以关键字function开始的函数说明语句。两类M文件的共同特征是:在MATLAB命令窗口中的命令提示符下键入文件名,来执行M文件中的所有语句规定的计算任务或完成一定的功能。它们的区别在于以下两方面:第一,程序M文件中创建的变量都是MATLAB工作空间中的变量,工作空间中的其他程序或函数可以共享,而函数M文件中创建的所有变量除了全程变量外,均局限于函数运行空间内的局部变量;第二,函数M文件的调用式中可以有输入参数和输出参数,而程序M文件则没有这种功能。

5、语言语法要素

MATLAB只管理一种对象——矩阵。可以使用下列的任何一种方法在MATLAB环境下创建或输入一个矩阵:

1) 显示的输入一个元素序列;

8 / 14