【 MATLAB 】使用 residuez 函数求 z 反变换的几个案例分析 | 您所在的位置:网站首页 › 求一个函数的反函数 › 【 MATLAB 】使用 residuez 函数求 z 反变换的几个案例分析 |
这篇博文属于我的专栏:数字信号处理的MATLAB实现里面的内容,专栏中给出了这一系列博文的集合,有兴趣的可以关注下。 上篇博文讲解了 residuez 函数的基础知识: 【 MATLAB 】residuez 函数介绍(Z变换部分分数扩展) 这篇博文就给出几个案例来练练手。 案例1:为了校核留数计算,考虑下面的有理函数: 使用residuez对其进行讨论。 题解: 先将这个有理函数重新整理为以z^-1升幂的函数: 现在利用residuez函数来求它的留数部分、极点以及直接项: clc;clear;close all; b = [0,1]; a = [3,-4,1]; [r,p,c] = residuez(b,a)得到: r = 0.5000 -0.5000 p = 1.0000 0.3333 c = [] 这说明了: 同样,我们利用residuez函数返回它的有理多项式形式: clc;clear;close all; b = [0,1]; a = [3,-4,1]; [r,p,c] = residuez(b,a); [b,a] = residuez(r,p,c)b = -0.0000 0.3333 a = 1.0000 -1.3333 0.3333 这样:
可见,和之前有理函数一致。 案例2:求: 的z反变换。 题解: 从分母多项式中可以看出分母多项式的根分别为:0.9,0.9,-0.9,因此可以使用poly函数求出分母多项式的系数,关于poly函数见博文: 【 MATLAB 】poly 函数介绍 延伸: 【 MATLAB 】roots 函数介绍(多项式根) clc;clear;close all; b = 1; a = poly([0.9, 0.9, -0.9]) [r,p,c]=residuez(b,a)a = 1.0000 -0.9000 -0.8100 0.7290 r = 0.2500 + 0.0000i 0.2500 + 0.0000i 0.5000 - 0.0000i p = -0.9000 + 0.0000i 0.9000 + 0.0000i 0.9000 - 0.0000i c = [] 这样: 由常用函数的z变换以及z变换的性质,可得z反变换: 进一步化简: MATLAB验证环节: 我们的思路是将X(z)方程有理传递函数,那么x(n)就相当于单位脉冲响应,如果系统输入一个单位脉冲信号,那么输出还是x(n). 这样,我们就可以使用filter函数进行验证x(n)是否正确了。 脚本使用到了单位样值函数: function [x,n]=impseq(n0,n1,n2); % generate x(n) = delta(n - n0); n1 |
CopyRight 2018-2019 实验室设备网 版权所有 |