TT Lab

한국어 English 日本語 中文

开始
博客

博客

工程数学完全征服 第3篇:复变函数与Z变换 — 控制/信号处理的核心

对话收听 · 10分钟两位主持人为你讲解本文

工程数学完全征服 第3篇:复变函数与Z变换

在电子/控制工程中,复数绝不只是单纯的数学抽象。交流电路分析中的相量(phasor)、拉普拉斯变换中的 s=σ+jωs = \sigma + j\omega、Z变换中的单位圆、伯德图中的复频率响应 — 这一切都根植于复变函数论。本文将从复数体系出发,一路讲到留数定理、Z变换与数字滤波器设计,彻底征服这一整块内容。


1. 复数体系完全征服

1.1 复数的表示

直角坐标形式(Rectangular Form): z=x+iy=x+jyz = x + iy = x + jy

(电气工程中用 jj 代替 ii,因为 ii 用来表示电流)

极坐标形式(Polar Form): z=reiθ=r(cos⁡θ+isin⁡θ)=r∠θz = r e^{i\theta} = r(\cos\theta + i\sin\theta) = r\angle\theta

欧拉公式(Euler's Formula): eiθ=cos⁡θ+isin⁡θe^{i\theta} = \cos\theta + i\sin\theta

由此可得: cos⁡θ=eiθ+e−iθ2,sin⁡θ=eiθ−e−iθ2i\cos\theta = \frac{e^{i\theta} + e^{-i\theta}}{2}, \quad \sin\theta = \frac{e^{i\theta} - e^{-i\theta}}{2i}

被誉为数学史上最美公式的欧拉恒等式: eiπ+1=0e^{i\pi} + 1 = 0

五个最重要的数(ee、ii、π\pi、11、00)由一个式子连接在一起。

棣莫弗公式(De Moivre's Formula): (reiθ)n=rneinθ=rn(cos⁡nθ+isin⁡nθ)(r e^{i\theta})^n = r^n e^{in\theta} = r^n(\cos n\theta + i\sin n\theta)

n次方根:z1/n=r1/nei(θ+2kπ)/nz^{1/n} = r^{1/n} e^{i(\theta + 2k\pi)/n},k=0,1,…,n−1k = 0, 1, \ldots, n-1

表示单位圆上 nn 等分的点。(1的n次方根:WNk=ej2πk/NW_N^k = e^{j2\pi k/N} — 会在FFT中出现!)

1.2 复数运算

加法/减法(直角坐标形式更方便): (x1+iy1)±(x2+iy2)=(x1±x2)+i(y1±y2)(x_1 + iy_1) \pm (x_2 + iy_2) = (x_1 \pm x_2) + i(y_1 \pm y_2)

乘法(极坐标形式更方便): (r1eiθ1)(r2eiθ2)=r1r2ei(θ1+θ2)(r_1 e^{i\theta_1})(r_2 e^{i\theta_2}) = r_1 r_2 e^{i(\theta_1 + \theta_2)}

模相乘,相位相加 — 这是电气工程中阻抗相乘的基础。

除法: r1eiθ1r2eiθ2=r1r2ei(θ1−θ2)\frac{r_1 e^{i\theta_1}}{r_2 e^{i\theta_2}} = \frac{r_1}{r_2} e^{i(\theta_1 - \theta_2)}

共轭复数(Complex Conjugate): zˉ=x−iy=re−iθ\bar{z} = x - iy = r e^{-i\theta}

有用的性质:

1.3 工程应用:相量分析

复数的威力,在交流电路分析中得到了充分发挥。

将 v(t)=Vmcos⁡(ωt+ϕ)v(t) = V_m\cos(\omega t + \phi) 表示为相量: V=Vmejϕ=Vm∠ϕ\mathbf{V} = V_m e^{j\phi} = V_m\angle\phi

阻抗(Impedance):

ZR=R(纯电阻,无相位差)Z_R = R \quad (\text{纯电阻,无相位差}) ZL=jωL(电感,相位超前+90度)Z_L = j\omega L \quad (\text{电感,相位超前+90度}) ZC=1jωC=−jωC(电容,相位滞后-90度)Z_C = \frac{1}{j\omega C} = \frac{-j}{\omega C} \quad (\text{电容,相位滞后-90度})

串联RLC阻抗: Z=R+jωL+1jωC=R+j(ωL−1ωC)Z = R + j\omega L + \frac{1}{j\omega C} = R + j\left(\omega L - \frac{1}{\omega C}\right)

模:∣Z∣=R2+(ωL−1/(ωC))2|Z| = \sqrt{R^2 + (\omega L - 1/(\omega C))^2}

相位:ϕ=arctan⁡ ⁣(ωL−1/(ωC)R)\phi = \arctan\!\left(\frac{\omega L - 1/(\omega C)}{R}\right)

谐振条件:ω0L=1/(ω0C)\omega_0 L = 1/(\omega_0 C) → ω0=1/LC\omega_0 = 1/\sqrt{LC},Z=RZ = R(纯电阻)

传递函数(Transfer Function): H(jω)=Y(jω)X(jω)H(j\omega) = \frac{Y(j\omega)}{X(j\omega)}

这就是拉普拉斯域中的 H(s)∣s=jωH(s)|_{s=j\omega},也是伯德图的基础。


2. 复变函数与解析函数

2.1 复变函数

f(z)=f(x+iy)=u(x,y)+iv(x,y)f(z) = f(x + iy) = u(x, y) + iv(x, y)

其中 u,vu, v 是实值函数。

示例: f(z)=z2=(x+iy)2=x2−y2+i(2xy)f(z) = z^2 = (x+iy)^2 = x^2 - y^2 + i(2xy)

u(x,y)=x2−y2,v(x,y)=2xyu(x,y) = x^2 - y^2, \quad v(x,y) = 2xy

f(z)=ez=ex+iy=ex(cos⁡y+isin⁡y)f(z) = e^z = e^{x+iy} = e^x(\cos y + i\sin y)

u(x,y)=excos⁡y,v(x,y)=exsin⁡yu(x,y) = e^x\cos y, \quad v(x,y) = e^x\sin y

2.2 复数微分与柯西-黎曼方程

f(z)f(z) 的复数导数: f′(z0)=lim⁡Δz→0f(z0+Δz)−f(z0)Δzf'(z_0) = \lim_{\Delta z\to 0}\frac{f(z_0 + \Delta z) - f(z_0)}{\Delta z}

与实数不同,Δz\Delta z 必须能在复平面上任意方向趋近于0,且极限值都相同。

沿x轴方向(Δz=Δx\Delta z = \Delta x): f′(z)=∂u∂x+i∂v∂xf'(z) = \frac{\partial u}{\partial x} + i\frac{\partial v}{\partial x}

沿y轴方向(Δz=iΔy\Delta z = i\Delta y): f′(z)=1i∂u∂y+∂v∂y=−i∂u∂y+∂v∂yf'(z) = \frac{1}{i}\frac{\partial u}{\partial y} + \frac{\partial v}{\partial y} = -i\frac{\partial u}{\partial y} + \frac{\partial v}{\partial y}

两个表达式要相等,需要满足:

∂u∂x=∂v∂y,∂u∂y=−∂v∂x\boxed{\frac{\partial u}{\partial x} = \frac{\partial v}{\partial y}, \quad \frac{\partial u}{\partial y} = -\frac{\partial v}{\partial x}}

这就是柯西-黎曼方程(Cauchy-Riemann Equations)。

若 u,vu, v 的偏导数连续,且满足柯西-黎曼方程,则 f(z)f(z) 是解析函数(Analytic Function)。

2.3 调和函数

解析函数的实部和虚部,分别满足拉普拉斯方程:

∇2u=∂2u∂x2+∂2u∂y2=0\nabla^2 u = \frac{\partial^2 u}{\partial x^2} + \frac{\partial^2 u}{\partial y^2} = 0

∇2v=∂2v∂x2+∂2v∂y2=0\nabla^2 v = \frac{\partial^2 v}{\partial x^2} + \frac{\partial^2 v}{\partial y^2} = 0

证明:由柯西-黎曼方程可得 uxx=vyxu_{xx} = v_{yx},uyy=−vxyu_{yy} = -v_{xy},因此 uxx+uyy=vyx−vxy=0u_{xx} + u_{yy} = v_{yx} - v_{xy} = 0(混合偏导数可交换求导顺序)。

已知 uu 时,可利用柯西-黎曼方程求出 vv(调和共轭函数)。

工程意义:势流理论中速度势与流函数的关系,静电学中电势与电力线的关系。

2.4 重要的解析函数

指数函数 ez=ex(cos⁡y+isin⁡y)e^z = e^x(\cos y + i\sin y):

三角函数: cos⁡z=eiz+e−iz2,sin⁡z=eiz−e−iz2i\cos z = \frac{e^{iz} + e^{-iz}}{2}, \quad \sin z = \frac{e^{iz} - e^{-iz}}{2i}

双曲函数: cosh⁡z=ez+e−z2,sinh⁡z=ez−e−z2\cosh z = \frac{e^z + e^{-z}}{2}, \quad \sinh z = \frac{e^z - e^{-z}}{2}

cos⁡(iz)=cosh⁡z,sin⁡(iz)=isinh⁡z\cos(iz) = \cosh z, \quad \sin(iz) = i\sinh z

对数函数(多值函数): ln⁡z=ln⁡r+i(θ+2kπ),k∈Z\ln z = \ln r + i(\theta + 2k\pi), \quad k \in \mathbb{Z}

主值(principal value):Ln z=ln⁡r+iθ\text{Ln}\,z = \ln r + i\theta,−π<θ≤π-\pi < \theta \leq \pi

在 z=0z = 0 与负实轴上会出现奇异性(分支切割,branch cut)。


3. 复积分

3.1 路径积分(Line Integral)

CC:复平面上的曲线(参数化 z(t)=x(t)+iy(t)z(t) = x(t) + iy(t),a≤t≤ba \leq t \leq b)

∫Cf(z) dz=∫abf(z(t))z′(t) dt\int_C f(z)\,dz = \int_a^b f(z(t))z'(t)\,dt

示例:∫Cz2 dz\int_C z^2\,dz(CC:从原点到 1+i1+i 的直线)

参数化:z(t)=t+itz(t) = t + it,z′(t)=1+iz'(t) = 1+i,0≤t≤10 \leq t \leq 1

∫01(t+it)2(1+i) dt=∫01t2(2i)(1+i) dt=(2i)(1+i)⋅13=2i+2i23=−2+2i3\int_0^1 (t+it)^2(1+i)\,dt = \int_0^1 t^2(2i)(1+i)\,dt = (2i)(1+i)\cdot\frac{1}{3} = \frac{2i+2i^2}{3} = \frac{-2+2i}{3}

3.2 柯西积分定理(Cauchy's Integral Theorem)

∮Cf(z) dz=0\oint_C f(z)\,dz = 0

条件:f(z)f(z) 在单连通闭曲线 CC 上及其内部解析。

直观理解:解析函数的积分与路径无关。

与格林定理的关系:

∮Cf(z) dz=∮C(u+iv)(dx+idy)=∮C(u dx−v dy)+i∮C(v dx+u dy)\oint_C f(z)\,dz = \oint_C (u+iv)(dx+idy) = \oint_C (u\,dx - v\,dy) + i\oint_C (v\,dx + u\,dy)

应用格林定理和柯西-黎曼方程,两项都为0。

路径无关性:闭曲线积分为0 ↔ 积分与路径无关

原函数(antiderivative):若 F′(z)=f(z)F'(z) = f(z),则 ∫abf(z) dz=F(b)−F(a)\int_a^b f(z)\,dz = F(b) - F(a)

3.3 柯西积分公式(Cauchy's Integral Formula)

f(a)=12πi∮Cf(z)z−a dz\boxed{f(a) = \frac{1}{2\pi i}\oint_C \frac{f(z)}{z-a}\,dz}

条件:f(z)f(z) 在 CC 上及其内部解析,aa 位于 CC 内部。

解读:f(z)/(z−a)f(z)/(z-a) 在 z=az = a 处有一个极点。柯西公式说明,极点周围的积分与函数值直接相关。

高阶导数公式: f(n)(a)=n!2πi∮Cf(z)(z−a)n+1 dzf^{(n)}(a) = \frac{n!}{2\pi i}\oint_C \frac{f(z)}{(z-a)^{n+1}}\,dz

这说明了解析函数可以无限次求导!


4. 洛朗级数与留数定理

4.1 泰勒级数与洛朗级数

泰勒级数:若 f(z)f(z) 在 z=z0z = z_0 附近解析,则: f(z)=∑n=0∞an(z−z0)n,an=f(n)(z0)n!f(z) = \sum_{n=0}^{\infty}a_n(z-z_0)^n, \quad a_n = \frac{f^{(n)}(z_0)}{n!}

洛朗级数(Laurent Series):若 f(z)f(z) 在环形区域 $r_1 < |z - z_0| < r_2$ 上解析,则:

f(z)=∑n=−∞∞an(z−z0)n=∑n=0∞an(z−z0)n+∑n=1∞bn(z−z0)nf(z) = \sum_{n=-\infty}^{\infty}a_n(z-z_0)^n = \sum_{n=0}^{\infty}a_n(z-z_0)^n + \sum_{n=1}^{\infty}\frac{b_n}{(z-z_0)^n}

负幂次部分称为主要部分(principal part)。

4.2 奇点分类

当 f(z)f(z) 在 z=z0z = z_0 处不解析时:

可去奇点(Removable Singularity):洛朗级数中没有负幂次项。

sin⁡zz=1−z26+z4120−⋯(z=0 为可去奇点)\frac{\sin z}{z} = 1 - \frac{z^2}{6} + \frac{z^4}{120} - \cdots \quad (z=0\text{ 为可去奇点})

只要在 z=0z = 0 处赋予函数值1,函数就变为解析的。

m阶极点(Pole of Order m):有限个负幂次项。

f(z)=1(z−z0)m(解析函数)(m阶极点)f(z) = \frac{1}{(z-z_0)^m}(\text{解析函数}) \quad (m\text{阶极点})

本性奇点(Essential Singularity):无穷多个负幂次项。

e1/z=1+1z+12!z2+⋯(z=0 为本性奇点)e^{1/z} = 1 + \frac{1}{z} + \frac{1}{2!z^2} + \cdots \quad (z=0\text{ 为本性奇点})

皮卡定理:在本性奇点附近,函数值几乎能取遍所有复数。

4.3 留数(Residue)与留数定理

留数的定义:f(z)f(z) 的洛朗级数中 (z−z0)−1(z-z_0)^{-1} 项的系数。

Res[f,z0]=b1=12πi∮∣z−z0∣=ϵf(z) dz\text{Res}[f, z_0] = b_1 = \frac{1}{2\pi i}\oint_{|z-z_0|=\epsilon} f(z)\,dz

留数的计算方法:

单极点(m=1m=1): Res[f,z0]=lim⁡z→z0(z−z0)f(z)\text{Res}[f, z_0] = \lim_{z\to z_0}(z - z_0)f(z)

有理函数 f=p/qf = p/q(单极点): Res[f,z0]=p(z0)q′(z0)\text{Res}[f, z_0] = \frac{p(z_0)}{q'(z_0)}

m重极点: Res[f,z0]=1(m−1)!lim⁡z→z0dm−1dzm−1[(z−z0)mf(z)]\text{Res}[f, z_0] = \frac{1}{(m-1)!}\lim_{z\to z_0}\frac{d^{m-1}}{dz^{m-1}}\left[(z-z_0)^m f(z)\right]

留数定理(Residue Theorem):

∮Cf(z) dz=2πi∑kRes[f,zk]\oint_C f(z)\,dz = 2\pi i \sum_k \text{Res}[f, z_k]

zkz_k 是 CC 内部的所有奇点。

4.4 用留数定理计算实积分

复变函数论最强大的应用之一:把很难计算的实积分变得简单。

例1:I=∫−∞∞dx1+x2\displaystyle I = \int_{-\infty}^{\infty}\frac{dx}{1+x^2}

f(z)=1/(1+z2)=1/[(z+i)(z−i)]f(z) = 1/(1+z^2) = 1/[(z+i)(z-i)]

使用上半平面的半圆路径。z=iz = i 是上半平面的单极点:

Res[f,i]=lim⁡z→iz−i(z+i)(z−i)=12i\text{Res}[f, i] = \lim_{z\to i}\frac{z-i}{(z+i)(z-i)} = \frac{1}{2i}

当 R→∞R \to \infty 时,半圆弧的贡献趋于0(约当引理)。

I=2πi⋅12i=πI = 2\pi i \cdot \frac{1}{2i} = \pi

因此 ∫−∞∞dx1+x2=π\displaystyle\int_{-\infty}^{\infty}\frac{dx}{1+x^2} = \pi(验证:arctan⁡(x)∣−∞∞=π\arctan(x)\Big|_{-\infty}^{\infty} = \pi)

例2:I=∫0∞cos⁡xx2+a2dx(a>0)\displaystyle I = \int_0^{\infty}\frac{\cos x}{x^2+a^2}dx \quad (a > 0)

f(z)=eizz2+a2=eiz(z+ia)(z−ia)f(z) = \frac{e^{iz}}{z^2+a^2} = \frac{e^{iz}}{(z+ia)(z-ia)}

上半平面的极点:z=iaz = ia

Res[f,ia]=ei(ia)2ia=e−a2ia\text{Res}[f, ia] = \frac{e^{i(ia)}}{2ia} = \frac{e^{-a}}{2ia}

∫−∞∞eixx2+a2dx=2πi⋅e−a2ia=πe−aa\int_{-\infty}^{\infty}\frac{e^{ix}}{x^2+a^2}dx = 2\pi i \cdot \frac{e^{-a}}{2ia} = \frac{\pi e^{-a}}{a}

只取实部: I=∫0∞cos⁡xx2+a2dx=πe−a2aI = \int_0^{\infty}\frac{\cos x}{x^2+a^2}dx = \frac{\pi e^{-a}}{2a}

例3:∫02πdθ2+cos⁡θ\displaystyle\int_0^{2\pi}\frac{d\theta}{2+\cos\theta}

令 z=eiθz = e^{i\theta},dz=iz dθdz = iz\,d\theta,cos⁡θ=(z+z−1)/2\cos\theta = (z + z^{-1})/2:

∫02πdθ2+cos⁡θ=∮∣z∣=1dz/iz2+(z+z−1)/2=∮2 dzi(z2+4z+1)\int_0^{2\pi}\frac{d\theta}{2+\cos\theta} = \oint_{|z|=1}\frac{dz/iz}{2+(z+z^{-1})/2} = \oint\frac{2\,dz}{i(z^2+4z+1)}

极点:z=−2±3z = -2 \pm \sqrt{3}。位于单位圆内部的是:z1=−2+3z_1 = -2 + \sqrt{3}

=2πi⋅2i⋅2(z1−z2)=2π3= 2\pi i \cdot \frac{2}{i \cdot 2(z_1 - z_2)} = \frac{2\pi}{\sqrt{3}}

4.5 在拉普拉斯逆变换中的应用

布罗姆维奇积分(Bromwich Integral):

f(t)=12πi∫σ−i∞σ+i∞F(s)est dsf(t) = \frac{1}{2\pi i}\int_{\sigma-i\infty}^{\sigma+i\infty}F(s)e^{st}\,ds

这是 ss 平面上沿一条竖直线的路径积分,若用一个包含左侧所有极点的半圆把路径闭合起来,就可以应用留数定理:

f(t)=∑kRes[F(s)est,sk]f(t) = \sum_k \text{Res}\left[F(s)e^{st}, s_k\right]

示例:F(s)=1/(s2+ω2)F(s) = 1/(s^2+\omega^2) 的拉普拉斯逆变换

极点:s=±iωs = \pm i\omega

Res[ests2+ω2,iω]=eiωt2iω\text{Res}\left[\frac{e^{st}}{s^2+\omega^2}, i\omega\right] = \frac{e^{i\omega t}}{2i\omega}

Res[ests2+ω2,−iω]=e−iωt−2iω\text{Res}\left[\frac{e^{st}}{s^2+\omega^2}, -i\omega\right] = \frac{e^{-i\omega t}}{-2i\omega}

f(t)=eiωt−e−iωt2iω=sin⁡ωtωf(t) = \frac{e^{i\omega t} - e^{-i\omega t}}{2i\omega} = \frac{\sin\omega t}{\omega}

验证:L{sin⁡ωt/ω}=1/(s2+ω2)\mathcal{L}\{\sin\omega t/\omega\} = 1/(s^2+\omega^2) ✓


5. Z变换

5.1 定义与收敛域

离散时间信号 x[n]x[n] 的Z变换:

X(z)=Z{x[n]}=∑n=−∞∞x[n]z−nX(z) = \mathcal{Z}\{x[n]\} = \sum_{n=-\infty}^{\infty}x[n]z^{-n}

z=rejΩz = re^{j\Omega} 是复变量。收敛条件:∑∣x[n]∣∣z∣−n<∞\sum|x[n]||z|^{-n} < \infty

收敛域(ROC, Region of Convergence):

5.2 主要Z变换对

单位脉冲: x[n]=δ[n]⇒X(z)=1,对所有 zx[n] = \delta[n] \Rightarrow X(z) = 1, \quad \text{对所有 } z

单位阶跃: x[n]=u[n]⇒X(z)=zz−1=11−z−1,∣z∣>1x[n] = u[n] \Rightarrow X(z) = \frac{z}{z-1} = \frac{1}{1-z^{-1}}, \quad |z| > 1

指数信号: x[n]=anu[n]⇒X(z)=zz−a=11−az−1,∣z∣>∣a∣x[n] = a^n u[n] \Rightarrow X(z) = \frac{z}{z-a} = \frac{1}{1-az^{-1}}, \quad |z| > |a|

正弦信号: x[n]=cos⁡Ω0n⋅u[n]⇒X(z)=z(z−cos⁡Ω0)z2−2zcos⁡Ω0+1,∣z∣>1x[n] = \cos\Omega_0 n \cdot u[n] \Rightarrow X(z) = \frac{z(z-\cos\Omega_0)}{z^2 - 2z\cos\Omega_0 + 1}, \quad |z| > 1

x[n]=sin⁡Ω0n⋅u[n]⇒X(z)=zsin⁡Ω0z2−2zcos⁡Ω0+1,∣z∣>1x[n] = \sin\Omega_0 n \cdot u[n] \Rightarrow X(z) = \frac{z\sin\Omega_0}{z^2 - 2z\cos\Omega_0 + 1}, \quad |z| > 1

单位斜坡: x[n]=nu[n]⇒X(z)=z(z−1)2,∣z∣>1x[n] = nu[n] \Rightarrow X(z) = \frac{z}{(z-1)^2}, \quad |z| > 1

5.3 Z变换的性质

线性性: Z{ax[n]+by[n]}=aX(z)+bY(z)\mathcal{Z}\{ax[n] + by[n]\} = aX(z) + bY(z)

时移: Z{x[n−k]}=z−kX(z)\mathcal{Z}\{x[n-k]\} = z^{-k}X(z)

z−1z^{-1} 就是单位延迟算子。差分方程由此变为代数方程!

z缩放(频移): Z{anx[n]}=X(z/a)\mathcal{Z}\{a^n x[n]\} = X(z/a)

时间反转: Z{x[−n]}=X(z−1)\mathcal{Z}\{x[-n]\} = X(z^{-1})

卷积(Z变换的核心): Z{x[n]∗h[n]}=X(z)H(z)\mathcal{Z}\{x[n]*h[n]\} = X(z)H(z)

LTI系统分析的核心:卷积变成了乘法!

初值定理: x[0]=lim⁡z→∞X(z)x[0] = \lim_{z\to\infty} X(z)

终值定理: lim⁡n→∞x[n]=lim⁡z→1(z−1)X(z)\lim_{n\to\infty} x[n] = \lim_{z\to 1}(z-1)X(z)

5.4 Z逆变换

部分分式法:

X(z)=B(z)A(z)=∑kAkzz−pkX(z) = \frac{B(z)}{A(z)} = \sum_k \frac{A_k z}{z - p_k}

pkp_k 为极点,Ak=[(z−pk)X(z)/z]z=pkA_k = [(z-p_k)X(z)/z]_{z=p_k}

示例:X(z)=z2(z−1)(z−0.5)X(z) = \frac{z^2}{(z-1)(z-0.5)}

X(z)z=z(z−1)(z−0.5)=Az−1+Bz−0.5\frac{X(z)}{z} = \frac{z}{(z-1)(z-0.5)} = \frac{A}{z-1} + \frac{B}{z-0.5}

A=zz−0.5∣z=1=2,B=zz−1∣z=0.5=−1A = \left.\frac{z}{z-0.5}\right|_{z=1} = 2, \quad B = \left.\frac{z}{z-1}\right|_{z=0.5} = -1

X(z)=2zz−1−zz−0.5X(z) = \frac{2z}{z-1} - \frac{z}{z-0.5}

x[n]=2u[n]−(0.5)nu[n]=[2−(0.5)n]u[n]x[n] = 2u[n] - (0.5)^n u[n] = [2 - (0.5)^n]u[n]

幂级数展开法(长除法):

X(z)=x[0]+x[1]z−1+x[2]z−2+⋯X(z) = x[0] + x[1]z^{-1} + x[2]z^{-2} + \cdots

将 X(z)X(z) 展开为 z−1z^{-1} 的幂级数,即可直接读出 x[n]x[n]。

5.5 用Z变换求解差分方程

示例:y[n]−0.5y[n−1]=x[n]y[n] - 0.5y[n-1] = x[n],初始静止状态,x[n]=u[n]x[n] = u[n]

应用Z变换(初始条件为0): Y(z)−0.5z−1Y(z)=X(z)=zz−1Y(z) - 0.5z^{-1}Y(z) = X(z) = \frac{z}{z-1}

Y(z)(1−0.5z−1)=zz−1Y(z)(1 - 0.5z^{-1}) = \frac{z}{z-1}

Y(z)=z/(z−1)1−0.5z−1=z2(z−1)(z−0.5)Y(z) = \frac{z/(z-1)}{1 - 0.5z^{-1}} = \frac{z^2}{(z-1)(z-0.5)}

用部分分式做逆变换(与上例相同): y[n]=2u[n]−(0.5)nu[n]=[2−(0.5)n]u[n]y[n] = 2u[n] - (0.5)^n u[n] = [2 - (0.5)^n]u[n]

当 n→∞n \to \infty 时 y[∞]=2y[\infty] = 2(用终值定理验证:(z−1)⋅z2/[(z−1)(z−0.5)]∣z=1=1/0.5=2(z-1)\cdot z^2/[(z-1)(z-0.5)]|_{z=1} = 1/0.5 = 2)

5.6 数字滤波器设计

传递函数 H(z):

LTI系统的输出与输入之比: H(z)=Y(z)X(z)=b0+b1z−1+⋯+bMz−M1+a1z−1+⋯+aNz−NH(z) = \frac{Y(z)}{X(z)} = \frac{b_0 + b_1 z^{-1} + \cdots + b_M z^{-M}}{1 + a_1 z^{-1} + \cdots + a_N z^{-N}}

零点(zero):使 H(z)=0H(z) = 0 的 zz 值

极点(pole):使 H(z)=∞H(z) = \infty 的 zz 值

稳定性条件:所有极点都必须位于单位圆内部。

稳定⇔所有极点 pk:∣pk∣<1\text{稳定} \Leftrightarrow \text{所有极点 } p_k: |p_k| < 1

FIR滤波器(有限脉冲响应): H(z)=b0+b1z−1+⋯+bMz−MH(z) = b_0 + b_1 z^{-1} + \cdots + b_M z^{-M}

极点只在原点,因此总是稳定。可以实现线性相位特性。

IIR滤波器(无限脉冲响应): H(z)=B(z)A(z)H(z) = \frac{B(z)}{A(z)}

只要极点位于单位圆内部就稳定。用较少的系数即可实现陡峭的特性。

5.7 用Python设计和分析数字滤波器

from scipy import signal
import numpy as np
import matplotlib.pyplot as plt

# 1. IIR滤波器:巴特沃斯低通
N_order = 4   # 滤波器阶数
Wn = 0.2      # 归一化截止频率 (0~1, 1 = 奈奎斯特频率)

b, a = signal.butter(N_order, Wn, btype='low')
print("巴特沃斯LPF系数:")
print(f"  b = {b}")
print(f"  a = {a}")

# 2. 频率响应
w, h = signal.freqz(b, a, worN=2048)

# 3. 极-零点图
zeros, poles, gain = signal.tf2zpk(b, a)
print(f"\n零点: {zeros}")
print(f"极点: {poles}")
print(f"增益: {gain:.4f}")
print(f"极点模: {np.abs(poles)}")

fig, axes = plt.subplots(2, 2, figsize=(14, 10))

# 频率响应(幅度)
axes[0, 0].plot(w/np.pi, 20*np.log10(abs(h) + 1e-15), 'b-', linewidth=2)
axes[0, 0].axhline(y=-3, color='r', linestyle='--', label='-3dB')
axes[0, 0].set_xlabel('归一化频率 (x pi rad/samples)')
axes[0, 0].set_ylabel('幅度 (dB)')
axes[0, 0].set_title('巴特沃斯LPF频率响应(幅度)')
axes[0, 0].set_xlim([0, 1])
axes[0, 0].set_ylim([-80, 5])
axes[0, 0].legend()
axes[0, 0].grid(True, alpha=0.3)

# 相位响应
angles = np.unwrap(np.angle(h))
axes[0, 1].plot(w/np.pi, angles*180/np.pi, 'g-', linewidth=2)
axes[0, 1].set_xlabel('归一化频率 (x pi rad/samples)')
axes[0, 1].set_ylabel('相位 (度)')
axes[0, 1].set_title('巴特沃斯LPF相位响应')
axes[0, 1].set_xlim([0, 1])
axes[0, 1].grid(True, alpha=0.3)

# 极-零点图
unit_circle = np.exp(1j * np.linspace(0, 2*np.pi, 200))
axes[1, 0].plot(unit_circle.real, unit_circle.imag, 'k--', alpha=0.5)
axes[1, 0].scatter(zeros.real, zeros.imag, s=100, marker='o',
                   color='blue', zorder=5, label='零点')
axes[1, 0].scatter(poles.real, poles.imag, s=100, marker='x',
                   color='red', linewidths=2, zorder=5, label='极点')
axes[1, 0].axhline(0, color='gray', alpha=0.3)
axes[1, 0].axvline(0, color='gray', alpha=0.3)
axes[1, 0].set_xlabel('实部')
axes[1, 0].set_ylabel('虚部')
axes[1, 0].set_title('极-零点图 (z平面)')
axes[1, 0].legend()
axes[1, 0].grid(True, alpha=0.3)
axes[1, 0].set_aspect('equal')

# 脉冲响应
imp = np.zeros(50)
imp[0] = 1.0
h_imp = signal.lfilter(b, a, imp)
axes[1, 1].stem(h_imp, markerfmt='bo', linefmt='b-', basefmt='k-')
axes[1, 1].set_xlabel('采样点 n')
axes[1, 1].set_ylabel('h[n]')
axes[1, 1].set_title('脉冲响应 (IIR 无限)')
axes[1, 1].grid(True, alpha=0.3)

plt.tight_layout()
plt.savefig('digital_filter_analysis.png', dpi=150)
plt.show()

5.8 FIR与IIR滤波器比较

from scipy import signal
import numpy as np
import matplotlib.pyplot as plt

# FIR滤波器(窗函数法)
N_fir = 50
Wn = 0.2
h_fir = signal.firwin(N_fir + 1, Wn, window='hamming')

# IIR滤波器(巴特沃斯)
b_iir, a_iir = signal.butter(6, Wn, btype='low')

# 频率响应比较
w_fir, H_fir = signal.freqz(h_fir, [1], worN=2048)
w_iir, H_iir = signal.freqz(b_iir, a_iir, worN=2048)

fig, axes = plt.subplots(1, 2, figsize=(14, 5))

axes[0].plot(w_fir/np.pi, 20*np.log10(abs(H_fir)+1e-15),
             'b-', linewidth=2, label=f'FIR (N={N_fir})')
axes[0].plot(w_iir/np.pi, 20*np.log10(abs(H_iir)+1e-15),
             'r-', linewidth=2, label='IIR 巴特沃斯 6阶')
axes[0].set_xlabel('归一化频率')
axes[0].set_ylabel('幅度 (dB)')
axes[0].set_title('FIR vs IIR 频率响应')
axes[0].set_xlim([0, 1])
axes[0].set_ylim([-80, 5])
axes[0].legend()
axes[0].grid(True, alpha=0.3)

# 相位响应比较(FIR的线性相位特性)
ph_fir = np.unwrap(np.angle(H_fir))
ph_iir = np.unwrap(np.angle(H_iir))
axes[1].plot(w_fir/np.pi, ph_fir*180/np.pi,
             'b-', linewidth=2, label='FIR (线性相位)')
axes[1].plot(w_iir/np.pi, ph_iir*180/np.pi,
             'r-', linewidth=2, label='IIR (非线性相位)')
axes[1].set_xlabel('归一化频率')
axes[1].set_ylabel('相位 (度)')
axes[1].set_title('FIR vs IIR 相位响应')
axes[1].set_xlim([0, 0.5])
axes[1].legend()
axes[1].grid(True, alpha=0.3)

plt.tight_layout()
plt.savefig('fir_vs_iir.png', dpi=150)
plt.show()

print("系数个数比较:")
print(f"  FIR: {len(h_fir)} 个系数")
print(f"  IIR: b={len(b_iir)}, a={len(a_iir)} 系数合计 {len(b_iir)+len(a_iir)}")

6. 拉普拉斯变换与Z变换的对应关系

6.1 s平面与z平面的关系

z=esTs,s=1Tsln⁡zz = e^{sT_s}, \quad s = \frac{1}{T_s}\ln z

对于 s=σ+jωs = \sigma + j\omega:

z=eσTsejωTs=eσTs∠(ωTs)z = e^{\sigma T_s}e^{j\omega T_s} = e^{\sigma T_s}\angle(\omega T_s)

| s平面特性 | z平面特性 | | --------------------------------------- | ------------- | --- | ---- | | jωj\omega 轴 (σ=0\sigma = 0) | 单位圆 $ | z | = 1$ | | 左半平面 (σ<0\sigma < 0) | 单位圆内部 $ | z | < 1$ | | 右半平面 (σ>0\sigma > 0) | 单位圆外部 $ | z | > 1$ | | 直流 (s=0s = 0) | z=1z = 1 | | 奈奎斯特频率 (ω=π/Ts\omega = \pi/T_s) | z=−1z = -1 |

稳定性对应:

6.2 双线性变换 (Bilinear Transform)

将模拟滤波器转换为数字滤波器的方法:

s=2Ts⋅z−1z+1s = \frac{2}{T_s}\cdot\frac{z-1}{z+1}

会产生频率翘曲(frequency warping):ωanalog=2Tstan⁡ ⁣(Ωdigital2)\omega_{analog} = \frac{2}{T_s}\tan\!\left(\frac{\Omega_{digital}}{2}\right)

需要用预翘曲(pre-warping)修正后再设计。

from scipy import signal
import numpy as np

# 模拟巴特沃斯原型
N = 4  # 滤波器阶数
Wn_analog = 2 * np.pi * 1000  # 1000 Hz 模拟截止频率

z_a, p_a, k_a = signal.buttap(N)
b_analog, a_analog = signal.zpk2tf(z_a, p_a, k_a)
b_analog, a_analog = signal.lp2lp(b_analog, a_analog, Wn_analog)

# 用双线性变换转换为数字滤波器
fs = 8000  # 采样频率
b_digital, a_digital = signal.bilinear(b_analog, a_analog, fs)

print("模拟滤波器极点:", np.roots(a_analog))
print("数字滤波器极点:", np.roots(a_digital))
print("数字极点模:", np.abs(np.roots(a_digital)))

7. 在控制系统中的应用

7.1 传递函数与稳定性分析

连续系统传递函数: G(s)=K(s+z1)(s+z2)⋯(s+p1)(s+p2)⋯G(s) = \frac{K(s+z_1)(s+z_2)\cdots}{(s+p_1)(s+p_2)\cdots}

劳斯-赫尔维茨判据(Routh-Hurwitz Criterion):

利用特征多项式 ansn+an−1sn−1+⋯+a0a_n s^n + a_{n-1}s^{n-1} + \cdots + a_0 的劳斯阵列,判断右半平面极点的个数。

奈奎斯特判据:

根据 G(jω)G(j\omega) 的奈奎斯特图对 (−1,0)(-1, 0) 点的包围次数来判断稳定性。

7.2 离散控制系统

数字控制器的传递函数 C(z)C(z):

PID数字实现(后向欧拉近似):

C(z)=Kp+KiTszz−1+Kdz−1TszC(z) = K_p + K_i\frac{T_s z}{z-1} + K_d\frac{z-1}{T_s z}


总结与下一步

本文涉及的内容:

  1. 复数体系:直角坐标形式、极坐标形式、欧拉公式、棣莫弗公式、相量分析、阻抗
  2. 复变函数与解析函数:复数微分、柯西-黎曼方程、调和函数
  3. 复积分:路径积分、柯西定理、柯西公式
  4. 洛朗级数与留数定理:奇点分类、留数计算、实积分应用、拉普拉斯逆变换
  5. Z变换:定义、收敛域、主要变换对、求解差分方程
  6. 数字滤波器设计:FIR/IIR、极-零点图、稳定性、双线性变换
  7. s平面 vs z平面:稳定性条件对应关系

下一篇将讲解数值分析(Numerical Methods)。从方程求解、数值微分/积分、ODE数值解法、线性系统,到插值,全部用Python完整实现。


参考资料

登录后即可点赞

评论

还没有评论。

登录后即可发表评论