最小相位系统
1、传递函数
一个线性系统的响应。
比如一个RC低通滤波器:
交流分量在电容的充放电中被滤除掉,通过设置电容器的电容值,以及电阻值,能够控制这种滤除能力,这个参数为RC。
电容的电抗为
1
/
j
w
C
1/jwC
1/jwC,因此容易的写出其频率响应,其中
V
i
n
=
∑
k
=
1
L
A
k
ℜ
{
exp
(
j
ϕ
k
)
exp
(
j
w
t
)
}
V_{in} = \sum_{k=1}^{L}A_k\Re\{\exp(j\phi_k)\exp(jwt)\}
Vin=∑k=1LAkℜ{exp(jϕk)exp(jwt)}:
V
o
u
t
=
1
/
j
w
C
R
+
1
/
j
w
C
V
i
n
=
1
1
+
j
w
R
C
V
i
n
V_{out} = \frac{1/jwC}{R+1/jwC} V_{in} = \frac{1}{1+jwRC} V_{in}
Vout=R+1/jwC1/jwCVin=1+jwRC1Vin
将这个系数提出来:
H
(
w
)
=
1
1
+
j
w
R
C
H(w) = \frac{1}{1+jwRC}
H(w)=1+jwRC1
这是一个变量为角频率的复变函数。为了便于在二维空间展示,对其取模、取相角,分别得到幅频响应和相频响应。求逆傅立叶变换得到
h
(
t
)
h(t)
h(t),冲激函数响应。
此时的 H ( w ) H(w) H(w)是一种传递函数(transfer function)。
以上是简单情况,仅当输入信号存在傅立叶变换的时候才成立,傅立叶变换要求输入信号绝对可积。对于更一般的情况,对频率进行推广。傅立叶变换的核函数是 e j w t e^{jwt} ejwt,将纯虚数推广到复数,就能够对幅度进行调控,即 e s t = e ( a + j b ) t = e a t e j b t e^{st}=e^{(a+jb)t}=e^{at}e^{jbt} est=e(a+jb)t=eatejbt。至于衰减还是增加,取决于 a a a的正负。
得到:
H
(
s
)
=
1
1
+
s
R
C
H(s) = \frac{1}{1+sRC}
H(s)=1+sRC1
当s取纯虚数的时候,等于频率响应。
为了便于分析,将 H ( s ) H(s) H(s)画在一个复平面上,横轴为实轴,纵轴为虚轴。
这个系统是一个因果系统,没有输入的时候不会有输出。因此其时域响应是一个右边信号,因此其收敛域为 R O C = { s ∣ ∣ s ∣ > − R C } ROC = \{s\mid |s|> -RC\} ROC={s∣∣s∣>−RC}。
包含虚轴,那么该系统稳定。有理+极点在左半平面,因此系统因果。
2、最小相位
比较相位大小,首先要保证幅频响应相同,或者说幅度增益相同,否则没有意义。
结论:系统首先要求因果+稳定
- 拉普拉斯变换:零极点都在左半复平面
- z变换:零极点都在单位圆内
则是最小相位系统
首先系统要求稳定,即有界输入对应有界输出,其充要条件是ROC包含虚轴。
其次系统要求因果,即 h ( t ) = 0 , ∀ t < 0 h(t)=0,\forall t<0 h(t)=0,∀t<0,暂时没有好的充要条件,但又一些有意义的结论:
- 必要条件:ROC是某个右半复平面。( h ( t ) h(t) h(t)至少要求是右边信号,起点还不确定,所以仅仅是个必要条件)
- 充分条件:传递函数是有理的,并且ROC为最右侧极点的右半复平面。
那么,下面的讨论中,假设传递函数可以用有理函数表示。(这意味着其时域响应可以用复指数函数表示)
H
(
s
)
=
N
(
s
)
D
(
s
)
(2-1)
H(s) = \frac{N(s)}{D(s)} \tag{2-1}
H(s)=D(s)N(s)(2-1)
接下来再说什么情况下两个系统的幅度增益是相同的。
∣
H
1
(
s
)
∣
=
∣
N
1
(
s
)
∣
∣
D
1
(
s
)
∣
=
∣
N
2
(
s
)
∣
∣
D
2
(
s
)
∣
=
∣
H
2
(
s
)
∣
(2-2)
|H_1(s)| = \frac{|N_1(s)|}{|D_1(s)|} =\frac{|N_2(s)|}{|D_2(s)|} =|H_2(s)| \tag{2-2}
∣H1(s)∣=∣D1(s)∣∣N1(s)∣=∣D2(s)∣∣N2(s)∣=∣H2(s)∣(2-2)
从上面公式(2-2)可以看出,幅度相同,意味着分子分母的幅度都相同。
根据有理传递函数的假设,其分子分母都可以用多项式表示,再由代数基本定理,该多项式可以写成连乘的形式。
先讨论分母,其中A是一个常数,
a
i
,
i
=
1
,
2
,
.
.
.
,
N
a_i,i=1,2,...,N
ai,i=1,2,...,N:
D
(
s
)
=
A
Π
i
=
1
N
(
1
−
a
i
s
−
1
)
=
A
(
1
−
a
1
s
−
1
)
(
1
−
a
2
s
−
1
)
⋯
(
1
−
a
N
s
−
1
)
(2-3)
D(s) = A\Pi_{i=1}^N(1-a_is^{-1}) = A(1-a_1s^{-1})(1-a_2s^{-1})\cdots(1-a_Ns^{-1}) \tag{2-3}
D(s)=AΠi=1N(1−ais−1)=A(1−a1s−1)(1−a2s−1)⋯(1−aNs−1)(2-3)
如果要求系统因果稳定,那么
ℜ
{
a
i
}
<
0
\Re\{a_i\}<0
ℜ{ai}<0,且ROC为右半平面。
因此必有 D 1 ( s ) = D 2 ( s ) D_1(s)=D_2(s) D1(s)=D2(s),否则必有一个不满足因果稳定的条件。
再讨论分子,其中B是一个常数,
b
i
,
i
=
1
,
2
,
.
.
.
,
M
b_i,i=1,2,...,M
bi,i=1,2,...,M:
N
(
s
)
=
B
Π
i
=
1
M
(
1
−
b
i
s
−
i
)
=
B
(
1
−
b
1
s
−
1
)
(
1
−
b
2
s
−
1
)
⋯
(
1
−
b
M
s
−
1
)
(2-4)
N(s) = B\Pi_{i=1}^M(1-b_is^{-i}) = B(1-b_1s^{-1})(1-b_2s^{-1})\cdots(1-b_Ms^{-1}) \tag{2-4}
N(s)=BΠi=1M(1−bis−i)=B(1−b1s−1)(1−b2s−1)⋯(1−bMs−1)(2-4)
系统因果稳定跟分子没有关系,因此
b
i
∈
C
b_i\in C
bi∈C,为任意复数。
因此,两个因果稳定的系统,幅度增益相同,相位响应不同,只能从分子入手,分母不能动。
对任意一项
(
1
−
b
i
s
−
1
)
(1-b_is^{-1})
(1−bis−1),其中
s
=
σ
+
j
w
,
b
i
=
x
+
j
y
s=\sigma+jw,b_i = x+jy
s=σ+jw,bi=x+jy。取相角:
ϕ
=
∡
(
1
−
b
i
s
−
1
)
=
arg
(
1
−
x
+
j
y
σ
+
j
w
)
=
arg
(
σ
−
x
+
j
(
w
−
y
)
σ
+
j
w
)
=
arg
(
K
e
ϕ
1
−
ϕ
2
)
K
=
(
σ
−
x
)
2
+
(
w
−
y
)
2
σ
2
+
w
2
ϕ
=
ϕ
1
−
ϕ
2
=
arctan
2
(
w
−
y
σ
−
x
)
−
arctan
(
w
σ
)
\phi = \measuredangle (1-b_is^{-1})= \arg (1-\frac{x+jy}{\sigma+jw}) =\arg(\frac{\sigma-x+j(w-y)}{\sigma+jw}) = \arg(Ke^{\phi_1-\phi_2}) \\ K = \frac{\sqrt{(\sigma-x)^2+(w-y)^2}}{\sqrt{\sigma^2+w^2}}\\ \phi = \phi_1-\phi_2 = \arctan2(\frac{w-y}{\sigma-x}) - \arctan(\frac{w}{\sigma})
ϕ=∡(1−bis−1)=arg(1−σ+jwx+jy)=arg(σ+jwσ−x+j(w−y))=arg(Keϕ1−ϕ2)K=σ2+w2(σ−x)2+(w−y)2ϕ=ϕ1−ϕ2=arctan2(σ−xw−y)−arctan(σw)
讨论相频响应,需要令
σ
=
0
\sigma=0
σ=0,频率
w
w
w从0开始递增,通常使用波特图来描述,横坐标用类似于np.linspace(1e-2,1e2,1000)
的语句来描述。
因此 ϕ 2 = π / 2 \phi_2=\pi/2 ϕ2=π/2, ϕ 1 = arctan 2 ( w − y − x ) \phi_1 = \arctan2(\frac{w-y}{-x}) ϕ1=arctan2(−xw−y),需要注意 arctan 2 \arctan2 arctan2的输出范围是 [ − π , π ) [-\pi,\pi) [−π,π)。因此当 − x > 0 -x>0 −x>0为常数, w − y > 0 w-y>0 w−y>0的时候,返回的是一个一象限的锐角,因此 ϕ 1 \phi_1 ϕ1从 − π / 2 -\pi/2 −π/2递增到0。反过来将从 π / 2 \pi/2 π/2递减到0
可以用python代码来描述这个过程:
import numpy as np
import matplotlib.pylab as plt
# (1-bs^-1)
sigma = 0
Npoints = 1000
w = np.linspace(1e-1,100,Npoints)
s = sigma+1j*w
b = -5+1j*0
y1 = np.angle((1-b/s), deg=True)
y2 = np.angle((1+b.conjugate()/s), deg=True)
x1 = np.abs(1-b/s)
x2 = np.abs(1+b.conjugate()/s)
plt.semilogx(w,y1,'ro')
plt.semilogx(w,y2,'b*')
plt.legend(["negtive poles","positive poles"])
plt.show()
上述推导属实令人费解,主要原因是我们采用了负幂来描述这个系统。实际上,在控制工程当中,使用正幂来描述连续时间系统会更加常见。
如果是正幂,那么分子中的一项为
(
s
−
b
i
)
(s-b_i)
(s−bi),令s的实部为0,即
s
=
j
w
s=jw
s=jw,那么
∡
(
s
−
b
i
)
=
a
r
c
t
a
n
2
(
w
−
y
−
x
)
∣
(
s
−
b
i
)
∣
=
x
2
+
(
w
−
y
)
2
(2-5)
\measuredangle(s-b_i) = arctan2(\frac{w-y}{-x}) \\ |(s-b_i)| = \sqrt{x^2+(w-y)^2} \tag{2-5}
∡(s−bi)=arctan2(−xw−y)∣(s−bi)∣=x2+(w−y)2(2-5)
显然,要使得幅频响应不变,那么
b
i
b_i
bi的虚部不能动,实部的正负可以变。
( w − y ) > 0 (w-y)>0 (w−y)>0 | ( w − y ) < 0 (w-y)<0 (w−y)<0 | |
---|---|---|
实部为正(位于正半平面) | 正钝角 | 负钝角 |
实部为负(位于负半平面) | 正锐角 | 负锐角 |
所以,当实部为负,即零点在负半平面,随着频率的变化,相位变化相比于零点在正半平面更慢。也就是说相位变化小,即群时延小,阶跃响应建立更快,冲激响应能量更向0时刻集中。需要注意,最小相位系统,其相位延迟不一定是最小,但是相位变化一定是最小。比如一个最小相位系统的相位延迟了45度,另外一个相同幅频响应的系统相位延迟可能只有30度。
总结
Tip1:
关于最小相位系统有一些等价条件:
- 群时延最小的系统
- 冲激响应能量最靠近0时刻的系统
- 阶跃响应建立最快的系统
- 有理传递函数的情况下,零极点都在复平面的左半平面的系统
- 有理传递函数的情况下,对于离散时间系统,零极点都在单位圆内的系统
- 有理传递函数的情况下,系统和逆系统都是因果稳定的系统
Tip2:
最大相位系统:零点都在右半平面。因此这种系统因果稳定,但是其逆系统则不可能同时因果稳定。
Tip3:
一个零极点系统可以表示成最小相位系统和全通系统的乘积。
比如:
H
(
s
)
=
s
−
1
(
s
+
3
)
(
s
+
2
)
=
s
−
1
(
s
+
3
)
(
s
+
2
)
×
s
−
1
s
+
1
H(s) = \frac{s-1}{(s+3)(s+2)} = \frac{s-1}{(s+3)(s+2)}\times \frac{s-1}{s+1}
H(s)=(s+3)(s+2)s−1=(s+3)(s+2)s−1×s+1s−1
H ( z ) = 1 − ( 2 e j π / 3 ) z − 1 ( 1 − 3 z − 1 ) ( 5 − z − 1 ) = z − 1 − 2 e − j π / 3 ( z − 1 − 3 ) ( 5 − z − 1 ) × 1 − ( 2 e j π / 3 ) z − 1 z − 1 − 2 e − j π / 3 × z − 1 − 3 1 − 3 z − 1 H(z) = \frac{1-(2e^{j\pi/3})z^{-1}}{(1-3z^{-1})(5-z^{-1})} = \frac{z^{-1} - 2e^{-j\pi/3}}{(z^{-1}-3)(5-z^{-1})} \times \frac{1-(2e^{j\pi/3})z^{-1}}{z^{-1} - 2e^{-j\pi/3}} \times \frac{z^{-1}-3}{1-3z^{-1}} H(z)=(1−3z−1)(5−z−1)1−(2ejπ/3)z−1=(z−1−3)(5−z−1)z−1−2e−jπ/3×z−1−2e−jπ/31−(2ejπ/3)z−1×1−3z−1z−1−3
Tip4:
已知幅频响应,那么其最小相位系统的相频响应响应是唯一的。