医学信号处理 实验指导书(3)

2018-12-27 15:45

中的极点(以符号“×”表示)以及参考单位圆,并在多阶零点和极点的右上角标出其阶数。如果b和a为矩阵,则会以不同颜色绘出b和a各列中的零点和极点。

注意:H?z?是以Z的降幂次序排列,则系数向量一定要由多项式的最高幂次开始,一直到常数项,缺项要用0补齐。 (5)roots:求多项式的极点

p=roots(A)

其中A为待求根的多项式的系数构成的行向量,返回向量p则包含该多项式所有的根位置列向量。

(6)ztrans和iztrans:z变换及反变换

Z变换的函数:F=ztrans(f) Z反变换的函数: f=iztrans(F)

上面两式中,右端的f和F分别为时域表示式和Z域表示式的符号表示,可应用函数sym来实现,其调用格式为:S=sym(A) ,式中,A为待分析的表示式的字符串,S为符号化的数字或变量。

2.利用MATLAB绘制离散系统的零极图 例4–1: 已知某离散系统的系统函数为

H?z??z?1 543z?z?1试用MATLAB求出该系统的零极点,并画出零极点分布图,判断系统是否稳定。 解:% 绘制零极点分布图的实现程序

a=[3 -1 0 0 0 1]; b=[1 1];

zplane(b,a);xlabel('实部');ylabel('虚部');title('零极点分布图') p=roots(a) %求出极点 q=roots(b) %求出零点 程序运行如果为: p =

0.7255 + 0.4633i 0.7255 - 0.4633i -0.1861 + 0.7541i -0.1861 - 0.7541i -0.7455 q = -1

绘制的系统零极点如图4–1所示。由图可知,该系统的所有极点均位于Z平面的单位圆内,故该系统为稳定系统。

零极点分布图10.80.60.40.2虚部0-0.2-0.4-0.6-0.8-1-1-0.540实部0.51图4–1 系统零极点图

3.利用MATLAB绘制离散系统的单位冲激响应和幅频响应 例4–2: 已知某离散系统的系统函数为

H?z??z?1 543z?z?1求系统的单位脉冲响应和幅频响应,并判断系统的是否稳定。 解: % 由系统函数求解系统脉冲响应,频率响应实现程序

a=[3 -1 0 0 0 1]; b=[1 1]; h=impz(b,a); subplot 211

stem(h);xlabel('k');ylabel('h(n)');title('系统的单位脉冲响应'); [H,w]=freqz(b,a); subplot 212

plot(w/pi,abs(H));

xlabel('频率\\omega');ylabel('H(ejw)');title('系统的频率响应(幅频)')

程序运行结果如图4–2所示。由系统的单位脉冲响应可判断系统是稳定的。

系统的单位脉冲响应0.60.4h(n)0.20-0.2010204050k系统的频率响应(幅频)30607021.5H(ejw)10.5000.10.20.30.40.5频率?0.60.70.80.91

图4–2 系统的单位脉冲相应和幅频特性

4.利用MATLAB实现z域的部分分式展开式 例4–3: 利用MATLAB计算F?z??18的部分分式展开式。

18?3z?1?4z?2?z?3解:% 部分分式展开式的实现程序

num=[18];

den=[18 3 -4 -1];

[r,p,k]=residuez(num,den) 程序运行结果为: r =

0.3600 0.2400 0.4000 p =

0.5000 -0.3333 -0.3333 k = []

也就是可得F?z??0.360.240.4 ???1?1?121?0.5z1?0.333z(1?0.333z)az5.利用MATLAB实现Z变换和Z反变换

例4–4: 求(1)f?n??cos?ak?u?k?的Z变换;(2)F?z??解:(1)Z变换的MATLAB程序:

f=sym('cos(a*k)'); F=ztrans(f)

程序运行结果为: F =

(z-cos(a))*z/(z^2-2*z*cos(a)+1) (2)Z反变换的MATLAB程序 F=sym('a*z/(z-a)^2'); f=iztrans(F)

程序运行结果为: f = a^n*n

?z?a?2的Z反变换。

三、实验内容

1.已知某离散系统的系统函数为

z2?2z?1H?z??3 2z?0.5z?0.005z?0.3试用MATLAB求出该系统的零极点,并画出零极点分布图,求系统的单位冲激响应和幅频响应,并判断系统的是否稳定。

2.利用MATLAB极点H?z??3.计算X(z)?z的部分分式展开式。

2z2?3z?1|z|?0.9的Z反变换。

1,(1?0.9z?1)2(1?0.9z?1))n4.求常用信号的Z变换。(1)指数序列au?n? (2)阶跃序列u?n?

四、实验要求

1.在实验报告中写出完整的自编程序,并给出实验结果和分析。 2.在绘制图形时要求图形的完整性,每个图形都要有图标标示。

五、思考题

1.系统的零极点与系统的时域和Z域之间的对应关系? 2.系统Z域分析和复数域分析有何不同?

3.实验中实现Z变换的函数ztrans为单边Z变换,并且未给出收敛域,试编写双边Z变换函数,并给出收敛域。(可借助symsum函数)

实验5 序列的离散傅里叶变换(DFT)

一、实验目的

1.加深对离散傅里叶变换概念和性质的理解

2.掌握使用MATLAB对序列进行离散傅里叶变换 3.掌握使用MATLAB对序列的离散频谱进行分析

二、实验方法和示例

1. MATLAB信号处理工具箱提供一些函数

(1)fft和ifft:一维快速正傅里叶变换和反傅里叶变换

一维快速正傅里叶正变换:X=fft(x,N) 一维快速正傅里叶反变换:x=fft(X,N)

采用FFT算法计算序列向量x的N点DFT,缺省N时,fft函数自动按x的长度计算DFT,若N小于x长度时,自动取x前N点进行DFT运算。当N为2的整数次幂时,fft按基2算法计算,否则用混合基算法。Ifft的调用格式类似。 (2)fftshift:移动坐标轴,使频谱对称

Y=fftshift(X)

用来重新排列X=fft(x)的输出,当X为向量时,把X的左右两半进行交换,从而将零频分量移至频谱的中心;如果X为二维傅里叶变换的结果,它同时将X的左右和上下部分进行交换。

2.利用MATLAB实现的快速傅里的变换

?1?2?例5–1:已知有限长序列x?n?的长度N?4,且x?n?????1??3用IFFT求x?n?。

n?0n?1n?2n?3,用FFT求X?k?,再

解:利用快速傅里叶变换函数求解的MATLAB实现程序清单如下:

xn=[1,2,-1,3]; X=fft(xn) x=ifft(X)

程序运行结果为:

X =

5.0000 2.0000 + 1.0000i -5.0000 2.0000 - 1.0000i x =

1 2 -1 3

?n??e例5–2:已知复正弦序列x1差别,及产生原因。

解:程序清单如下:

N=16;N1=8;

n=0:N-1;k=0:N1-1;

?,余弦序列x(n)?cos(n)R(n),分别对序Rn2NN?8列求当N?16和N?8时的DFT,并绘出幅频特性曲线,并分析两种N值下DFT是否有

jn8??


医学信号处理 实验指导书(3).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:人教版六年级上册语文全册教案(带三维目标和反思)

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: