最小相位系统

最小相位系统

1、传递函数

一个线性系统的响应。

比如一个RC低通滤波器:

Low_pass_filter

交流分量在电容的充放电中被滤除掉,通过设置电容器的电容值,以及电阻值,能够控制这种滤除能力,这个参数为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={ss>RC}

包含虚轴,那么该系统稳定。有理+极点在左半平面,因此系统因果。

2、最小相位

比较相位大小,首先要保证幅频响应相同,或者说幅度增益相同,否则没有意义。

结论:系统首先要求因果+稳定

  1. 拉普拉斯变换:零极点都在左半复平面
  2. z变换:零极点都在单位圆内

则是最小相位系统

首先系统要求稳定,即有界输入对应有界输出,其充要条件是ROC包含虚轴

其次系统要求因果,即 h ( t ) = 0 , ∀ t < 0 h(t)=0,\forall t<0 h(t)=0,t<0,暂时没有好的充要条件,但又一些有意义的结论:

  1. 必要条件:ROC是某个右半复平面。( h ( t ) h(t) h(t)至少要求是右边信号,起点还不确定,所以仅仅是个必要条件)
  2. 充分条件:传递函数是有理的,并且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(1ais1)=A(1a1s1)(1a2s1)(1aNs1)(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(1bisi)=B(1b1s1)(1b2s1)(1bMs1)(2-4)
系统因果稳定跟分子没有关系,因此 b i ∈ C b_i\in C biC,为任意复数。

因此,两个因果稳定的系统,幅度增益相同,相位响应不同,只能从分子入手,分母不能动。


对任意一项 ( 1 − b i s − 1 ) (1-b_is^{-1}) (1bis1),其中 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}) ϕ=(1bis1)=arg(1σ+jwx+jy)=arg(σ+jwσx+j(wy))=arg(Keϕ1ϕ2)K=σ2+w2 (σx)2+(wy)2 ϕ=ϕ1ϕ2=arctan2(σxwy)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(xwy),需要注意 arctan ⁡ 2 \arctan2 arctan2的输出范围是 [ − π , π ) [-\pi,\pi) [π,π)。因此当 − x > 0 -x>0 x>0为常数, w − y > 0 w-y>0 wy>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) (sbi),令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} (sbi)=arctan2(xwy)(sbi)=x2+(wy)2 (2-5)
显然,要使得幅频响应不变,那么 b i b_i bi的虚部不能动,实部的正负可以变。

( w − y ) > 0 (w-y)>0 (wy)>0 ( w − y ) < 0 (w-y)<0 (wy)<0
实部为正(位于正半平面) 正钝角 负钝角
实部为负(位于负半平面) 正锐角 负锐角

所以,当实部为负,即零点在负半平面,随着频率的变化,相位变化相比于零点在正半平面更慢。也就是说相位变化小,即群时延小,阶跃响应建立更快,冲激响应能量更向0时刻集中。需要注意,最小相位系统,其相位延迟不一定是最小,但是相位变化一定是最小。比如一个最小相位系统的相位延迟了45度,另外一个相同幅频响应的系统相位延迟可能只有30度。

总结

Tip1:

关于最小相位系统有一些等价条件:

  1. 群时延最小的系统
  2. 冲激响应能量最靠近0时刻的系统
  3. 阶跃响应建立最快的系统
  4. 有理传递函数的情况下,零极点都在复平面的左半平面的系统
  5. 有理传递函数的情况下,对于离散时间系统,零极点都在单位圆内的系统
  6. 有理传递函数的情况下,系统和逆系统都是因果稳定的系统

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)s1=(s+3)(s+2)s1×s+1s1

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)=(13z1)(5z1)1(2e/3)z1=(z13)(5z1)z12e/3×z12e/31(2e/3)z1×13z1z13

Tip4:

已知幅频响应,那么其最小相位系统的相频响应响应是唯一的。

相关推荐

  1. 单片机的系统

    2024-06-10 10:00:02       34 阅读
  2. 生成树相关例题题解

    2024-06-10 10:00:02       28 阅读
  3. Go 模块系统版本选择法 MVS 详解

    2024-06-10 10:00:02       35 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-06-10 10:00:02       18 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-06-10 10:00:02       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-06-10 10:00:02       18 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-06-10 10:00:02       20 阅读

热门阅读

  1. 006 CentOS 7.9 elasticsearch7.10.0安装及配置

    2024-06-10 10:00:02       11 阅读
  2. 1341. 电影评分

    2024-06-10 10:00:02       12 阅读
  3. 如何学好量子计算机技术的两种思路

    2024-06-10 10:00:02       7 阅读
  4. 爬山算法详细介绍

    2024-06-10 10:00:02       12 阅读
  5. 4. 流程控制语句

    2024-06-10 10:00:02       10 阅读
  6. vscode 好用的插件

    2024-06-10 10:00:02       12 阅读
  7. 23种设计模式——创建型模式

    2024-06-10 10:00:02       10 阅读