直播網(wǎng)站源碼免費(fèi)網(wǎng)站建設(shè)技術(shù)托管
離散時(shí)間系統(tǒng)模型
? ? ? ? 離散時(shí)間系統(tǒng)模型是表示數(shù)字濾波器的方案。MATLAB??科學(xué)計(jì)算環(huán)境支持若干種離散時(shí)間系統(tǒng)模型,這些模型將在以下章節(jié)中介紹:
- ?傳遞函數(shù)
- 零極點(diǎn)增益
- 狀態(tài)空間
- 部分分式展開式(殘差形式)
- 二階節(jié) (SOS)
- 格型結(jié)構(gòu)體
- 卷積矩陣
傳遞函數(shù)
? ? ? 傳遞函數(shù)是數(shù)字濾波器的一種基本 Z 域表示,它將濾波器表示為兩個(gè)多項(xiàng)式的比值。它是此工具箱的主要離散時(shí)間模型。數(shù)字濾波器的差分方程的 Z 變換的傳遞函數(shù)模型說明如下
? ? ? ?此處,常量 b(i) 和 a(i) 是濾波器系數(shù),濾波器的階數(shù)是 n 和 m 的最大值。在 MATLAB 環(huán)境中,您將這些系數(shù)存儲(chǔ)在兩個(gè)向量中(按照慣例是行向量),一個(gè)行向量用于分子,一個(gè)行向量用于分母。有關(guān)傳遞函數(shù)形式的詳細(xì)信息,請參閱濾波器和傳遞函數(shù)。
零極點(diǎn)增益
傳遞函數(shù)的分解形式(又稱為零極點(diǎn)增益形式)為
? ? ? ?按照慣例,多項(xiàng)式系數(shù)存儲(chǔ)在行向量中,多項(xiàng)式根存儲(chǔ)在列向量中。因此,在零極點(diǎn)增益形式中,傳遞函數(shù)的分子和分母的零點(diǎn)和極點(diǎn)位置位于列向量中。分解傳遞函數(shù)增益 k 是 MATLAB 標(biāo)量。
poly?和?roots?函數(shù)在多項(xiàng)式表示和零極點(diǎn)增益表示之間轉(zhuǎn)換。例如,一個(gè)簡單 IIR 濾波器如下
b = [2 3 4];
a = [1 3 3 1];
此濾波器的零點(diǎn)和極點(diǎn)是
q = roots(b)
p = roots(a)
% Gain factor
k = b(1)/a(1)
回到最初的多項(xiàng)式,
bb = k*poly(q)
aa = poly(p)
請注意,本例中的?b
?和?a
?表示傳遞函數(shù):
? ? ? ?對于?b = [2 3 4]
,roots
?函數(shù)會(huì)缺失 z 等于 0 時(shí)的零點(diǎn)。事實(shí)上,只要輸入傳遞函數(shù)的極點(diǎn)數(shù)多于零點(diǎn)數(shù)(或相反),該函數(shù)都會(huì)缺失 z 等于 0 時(shí)的極點(diǎn)和零點(diǎn)。這在大多數(shù)情況下是可以接受的。然而,為了避免此問題,請?jiān)谑褂?roots
?函數(shù)之前,直接追加零以使向量長度相同;
?例如,b = [b 0]
。
狀態(tài)空間
? ? ? 將數(shù)字濾波器或差分方程組表示為一組一階差分方程組始終是可能的。在矩陣或狀態(tài)空間形式中,您可以將公式寫為
,
其中?u
?是輸入,x
?是狀態(tài)向量,而?y
?是輸出。對于單通道系統(tǒng),A
?是?m
×m
?矩陣,其中?m
?是濾波器的階數(shù),B
?是列向量,C
?是行向量,D
?是標(biāo)量。對于輸入?u
?和輸出?y
?成為向量、B
、C
?和?D
?成為矩陣的多通道系統(tǒng),狀態(tài)空間表示法尤其方便。
? ? ? ?狀態(tài)空間表示很容易擴(kuò)展到 MATLAB 環(huán)境。A
、B
、C
?和?D
?是矩形數(shù)組;MATLAB 函數(shù)將它們分別視為單個(gè)變量。
對狀態(tài)空間方程進(jìn)行 Z 變換并將其組合,表明狀態(tài)空間形式和傳遞函數(shù)形式的等效性:
? ? ? ?如果您不熟悉線性系統(tǒng)的狀態(tài)空間表示,不要擔(dān)心。一些濾波器設(shè)計(jì)算法在內(nèi)部使用狀態(tài)空間形式,但無需了解任何狀態(tài)空間概念即可成功使用它們。不過,如果您的應(yīng)用大量使用基于狀態(tài)空間的信號(hào)處理,請了解 Control System Toolbox? 產(chǎn)品,以獲得全面的狀態(tài)空間工具庫。
部分分式展開式(殘差形式)
每個(gè)傳遞函數(shù)還具有對應(yīng)的部分分式展開(又稱為殘差形式),如下式所示
前提是 H(z) 沒有重復(fù)的極點(diǎn)。此處,n 是有理傳遞函數(shù) b(z)/a(z) 的分母多項(xiàng)式的次數(shù)。如果 r 是重極點(diǎn) sr,則 H (z) 具有以下形式的項(xiàng):
? ? ? ?Signal Processing Toolbox? 中的?residuez?函數(shù)用于將傳遞函數(shù)轉(zhuǎn)換為部分分式展開式形式,或者反之。residuez
?末尾的“z
”表示?z?域或離散域。residuez
?以列向量?p
?形式返回極點(diǎn),以列向量?r
?形式返回極點(diǎn)對應(yīng)的殘差,以行向量?k
?形式返回原始傳遞函數(shù)的任何不恰當(dāng)部分。如果兩個(gè)極點(diǎn)的差值的模小于任一極點(diǎn)的模的 0.1%,則?residuez
?確定這兩個(gè)極點(diǎn)相同。
部分分式展開式在信號(hào)處理中以一種求傳遞函數(shù)的逆 Z 變換的方法出現(xiàn)。例如,下式
的部分分式展開式是
b = [-4 8];
a = [1 6 8];
[r,p,k] = residuez(b,a)
它對應(yīng)于
要想求出 H(z) 的逆 Z 變換,可以求 H(z) 的兩個(gè)加數(shù)的逆 Z 變換之和,這可給出因果沖激響應(yīng):
要在 MATLAB 環(huán)境中驗(yàn)證這一點(diǎn),請鍵入
imp = [1 0 0 0 0];
resptf = filter(b,a,imp)
respres = filter(r(1),[1 -p(1)],imp)+...filter(r(2),[1 -p(2)],imp)
二階節(jié) (SOS)
任何傳遞函數(shù) H(z) 都有二階節(jié)表示
其中 L 是描述系統(tǒng)的二階節(jié)的數(shù)量。MATLAB 環(huán)境將離散時(shí)間系統(tǒng)的二階節(jié)形式表示為 L×6 數(shù)組?sos
。sos
?的每行包含一個(gè)二階節(jié),其中行元素是描述該二階節(jié)的三個(gè)分子和三個(gè)分母系數(shù)。
? ? ? ?有許多方法以二階節(jié)形式表示濾波器。通過仔細(xì)對極點(diǎn)和零點(diǎn)對組進(jìn)行配對、對級聯(lián)中的各節(jié)進(jìn)行排序以及對各節(jié)進(jìn)行乘性定標(biāo),可以在某些定點(diǎn)濾波器實(shí)現(xiàn)中降低量化噪聲增益并避免溢出。Linear System Transformations?中所述的函數(shù)?zp2sos
?和?ss2sos
?用于執(zhí)行零極點(diǎn)配對、節(jié)縮放和節(jié)排序。
注意
所有 Signal Processing Toolbox 二階節(jié)變換僅適用于數(shù)字濾波器。
格型結(jié)構(gòu)體
對于由多項(xiàng)式系數(shù)?a(n)?說明的離散的?N?階全極點(diǎn)或全零濾波器,n?= 1,2...,N+1,有?N?個(gè)對應(yīng)的格型結(jié)構(gòu)體系數(shù)?k?(n),n?= 1,2...,N。參數(shù)?k?(n) 也稱為濾波器的反射系數(shù)。給定這些反射系數(shù),您可以實(shí)現(xiàn)如下所示的離散濾波器。
FIR 和 IIR 格型濾波器結(jié)構(gòu)圖
對于由多項(xiàng)式系數(shù)?a?和?b?說明的一般零極點(diǎn) IIR 濾波器,分母?a?有格型系數(shù)?k?(n),分子?b?有階梯系數(shù)?v?(n)。格型/梯形濾波器可以實(shí)現(xiàn)為
格型/梯形濾波器示意圖
工具箱函數(shù)?tf2latc?接受多項(xiàng)式形式的 FIR 或 IIR 濾波器,并返回對應(yīng)的反射系數(shù)。多項(xiàng)式形式的 FIR 濾波器的一個(gè)示例是
b = [1.0000 0.6149 0.9899 0.0000 0.0031 -0.0082];
此濾波器的格型(反射系數(shù))表示為
k = tf2latc(b)
對于 IIR 濾波器,反射系數(shù)的幅值提供簡單的穩(wěn)定性檢查。如果對應(yīng)于一個(gè)多項(xiàng)式的所有反射系數(shù)的量級都小于 1,則該多項(xiàng)式的所有根都在單位圓內(nèi)。例如,假設(shè)某 IIR 濾波器具有上述分子多項(xiàng)式?b
?和如下的分母多項(xiàng)式:
a = [1 1/2 1/3];
則該濾波器的格型表示為
[k,v] = tf2latc(b,a);
對于?k
?中的所有反射系數(shù),abs(k)
?<?1
,因此該濾波器是穩(wěn)定的。
函數(shù)?latc2tf?根據(jù)濾波器的格型(反射)系數(shù)計(jì)算濾波器的多項(xiàng)式系數(shù)。給定反射系數(shù)向量?k
,對應(yīng)的多項(xiàng)式形式為
b = latc2tf(k);
格型或格型/梯形系數(shù)可用于使用函數(shù)?latcfilt
?實(shí)現(xiàn)濾波器。
卷積矩陣
在信號(hào)處理中,對兩個(gè)向量或矩陣求卷積等效于用一個(gè)輸入操作數(shù)對另一個(gè)輸入操作數(shù)進(jìn)行濾波。這種關(guān)系支持將數(shù)字濾波器表示為卷積矩陣。
給定任意向量,工具箱函數(shù)?convmtx?生成一個(gè)矩陣,該矩陣與另一個(gè)向量的內(nèi)積等于這兩個(gè)向量的卷積。生成的矩陣表示一個(gè)數(shù)字濾波器,您可以將其應(yīng)用于適當(dāng)長度的任何向量;操作數(shù)的內(nèi)部維度必須一致才能計(jì)算內(nèi)積。
表示數(shù)字濾波器分子系數(shù)的向量?b
?的卷積矩陣為
b = [1 2 3];
x = randn(3,1);
C = convmtx(b',3);
求?b
?與?x
?的卷積的兩種等效方法如下。
y1 = C*x;
y2 = conv(b,x);