主要内容

离散时间系统模型

离散时间系统模型是数字滤波器的表征方案。MATLAB<年代up>®技术计算环境支持几个离散时间系统模型,这些模型将在以下部分中描述金宝app:

传递函数

传递函数是数字滤波器的基本Z域表示,表示为两个多项式的比率。它是该工具箱的主要离散时间模型。给出了数字滤波器差分方程Z变换的传递函数模型描述

Y z b 1 + b 2 z 1 + ... + b n + 1 z n 一个 1 + 一个 2 z 1 + ... + 一个 + 1 z X z

在这里,常量b)及一个)为滤波器系数,滤波器的阶数最大n.在MATLAB环境中,将这些系数存储在两个向量中(习惯上是行向量),一个行向量表示分子,一个行向量表示分母。看到<一个href="//www.tatmou.com/help/signal/ug/filter-implementation-and-analysis.html" class="a">过滤器和传递函数有关传递函数表的更多详细信息。

零极点增益

分解或zero-pole-gain传递函数的形式是

H z z p z k z 1 z 2 ... z n z p 1 z p 2 ... z p n

按照惯例,多项式系数存储在行向量中,多项式根存储在列向量中。因此,在零极点增益形式中,传递函数的分子和分母的零和极点位置位于列向量中。因子传递函数增益k为MATLAB标量。

的<一个href="//www.tatmou.com/help/matlab/ref/poly.html">poly和<一个href="//www.tatmou.com/help/matlab/ref/roots.html">函数在多项式和零极增益表示之间转换。例如,一个简单的IIR过滤器是

B = [2 3 4];A = [1 3 3 1];

这个滤波器的零点和极点是

Q =根(b) p =根(a)<年代p一个n年代tyle="color:#228B22">%增益因子k = b (1) / (1)

回到原来的多项式,

bb=k*poly(q)aa=poly(p)

请注意,b一个在这种情况下,表示传输功能:

H z 2 + 3. z 1 + 4 z 2 1 + 3. z 1 + 3. z 2 + z 3. z 2 z 2 + 3. z + 4 z 3. + 3. z 2 + 3. z + 1

B = [2 3 4],函数未命中z等于0。事实上,这个函数忽略了极点和零z只要输入传输函数具有比零,反之亦然时,每当输入传输函数具有更多的极点。在大多数情况下,这是可以接受的。然而,为了规避问题,只需附加零以使向量具有相同的长度在使用之前函数;例如,b=[b 0]

国家空间

通常可以将数字滤波器或差分方程组表示为一组一阶差分方程。在矩阵或状态空间形式,您可以将方程写为

x n + 1 一个 x n + B u n y n C x n + D u n

在哪里u是输入,x是状态向量,并且y是输出。对于单通道系统,一个是一个-借-矩阵是过滤器的顺序,B是一个列向量,C是行向量,并且D是一个标量。状态空间表示法特别方便,用于输入的多通道系统u和输出y成为向量,并且BCD变成矩阵。

状态空间表示很容易扩展到MATLAB环境。一个BCD是矩形阵列;MATLAB函数将它们视为单个变量。

对状态空间方程进行Z变换,并将其组合,表明状态空间和传递函数形式的等价性:

Y z H z U z 哪里 H z C z 一个 1 B + D

如果您不熟悉线性系统的状态空间表示,请不要担心。一些过滤器设计算法在内部使用状态空间形式,但不需要任何状态空间概念的知识就可以成功地使用它们。但是,如果应用程序广泛使用基于状态空间的信号处理,请参阅控制系统工具箱™ 用于状态空间工具综合库的产品。

部分分数展开(剩余形式)

每个传递函数也有相应的部分分式扩张或者<年代p一个nclass="emphasis">残留形式表示,由

b z 一个 z r 1 1 p 1 z 1 + ... + r n 1 p n z 1 + k 1 + k 2 z 1 + ... + k n + 1 z n

提供Hz)没有重复的极点。在这里n是有理传递函数的分母多项式的次数bz)/一个z).如果r是多样性的极点年代<年代ub>r,然后Hz)有以下形式的条款:

r j 1 p j z 1 + r j + 1 1 p j z 1 2 ... + r j + 年代 r 1 1 p j z 1 年代 r

信号处理工具箱™<一个href="//www.tatmou.com/help/signal/ref/residuez.html">剩余函数在转换传递函数和部分分式展开形式。“z"月底,剩余代表<年代p一个nclass="emphasis">z-域,或离散域。剩余返回列向量中的极点p,对应于列向量极点的留数r,以及原传递函数在行向量中的任意不当部分k剩余如果两极差异的幅度小于两极任何一个幅度的0.1%,则确定两极是相同的。

部分分式展开出现在信号处理中,作为一种寻找传递函数的逆z变换的方法。例如,的部分分式展开

H z 4 + 8 z 1 1 + 6 z 1 + 8 z 2

b=[-48];a=[168];[r,p,k]=剩余(b,a)

这对应于

H z 12 1 + 4 z 1 + 8 1 + 2 z 1

求z反变换Hz),求的两个加数的z逆变换的和Hz),给出因果脉冲响应:

h n 12 4 n + 8 2 n n 0 1 2 ...

要在MATLAB环境中验证这一点,输入

imp=[1 0 0];resptf=filter(b,a,imp)respres=filter(r(1),[1-p(1)],imp)+<年代p一个n年代tyle="color:#0000FF">...过滤器(r (2), (1 - p (2)), imp)

二阶部分(SOS)

任何传输功能Hz)有一个二阶截面表示

H z k 1 l H k z k 1 l b 0 k + b 1 k z 1 + b 2 k z 2 一个 0 k + 一个 1 k z 1 + 一个 2 k z 2

在哪里l是描述系统的二阶分段的个数。MATLAB环境将离散时间系统的二阶分段形式表示为l-by-6阵列求救. 每行求救包含单个二阶部分,其中行元素是描述二阶部分的三个分子和三个分母系数。

求救 b 01 b 11 b 21 一个 01 一个 11 一个 21 b 02 b 12 b 22 一个 02 一个 12 一个 22 b 0 l b 1 l b 2 l 一个 0 l 一个 1 l 一个 2 l

有许多方法可以用二阶截面形式表示过滤器。通过仔细配对极点对和零点对、级联中部分的排序以及部分的乘法缩放,可以在某些定点滤波器实现中降低量化噪声增益并避免溢出。功能zp2sosss2sos中所描述的,<一个href="//www.tatmou.com/help/signal/ug/linear-system-transformations.html" class="a">线性系统的转换,执行杆零配对,截面缩放和部分排序。

请注意

所有信号处理工具箱的二阶分段变换只适用于数字滤波器。

晶格结构

为一个离散<年代p一个nclass="emphasis">N多项式系数描述的全极或全零滤波器<年代p一个nclass="emphasis">一个(<年代p一个nclass="emphasis">n)<年代p一个nclass="emphasis">N= 1, 2, ...<年代p一个nclass="emphasis">N+ 1,<年代p一个nclass="emphasis">N对应晶格结构系数<年代p一个nclass="emphasis">k(<年代p一个nclass="emphasis">n)<年代p一个nclass="emphasis">N= 1, 2, ...<年代p一个nclass="emphasis">N.参数<年代p一个nclass="emphasis">k(<年代p一个nclass="emphasis">n)也被称为<年代p一个nclass="emphasis">反射系数的过滤器。给定这些反射系数,您可以实现如下所示的离散滤波器。

FIR和IIR晶格滤波器结构图

多项式系数描述的一般零极点IIR滤波器<年代p一个nclass="emphasis">一个和<年代p一个nclass="emphasis">b,都有晶格系数<年代p一个nclass="emphasis">k(<年代p一个nclass="emphasis">n)分母<年代p一个nclass="emphasis">一个和梯子系数<年代p一个nclass="emphasis">v(<年代p一个nclass="emphasis">n)作为分子<年代p一个nclass="emphasis">b.格/梯滤波器可以实现为

格型/梯形滤波器示意图

工具箱函数<一个href="//www.tatmou.com/help/signal/ref/tf2latc.html">tf2latc.接受多项式形式的FIR或IIR滤波器并返回相应的反射系数

B = [1.0000 0.6149 0.9899 0.0000 0.0031 -0.0082];

该过滤器的晶格(反射系数)表示为

k = tf2latc(b)

对于IIR滤波器,反射系数的大小提供了一个简单的稳定性检查。如果与多项式对应的所有反射系数的幅值小于1,则该多项式的所有根都在单位圆内。例如,考虑具有分子多项式的IIR滤波器。b从上面和分母多项式:

A = [1 1/2 /3];

过滤器的晶格表示是

[k、v] = tf2latc (b);

因为abs (k)<1所有的反射系数k,过滤器稳定。

功能<一个href="//www.tatmou.com/help/signal/ref/latc2tf.html">latc2tf根据滤波器的晶格(反射)系数计算其多项式系数。给定反射系数向量k,相应的多项式形式为

b=latc2tf(k);

晶格或晶格/阶梯系数可用于使用函数实现滤波器拉丁菲尔特

卷积矩阵

在信号处理中,两个向量或矩阵的卷积等价于用另一个输入操作数对其中一个输入操作数进行滤波。这种关系允许将数字滤波器表示为卷积矩阵

给定任意向量,工具箱函数<一个href="//www.tatmou.com/help/signal/ref/convmtx.html">康夫特克斯生成一个矩阵,它与另一个向量的内积等价于这两个向量的卷积。生成的矩阵表示一个数字滤波器,您可以将其应用于任意长度的向量;操作数的内维必须一致才能计算内积。

向量的卷积矩阵b表示数字滤波器的分子系数,为

B = [1 2 3];x = randn (3,1);C = convmtx (b ', 3);

两种等价的卷积方法b具有x具体内容如下。

y1 = c * x;y2 = conv(b,x);