欢迎光临
我们一直在努力

《数字信号处理》六、LTI 系统的变换域(z 域与频域)分析

在数字信号处理(DSP)的世界里,时域分析(如卷积和差分方程)虽然直观,但在面对复杂的系统设计(如滤波器设计、信道均衡)时,往往显得力不从心。

本章将带我们跨越时域的限制,进入更广阔的变换域(z 域与频域)。在这里,我们将解锁系统的“基因密码”——系统函数,并深入剖析全通系统、最小相位系统以及在实际工程中至关重要的广义线性相位系统。


6.1 LTI 系统的系统函数

6.1.1 LTI 系统的 z 域表示

对于一个线性时不变(LTI)系统,时域输入 x(n)x(n)x(n) 与输出 y(n)y(n)y(n) 的关系由单位脉冲响应 h(n)h(n)h(n) 唯一确定:

y(n)=x(n)∗h(n)=∑k=−∞∞h(k)x(n−k)y(n) = x(n) * h(n) = \\sum_{k=-\\infty}^{\\infty} h(k)x(n-k)y(n)=x(n)h(n)=k=h(k)x(nk)

根据 z 变换的时域卷积定理,时域的卷积在 z 域转化为简单的乘积:

Y(z)=H(z)X(z)Y(z) = H(z)X(z)Y(z)=H(z)X(z)

其中,H(z)H(z)H(z) 称为系统的系统函数(System Function),它是单位脉冲响应 h(n)h(n)h(n) 的 z 变换:

H(z)=∑n=−∞∞h(n)z−nH(z) = \\sum_{n=-\\infty}^{\\infty} h(n)z^{-n}H(z)=n=h(n)zn

在实际工程中,LTI 系统通常由常系数线性差分方程描述:

∑k=0Naky(n−k)=∑r=0Mbrx(n−r)(a0=1)\\sum_{k=0}^{N} a_k y(n-k) = \\sum_{r=0}^{M} b_r x(n-r) \\quad (a_0 = 1)k=0Naky(nk)=r=0Mbrx(nr)(a0=1)

对两边同时取 z 变换,并利用位移性质 Z{x(n−k)}=z−kX(z)Z\\{x(n-k)\\} = z^{-k}X(z)Z{x(nk)}=zkX(z)(假设初始条件为零):

Y(z)∑k=0Nakz−k=X(z)∑r=0Mbrz−rY(z)\\sum_{k=0}^{N} a_k z^{-k} = X(z)\\sum_{r=0}^{M} b_r z^{-r}Y(z)k=0Nakzk=X(z)r=0Mbrzr

从而得到有理系统函数:

H(z)=Y(z)X(z)=∑r=0Mbrz−r∑k=0Nakz−kH(z) = \\frac{Y(z)}{X(z)} = \\frac{\\sum_{r=0}^{M} b_r z^{-r}}{\\sum_{k=0}^{N} a_k z^{-k}}H(z)=X(z)Y(z)=k=0Nakzkr=0Mbrzr

对其进行因式分解,可以写成零极点形式:

H(z)=A∏r=1M(1−zrz−1)∏k=1N(1−pkz−1)=AzN−M∏r=1M(z−zr)∏k=1N(z−pk)H(z) = A \\frac{\\prod_{r=1}^{M}(1 – z_r z^{-1})}{\\prod_{k=1}^{N}(1 – p_k z^{-1})} = A z^{N-M} \\frac{\\prod_{r=1}^{M}(z – z_r)}{\\prod_{k=1}^{N}(z – p_k)}H(z)=Ak=1N(1pkz1)r=1M(1zrz1)=AzNMk=1N(zpk)r=1M(zzr)

  • zrz_rzr:系统的零点(Zeros),使 H(z)=0H(z) = 0H(z)=0 的点。
  • pkp_kpk:系统的极点(Poles),使 H(z)→∞H(z) \\to \\inftyH(z) 的点。

6.1.2 因果性和稳定性

一个 LTI 系统的时域特性(因果、稳定)在 z 域完全由其收敛域(ROC, Region of Convergence)及零极点分布决定。

1. 因果性(Causality)

  • 时域条件:系统在 n<0n < 0n<0 时,单位脉冲响应 h(n)=0h(n) = 0h(n)=0(即系统为右边序列)。
  • z 域条件:H(z)H(z)H(z) 的收敛域形如 rmax<∣z∣≤∞r_{max} < |z| \\le \\inftyrmax<z,即收敛域在某个圆之外,且包含 ∞\\infty 点。如果是因果有理系统,则系统函数的分子阶数 MMM 不能大于分母阶数 NNN(在不包含无穷远极点的前提下)。

2. 稳定性(Stability)

  • 时域条件:绝对可和,即 ∑n=−∞∞∣h(n)∣<∞\\sum_{n=-\\infty}^{\\infty} |h(n)| < \\inftyn=h(n)<
  • z 域条件:系统函数 H(z)H(z)H(z) 的收敛域必须包含单位圆(∣z∣=1|z| = 1z=1)。

3. 因果稳定系统的充要条件

若系统既是因果的又是稳定的,则其收敛域必须同时满足上述两条:包含单位圆且单位圆在最大极点圆之外。这意味着:

因果稳定系统的所有极点必须严格位于单位圆以内,即 ∣pk∣<1|p_k| < 1pk<1
零点的位置则不受此限制,可以在单位圆内、圆上或圆外。

6.1.3 单位脉冲响应计算

计算单位脉冲响应 h(n)h(n)h(n),本质上是求解 H(z)H(z)H(z) 的逆 z 变换(IZT)。常用的方法包括留数法、幂级数展开法(长除法)和部分分式展开法。

H(z)H(z)H(z) 具有不同的单极点 pkp_kpk,可将其展开为:

H(z)=∑r=0M−NBrz−r+∑k=1NAk1−pkz−1H(z) = \\sum_{r=0}^{M-N} B_r z^{-r} + \\sum_{k=1}^{N} \\frac{A_k}{1 – p_k z^{-1}}H(z)=r=0MNBrzr+k=1N1pkz1Ak

一旦求出系数 AkA_kAk,结合因果性条件,即可查表得到时域表达式:

h(n)=∑r=0M−NBrδ(n−r)+∑k=1NAk(pk)nu(n)h(n) = \\sum_{r=0}^{M-N} B_r \\delta(n-r) + \\sum_{k=1}^{N} A_k (p_k)^n u(n)h(n)=r=0MNBrδ(nr)+k=1NAk(pk)nu(n)

例:求解H(z)H(z)H(z)时域表达h(n)h(n)h(n)
H(z)=1−0.5z−11−1.3z−1+0.42z−2H(z) = \\frac{1 – 0.5z^{-1}}{1 – 1.3z^{-1} + 0.42z^{-2}}H(z)=11.3z1+0.42z210.5z1
分母可以因式分解为:
1−1.3z−1+0.42z−2=(1−0.7z−1)(1−0.6z−1)1 – 1.3z^{-1} + 0.42z^{-2} = (1 – 0.7z^{-1})(1 – 0.6z^{-1})11.3z1+0.42z2=(10.7z1)(10.6z1)
由此得到系统的两个单极点分别为:p1=0.7p_1 = 0.7p1=0.7p2=0.6p_2 = 0.6p2=0.6
因为分子阶数 M=1M=1M=1 小于分母阶数 N=2N=2N=2(属于真分式),所以我们不需要进行长除法,前面的整式部分为 0。根据单极点展开公式,直接设:
H(z)=1−0.5z−1(1−0.7z−1)(1−0.6z−1)=A11−0.7z−1+A21−0.6z−1H(z) = \\frac{1 – 0.5z^{-1}}{(1 – 0.7z^{-1})(1 – 0.6z^{-1})} = \\frac{A_1}{1 – 0.7z^{-1}} + \\frac{A_2}{1 – 0.6z^{-1}}H(z)=(10.7z1)(10.6z1)10.5z1=10.7z1A1+10.6z1A2
我们可以使用留数法(留数定理)来快速求解这两个常数。
– 求解 A1A_1A1:方程两边同乘以 A1A_1A1 的分母 (1−0.7z−1)(1 – 0.7z^{-1})(10.7z1),然后令 z−1=10.7z^{-1} = \\frac{1}{0.7}z1=0.71(即 1−0.7z−1=01 – 0.7z^{-1} = 010.7z1=0):
A1=H(z)⋅(1−0.7z−1) ∣z−1=10.7=1−0.5z−11−0.6z−1 ∣z−1=10.7=2A_1 = H(z) \\cdot (1 – 0.7z^{-1}) \\ \\Big|_{z^{-1} = \\frac{1}{0.7}} = \\frac{1 – 0.5z^{-1}}{1 – 0.6z^{-1}} \\ \\Big|_{z^{-1} = \\frac{1}{0.7}}=2A1=H(z)(10.7z1) z1=0.71=10.6z110.5z1 z1=0.71=2
– 求解 A2A_2A2:方程两边同乘以 A2A_2A2 的分母 (1−0.6z−1)(1 – 0.6z^{-1})(10.6z1),然后令 z−1=10.6z^{-1} = \\frac{1}{0.6}z1=0.61
A2=H(z)⋅(1−0.6z−1) ∣z−1=10.6=1−0.5z−11−0.7z−1 ∣z−1=10.6=−1A_2 = H(z) \\cdot (1 – 0.6z^{-1}) \\ \\Big|_{z^{-1} = \\frac{1}{0.6}} = \\frac{1 – 0.5z^{-1}}{1 – 0.7z^{-1}} \\ \\Big|_{z^{-1} = \\frac{1}{0.6}}=-1A2=H(z)(10.6z1) z1=0.61=10.7z110.5z1 z1=0.61=1
将求得的常数系数代回原式,得到最简部分分式形式:
H(z)=21−0.7z−1−11−0.6z−1H(z) = \\frac{2}{1 – 0.7z^{-1}} – \\frac{1}{1 – 0.6z^{-1}}H(z)=10.7z1210.6z11
根据因果系统的常规假设,收敛域为外域 ∣z∣>0.7|z| > 0.7z>0.7。我们根据常用的经典 z 变换对:
Z−1{11−pkz−1}=(pk)nu(n)\\mathcal{Z}^{-1}\\left\\{ \\frac{1}{1 – p_k z^{-1}} \\right\\} = (p_k)^n u(n)Z1{1pkz11}=(pk)nu(n)
利用线性性质,直接逐项查表求出时域的单位脉冲响应 h(n)h(n)h(n)
h(n)=2⋅(0.7)nu(n)−1⋅(0.6)nu(n)h(n) = 2 \\cdot (0.7)^n u(n) – 1 \\cdot (0.6)^n u(n)h(n)=2(0.7)nu(n)1(0.6)nu(n)

下面用 MATLAB 代码演示一个因果系统的零极点分布,并计算、绘制其单位脉冲响应。

% ————————————————————————-
% Example: Analysis of Poles/Zeros and Impulse Response for a Causal LTI System
% H(z) = (1 – 0.5*z^-1) / (1 – 1.3*z^-1 + 0.42*z^-2)
% ————————————————————————-
clear; clc; close all;

% Define numerator and denominator coefficients
b = [1, 0.5];
a = [1, 1.3, 0.42];

% 1. Calculate zeros and poles
zeros_mat = roots(b);
poles_mat = roots(a);

fprintf('System Zero (z) locations: \\n'); disp(zeros_mat);
fprintf('System Pole (p) locations: \\n'); disp(poles_mat);

% 2. Plot Pole-Zero Map
figure('Position', [100, 100, 900, 400]);
subplot(1, 2, 1);
zplane(b, a);
grid on;
title('Pole-Zero Map in z-Domain');
legend('Zeros (z)', 'Poles (p)');

% 3. Compute and plot Impulse Response h(n)
N_samples = 30;
[h, t] = impz(b, a, N_samples);

subplot(1, 2, 2);
stem(t, h, 'filled', 'LineWidth', 1.5);
grid on;
xlabel('Time Index (n)');
ylabel('Amplitude h(n)');
title('Unit Impulse Response h(n)');

在这里插入图片描述

运行结果分析:
通过计算可以得到极点为 p1=0.7p_1 = 0.7p1=0.7, p2=0.6p_2 = 0.6p2=0.6。因为两个极点都绝对小于 1(在单位圆内部),所以该系统是因果且稳定的。从右侧的冲激响应图中也可以清楚地看到,h(n)h(n)h(n) 随着 nnn 的增大迅速衰减趋于 0。


6.2 LTI 系统的频域分析

6.2.1 频率响应的基本概念

如果系统是稳定的,其收敛域包含单位圆,那么我们就可以在单位圆上评估其系统函数。令 z=ejωz = e^{j\\omega}z=ejω,此时的系统函数就蜕变为系统的频率响应(Frequency Response):

H(ejω)=H(z)∣z=ejω=∑n=−∞∞h(n)e−jωnH(e^{j\\omega}) = H(z)\\Big|_{z=e^{j\\omega}} = \\sum_{n=-\\infty}^{\\infty} h(n)e^{-j\\omega n}H(ejω)=H(z)z=ejω=n=h(n)ejωn

频率响应通常是一个复变函数,为了揭示其物理特性,我们常将其写成模与相角的形式(即极坐标形式):

H(ejω)=∣H(ejω)∣ejθ(ω)H(e^{j\\omega}) = |H(e^{j\\omega})| e^{j\\theta(\\omega)}H(ejω)=H(ejω)ejθ(ω)

  • ∣H(ejω)∣|H(e^{j\\omega})|H(ejω):幅度响应(Magnitude Response),表示系统对不同频率信号的放大或衰减倍数。
  • θ(ω)=arg⁡[H(ejω)]\\theta(\\omega) = \\arg[H(e^{j\\omega})]θ(ω)=arg[H(ejω)]:相位响应(Phase Response),表示不同频率信号通过系统后的相位滞后。

此外,为了评估信号通过系统后的时延失真,引入了群延时(Group Delay)的概念,定义为相位响应导数的负值:

τg(ω)=−dθ(ω)dω\\tau_g(\\omega) = – \\frac{d\\theta(\\omega)}{d\\omega}τg(ω)=dωdθ(ω)

例:假设一个数字滤波器的差分方程为:
y(n)=ay(n−1)+x(n)(0<a<1)y(n) = a y(n-1) + x(n) \\quad (0 < a < 1)y(n)=ay(n1)+x(n)(0<a<1)
对差分方程两边取 zzz 变换:
Y(z)=az−1Y(z)+X(z)  ⟹  Y(z)(1−az−1)=X(z)Y(z) = a z^{-1} Y(z) + X(z) \\implies Y(z)(1 – a z^{-1}) = X(z)Y(z)=az1Y(z)+X(z)Y(z)(1az1)=X(z)
得到系统函数为:
H(z)=11−az−1H(z) = \\frac{1}{1 – a z^{-1}}H(z)=1az11
该系统有一个极点 p1=ap_1 = ap1=a。因为 0<a<10 < a < 10<a<1,极点在单位圆内,系统因果且稳定,收敛域(ROC)为 ∣z∣>a|z| > az>a,包含单位圆。因此,我们可以通过令 z=ejωz = e^{j\\omega}z=ejω 来计算它的频率响应。
z=ejωz = e^{j\\omega}z=ejω 代入系统函数:
H(ejω)=11−ae−jωH(e^{j\\omega}) = \\frac{1}{1 – a e^{-j\\omega}}H(ejω)=1aejω1
利用欧拉公式 e−jω=cos⁡ω−jsin⁡ωe^{-j\\omega} = \\cos\\omega – j\\sin\\omegaejω=cosωjsinω 展开分母:
H(ejω)=1(1−acos⁡ω)+jasin⁡ωH(e^{j\\omega}) = \\frac{1}{(1 – a\\cos\\omega) + j a\\sin\\omega}H(ejω)=(1acosω)+jasinω1
为了分别提取模(幅度)和相角(相位),我们需要对复数分母进行有理化(分子分母同乘以分母的共轭复数):
H(ejω)=(1−acos⁡ω)−jasin⁡ω[(1−acos⁡ω)+jasin⁡ω][(1−acos⁡ω)−jasin⁡ω]H(e^{j\\omega}) = \\frac{(1 – a\\cos\\omega) – j a\\sin\\omega}{[(1 – a\\cos\\omega) + j a\\sin\\omega][(1 – a\\cos\\omega) – j a\\sin\\omega]}H(ejω)=[(1acosω)+jasinω][(1acosω)jasinω](1acosω)jasinω
H(ejω)=(1−acos⁡ω)−jasin⁡ω(1−acos⁡ω)2+(asin⁡ω)2=(1−acos⁡ω)−jasin⁡ω1−2acos⁡ω+a2H(e^{j\\omega}) = \\frac{(1 – a\\cos\\omega) – j a\\sin\\omega}{(1 – a\\cos\\omega)^2 + (a\\sin\\omega)^2} = \\frac{(1 – a\\cos\\omega) – j a\\sin\\omega}{1 – 2a\\cos\\omega + a^2}H(ejω)=(1acosω)2+(asinω)2(1acosω)jasinω=12acosω+a2(1acosω)jasinω
现在,复数已被清晰地拆分为实部和虚部:
– 实部 Re{H(ejω)}=1−acos⁡ω1−2acos⁡ω+a2\\text{Re}\\{H(e^{j\\omega})\\} = \\frac{1 – a\\cos\\omega}{1 – 2a\\cos\\omega + a^2}Re{H(ejω)}=12acosω+a21acosω
– 虚部 Im{H(ejω)}=−asin⁡ω1−2acos⁡ω+a2\\text{Im}\\{H(e^{j\\omega})\\} = \\frac{-a\\sin\\omega}{1 – 2a\\cos\\omega + a^2}Im{H(ejω)}=12acosω+a2asinω
幅度响应是频率响应的模长,等于实部平方与虚部平方和的平方根。我们也可以直接从有理化前的分式直接求模:
∣H(ejω)∣=∣1∣∣(1−acos⁡ω)+jasin⁡ω∣|H(e^{j\\omega})| = \\frac{|1|}{|(1 – a\\cos\\omega) + j a\\sin\\omega|}H(ejω)=(1acosω)+jasinω∣1∣
∣H(ejω)∣=1(1−acos⁡ω)2+(asin⁡ω)2=11−2acos⁡ω+a2|H(e^{j\\omega})| = \\frac{1}{\\sqrt{(1 – a\\cos\\omega)^2 + (a\\sin\\omega)^2}} = \\frac{1}{\\sqrt{1 – 2a\\cos\\omega + a^2}}H(ejω)=(1acosω)2+(asinω)21=12acosω+a21
物理意义分析:
– 当 ω=0\\omega = 0ω=0(直流/低频)时,cos⁡(0)=1\\cos(0) = 1cos(0)=1,幅度为 ∣H(ej0)∣=11−a|H(e^{j0})| = \\frac{1}{1-a}H(ej0)=1a1。因为 0<a<10<a<10<a<1,这是一个较大的增益。
– 当 ω=π\\omega = \\piω=π(高频)时,cos⁡(π)=−1\\cos(\\pi) = -1cos(π)=1,幅度为 ∣H(ejπ)∣=11+a|H(e^{j\\pi})| = \\frac{1}{1+a}H(ejπ)=1+a1。这是一个较小的增益。
– 这表明该系统是一个典型的低通滤波器。
相位响应是复数的辐角,定义为 θ(ω)=arctan⁡(虚部实部)\\theta(\\omega) = \\arctan\\left(\\frac{\\text{虚部}}{\\text{实部}}\\right)θ(ω)=arctan(实部虚部)
θ(ω)=arctan⁡(−asin⁡ω1−2acos⁡ω+a21−acos⁡ω1−2acos⁡ω+a2)=arctan⁡(−asin⁡ω1−acos⁡ω)\\theta(\\omega) = \\arctan\\left( \\frac{\\frac{-a\\sin\\omega}{1 – 2a\\cos\\omega + a^2}}{\\frac{1 – a\\cos\\omega}{1 – 2a\\cos\\omega + a^2}} \\right) = \\arctan\\left( \\frac{-a\\sin\\omega}{1 – a\\cos\\omega} \\right)θ(ω)=arctan(12acosω+a21acosω12acosω+a2asinω)=arctan(1acosωasinω)
因为 arctan⁡(−x)=−arctan⁡(x)\\arctan(-x) = -\\arctan(x)arctan(x)=arctan(x),可以提取负号表示相位滞后:
θ(ω)=−arctan⁡(asin⁡ω1−acos⁡ω)\\theta(\\omega) = -\\arctan\\left( \\frac{a\\sin\\omega}{1 – a\\cos\\omega} \\right)θ(ω)=arctan(1acosωasinω)
根据定义,群延时是对相位响应求导的负值:τg(ω)=−dθ(ω)dω\\tau_g(\\omega) = – \\frac{d\\theta(\\omega)}{d\\omega}τg(ω)=dωdθ(ω)
由于 θ(ω)=−arctan⁡(f(ω))\\theta(\\omega) = -\\arctan(f(\\omega))θ(ω)=arctan(f(ω)),利用复合函数求导法则以及 (arctan⁡x)′=11+x2(\\arctan x)' = \\frac{1}{1+x^2}(arctanx)=1+x21
τg(ω)=ddω[arctan⁡(asin⁡ω1−acos⁡ω)]\\tau_g(\\omega) = \\frac{d}{d\\omega} \\left[ \\arctan\\left( \\frac{a\\sin\\omega}{1 – a\\cos\\omega} \\right) \\right]τg(ω)=dωd[arctan(1acosωasinω)]
u=asin⁡ω1−acos⁡ωu = \\frac{a\\sin\\omega}{1 – a\\cos\\omega}u=1acosωasinω,先求 dudω\\frac{du}{d\\omega}dωdu(使用商的求导公式):
dudω=(acos⁡ω)(1−acos⁡ω)−(asin⁡ω)(asin⁡ω)(1−acos⁡ω)2=acos⁡ω−a2cos⁡2ω−a2sin⁡2ω(1−acos⁡ω)2=acos⁡ω−a2(1−acos⁡ω)2\\frac{du}{d\\omega} = \\frac{(a\\cos\\omega)(1 – a\\cos\\omega) – (a\\sin\\omega)(a\\sin\\omega)}{(1 – a\\cos\\omega)^2} = \\frac{a\\cos\\omega – a^2\\cos^2\\omega – a^2\\sin^2\\omega}{(1 – a\\cos\\omega)^2} = \\frac{a\\cos\\omega – a^2}{(1 – a\\cos\\omega)^2}dωdu=(1acosω)2(acosω)(1acosω)(asinω)(asinω)=(1acosω)2acosωa2cos2ωa2sin2ω=(1acosω)2acosωa2
然后代入总导数公式:
τg(ω)=11+u2⋅dudω=11+(asin⁡ω1−acos⁡ω)2⋅acos⁡ω−a2(1−acos⁡ω)2\\tau_g(\\omega) = \\frac{1}{1 + u^2} \\cdot \\frac{du}{d\\omega} = \\frac{1}{1 + \\left(\\frac{a\\sin\\omega}{1 – a\\cos\\omega}\\right)^2} \\cdot \\frac{a\\cos\\omega – a^2}{(1 – a\\cos\\omega)^2}τg(ω)=1+u21dωdu=1+(1acosωasinω)21(1acosω)2acosωa2
τg(ω)=(1−acos⁡ω)2(1−acos⁡ω)2+a2sin⁡2ω⋅acos⁡ω−a2(1−acos⁡ω)2\\tau_g(\\omega) = \\frac{(1 – a\\cos\\omega)^2}{(1 – a\\cos\\omega)^2 + a^2\\sin^2\\omega} \\cdot \\frac{a\\cos\\omega – a^2}{(1 – a\\cos\\omega)^2}τg(ω)=(1acosω)2+a2sin2ω(1acosω)2(1acosω)2acosωa2
τg(ω)=acos⁡ω−a21−2acos⁡ω+a2cos⁡2ω+a2sin⁡2ω=acos⁡ω−a21−2acos⁡ω+a2\\tau_g(\\omega) = \\frac{a\\cos\\omega – a^2}{1 – 2a\\cos\\omega + a^2\\cos^2\\omega + a^2\\sin^2\\omega} = \\frac{a\\cos\\omega – a^2}{1 – 2a\\cos\\omega + a^2}τg(ω)=12acosω+a2cos2ω+a2sin2ωacosωa2=12acosω+a2acosωa2
物理意义分析:
在低频段(ω→0\\omega \\to 0ω0),τg(0)=a−a21−2a+a2=a(1−a)(1−a)2=a1−a\\tau_g(0) = \\frac{a – a^2}{1 – 2a + a^2} = \\frac{a(1-a)}{(1-a)^2} = \\frac{a}{1-a}τg(0)=12a+a2aa2=(1a)2a(1a)=1aa。若 a=0.9a=0.9a=0.9,则低频群延时为 999 个采样点。由于群延时随 ω\\omegaω 变化,说明该系统存在相位失真(时延非线性)。

完整的 MATLAB 仿真验证代码

% ————————————————————————-
% Example: Multi-Frequency Analysis with Clean Subplot Zoom-ins
% H(z) = 1 / (1 – a*z^-1), with a = 0.5
% ————————————————————————-
clear; clc; close all;

a_coef = 0.5;
b = 1;
a = [1, a_coef];

%% 1. Frequency Domain Analysis
w = linspace(0, pi, 512);
H_theory = 1 ./ (1 a_coef * exp(1i*w));
magnitude_theory = abs(H_theory);
phase_theory = atan2(a_coef*sin(w), 1 a_coef*cos(w));
gd_theory = (a_coef*cos(w) a_coef^2) ./ (1 2*a_coef*cos(w) + a_coef^2);

%% 2. Time Domain Simulation with Multiple Frequencies
t_index = 0:150; % Discrete time index

w_low = 0.05 * pi;
w_med = 0.25 * pi;
w_high = 0.60 * pi;

envelope = exp(((t_index40)./15).^2);
x_low = envelope .* sin(w_low .* t_index);
x_med = envelope .* sin(w_med .* t_index);
x_high = envelope .* sin(w_high .* t_index);

y_low = filter(b, a, x_low);
y_med = filter(b, a, x_med);
y_high = filter(b, a, x_high);

gd_f = @(w_val) (a_coef*cos(w_val) a_coef^2) / (1 2*a_coef*cos(w_val) + a_coef^2);

%% 3. Plotting 3-Row Comprehensive Visualization
figure('Position', [30, 30, 1400, 950]);

% ==========================================
% ROW 1: FREQUENCY DOMAIN CHARACTERISTICS
% ==========================================
subplot(3, 3, 1);
plot(w/pi, 20*log10(magnitude_theory), 'b', 'LineWidth', 2); grid on;
xlabel('Normalized Frequency (\\times\\pi rad/sample)'); ylabel('Magnitude (dB)');
title('Magnitude Response');

subplot(3, 3, 2);
plot(w/pi, phase_theory, 'g', 'LineWidth', 2); grid on;
xlabel('Normalized Frequency (\\times\\pi rad/sample)'); ylabel('Phase (rad)');
title('Phase Response');

subplot(3, 3, 3);
plot(w/pi, gd_theory, 'r', 'LineWidth', 2); grid on;
xlabel('Normalized Frequency (\\times\\pi rad/sample)'); ylabel('Group Delay (samples)');
title('Group Delay Response');

% ==========================================
% ROW 2: OVERVIEW OF TIME DOMAIN PULSES
% ==========================================
% Low Freq Overview
subplot(3, 3, 4);
plot(t_index, x_low, 'k–', 'LineWidth', 1.2); hold on;
plot(t_index, y_low, 'Color', [0.85 0.33 0.1], 'LineWidth', 2); grid on;
xlim([0, 120]); ylim([1.2, 1.2]);
ylabel('Amplitude'); title('Low Freq Full View (\\omega = 0.05\\pi)');
legend('Input', 'Output', 'Location', 'northeast');
text(5, 0.9, sprintf('GD: %.3f', gd_f(w_low)), 'FontWeight', 'bold', 'BackgroundColor', [1 1 1 0.7]);

% Med Freq Overview
subplot(3, 3, 5);
plot(t_index, x_med, 'k–', 'LineWidth', 1.2); hold on;
plot(t_index, y_med, 'Color', [0.93 0.69 0.13], 'LineWidth', 2); grid on;
xlim([0, 120]); ylim([1.2, 1.2]);
title('Medium Freq Full View (\\omega = 0.25\\pi)');
legend('Input', 'Output', 'Location', 'northeast');
text(5, 0.9, sprintf('GD: %.3f', gd_f(w_med)), 'FontWeight', 'bold', 'BackgroundColor', [1 1 1 0.7]);

% High Freq Overview
subplot(3, 3, 6);
plot(t_index, x_high, 'k–', 'LineWidth', 1.2); hold on;
plot(t_index, y_high, 'Color', [0 0.45 0.74], 'LineWidth', 2); grid on;
xlim([0, 120]); ylim([1.2, 1.2]);
title('High Freq Full View (\\omega = 0.60\\pi)');
legend('Input', 'Output', 'Location', 'northeast');
text(5, 0.9, sprintf('GD: %.3f', gd_f(w_high)), 'FontWeight', 'bold', 'BackgroundColor', [1 1 1 0.7]);

% ==========================================
% ROW 3: ZOOMED-IN DETAILS (DELAY MARKS & TEXTS REMOVED)
% ==========================================
zoom_range = [32, 52]; % Focus precisely on the peak zone around sample 40

% 1. Low Freq Zoom
subplot(3, 3, 7);
plot(t_index, x_low, 'k–o', 'LineWidth', 1.2, 'MarkerIndices', 1:150); hold on;
plot(t_index, y_low, 'Color', [0.85 0.33 0.1], 'Marker', 'x', 'LineWidth', 2, 'MarkerIndices', 1:150);
grid on; xlim(zoom_range); ylabel('Amplitude'); xlabel('Time Index (n)');
title('Low Freq Zoom-in');
% All explicit peak vertical lines and delay text labels have been removed

% 2. Med Freq Zoom
subplot(3, 3, 8);
plot(t_index, x_med, 'k–o', 'LineWidth', 1.2, 'MarkerIndices', 1:150); hold on;
plot(t_index, y_med, 'Color', [0.93 0.69 0.13], 'Marker', 'x', 'LineWidth', 2, 'MarkerIndices', 1:150);
grid on; xlim(zoom_range); xlabel('Time Index (n)');
title('Medium Freq Zoom-in');
% All explicit peak vertical lines and delay text labels have been removed

% 3. High Freq Zoom
subplot(3, 3, 9);
plot(t_index, x_high, 'k–o', 'LineWidth', 1.2, 'MarkerIndices', 1:150); hold on;
plot(t_index, y_high, 'Color', [0 0.45 0.74], 'Marker', 'x', 'LineWidth', 2, 'MarkerIndices', 1:150);
grid on; xlim(zoom_range); xlabel('Time Index (n)');
title('High Freq Zoom-in');
% All explicit peak vertical lines and delay text labels have been removed

%% 4. Print Theoretical Analytical Delays to Command Window
fprintf('— Theoretical Group Delay Verification —\\n');
fprintf('Low Freq (0.05 pi) -> Delay: %.3f samples\\n', gd_f(w_low));
fprintf('Med Freq (0.25 pi) -> Delay: %.3f samples\\n', gd_f(w_med));
fprintf('High Freq (0.60 pi) -> Delay: %.3f samples\\n', gd_f(w_high));

在这里插入图片描述
该图完揭示了频域指标(频率响应)是如何直观映射到时域波形(延时与衰减)之中的:

  • 频域与时域的全景联动第一行(频域特性):系统在低频段的幅度和群延时都处于高位。随着频率上升(从左向右看),幅度急剧下降,群延时也在 0.35π0.35\\pi0.35π 附近穿过零点变为负值。
  • 第二行(时域全景):这给低、中、高三个频段信号提供了一个直观的对比。你可以清晰地看到低频滤波器“无伤通过”但明显右移(延时大),而高频信号通过时则被严重压扁(幅度衰减大)。
  • 6.2.2 LTI 系统的频率响应

    利用几何方法,我们可以直观地从零极点向量看出系统的频率响应。将 z=ejωz = e^{j\\omega}z=ejω 代入零极点形式中:

    H(ejω)=Aejω(N−M)∏r=1M(ejω−zr)∏k=1N(ejω−pk)H(e^{j\\omega}) = A e^{j\\omega(N-M)} \\frac{\\prod_{r=1}^{M}(e^{j\\omega} – z_r)}{\\prod_{k=1}^{N}(e^{j\\omega} – p_k)}H(ejω)=Aejω(NM)k=1N(ejωpk)r=1M(ejωzr)

    在 z 平面上,ejωe^{j\\omega}ejω 代表单位圆上的一个点,从零点 zrz_rzr 指向该点的向量为 Vr=ejω−zrV_r = e^{j\\omega} – z_rVr=ejωzr,从极点 pkp_kpk 指向该点的向量为 Uk=ejω−pkU_k = e^{j\\omega} – p_kUk=ejωpk。因此:

    • 幅频特性:与零点向量长度的乘积成正比,与极点向量长度的乘积成反比。当单位圆上的点接近某个极点时,分母变小,幅频响应出现峰值;接近某个零点时,分子变小,幅频响应出现谷值。

    6.3 全通系统

    6.3.1 相同幅度响应的系统

    在某些应用场景中(如全通均衡器),我们需要一种系统:它对所有频率成分的能量既不放大也不缩小,只改变它们的相位。这种系统被称为全通系统(Allpass System)。

    其频率响应的幅度恒为常数(通常归一化为 1):

    ∣Hap(ejω)∣=1∀ω|H_{ap}(e^{j\\omega})| = 1 \\quad \\forall \\omegaHap(ejω)=1ω

    为了在 z 域满足这一特性,全通系统的零极点必须呈共轭倒数关系。一个一阶全通系统的基本形式为:

    Hap(z)=z−1−p∗1−pz−1=1−p∗zz−pH_{ap}(z) = \\frac{z^{-1} – p^*}{1 – p z^{-1}} = \\frac{1 – p^* z}{z – p}Hap(z)=1pz1z1p=zp1pz

    若系统是因果稳定的,其极点 ppp 必须在单位圆内(∣p∣<1|p| < 1p<1),则对应的零点为 1/p∗1/p^*1/p,必然落在单位圆之外。

    对于一个 NNN 阶有理全通系统,其形式可以写成多个一阶或二阶全通子系统的级联:

    Hap(z)=∏k=1Nz−1−pk∗1−pkz−1H_{ap}(z) = \\prod_{k=1}^{N} \\frac{z^{-1} – p_k^*}{1 – p_k z^{-1}}Hap(z)=k=1N1pkz1z1pk

    6.3.2 全通系统的主要性质

  • 零极点对偶性:若 p0p_0p0 是全通系统的极点,则 1/p0∗1/p_0^*1/p0 必定是其零点。
  • 相频单调递减:因果稳定全通系统的相位响应 θap(ω)\\theta_{ap}(\\omega)θap(ω)随频率 ω\\omegaω 的增加是单调递减的,这意味着全通系统的群延时永远大于零(τg(ω)>0\\tau_g(\\omega) > 0τg(ω)>0)。
  • 下面的代码构建了一个二阶全通滤波器,验证其幅频特性是否为水平直线。

    % ————————————————————————-
    % 示例:二阶全通系统分析
    % 极点(p)设在 0.6 + 0.4j 和 0.6 – 0.4j
    % ————————————————————————-
    p = [0.6 + 0.4i; 0.6 0.4i]; % 极点 p
    z = 1 ./ conj(p); % 零点 z(共轭倒数)

    % 从零极点构建多项式系数
    a = poly(p);
    b = poly(z);
    % 保持全通增益归一化:全通分子系数是分母系数的倒序
    b_ap = fliplr(a);

    % 计算频响
    [H_ap, w_ap] = freqz(b_ap, a, 512);

    % 绘图
    figure('Position', [100, 100, 900, 400]);
    subplot(1, 2, 1);
    zplane(b_ap, a);
    title('全通系统零极点配对图');

    subplot(1, 2, 2);
    plot(w_ap/pi, abs(H_ap), 'LineWidth', 2);
    ylim([0, 2]); grid on;
    xlabel('归一化频率 (\\times\\pi rad/sample)');
    ylabel('幅度响应');
    title('全通系统幅度特性(恒等于1)');

    在这里插入图片描述


    6.4 最小相位系统

    6.4.1 原系统及其逆系统

    对于一个 LTI 系统 H(z)H(z)H(z),如果我们想在接收端完全消除它对信号的影响,就需要构建一个逆系统(Inverse System) Hi(z)H_i(z)Hi(z),使得:

    H(z)Hi(z)=1  ⟹  Hi(z)=1H(z)H(z) H_i(z) = 1 \\implies H_i(z) = \\frac{1}{H(z)}H(z)Hi(z)=1Hi(z)=H(z)1

    显然,原系统的零点变成了逆系统的极点,原系统的极点变成了逆系统的零点。
    如果要求原系统和逆系统同时满足因果稳定,则两者的极点都必须严格位于单位圆以内。这意味着:

    原系统 H(z)H(z)H(z) 的所有极点 ppp 和零点 zzz 都必须在单位圆以内。
    满足这一条件的系统,我们称之为最小相位系统(Minimum-Phase System)。

    反之,若系统内部含有单位圆外部的零点,则称为最大相位系统或混合相位系统(统称为非最小相位系统)。

    6.4.2 最小相位和全通分解

    任何一个具有实质性物理意义的因果稳定系统 H(z)H(z)H(z),如果其零点位于单位圆外,我们都可以利用全通系统将这些圆外的零点“反射”回单位圆内部,从而将其分解为:

    H(z)=Hmin(z)⋅Hap(z)H(z) = H_{min}(z) \\cdot H_{ap}(z)H(z)=Hmin(z)Hap(z)

    • Hmin(z)H_{min}(z)Hmin(z):最小相位系统(包含了原系统的所有极点,以及被映射回圆内的零点)。
    • Hap(z)H_{ap}(z)Hap(z):全通系统(负责纠正相位差)。

    这一性质在信道均衡与盲解卷积中具有极其重大的应用价值:它允许我们把不满足逆系统因果稳定条件的常规系统,拆解成一个可逆的骨架(最小相位)加一个不改动能量谱的全通滤片。

    6.4.3 最小相位系统性质

    在所有具有相同幅度响应的系统集合中:

  • 相位延迟最小:最小相位系统在各频率点上的相位滞后绝对值是最小的。
  • 群延时最小:其群延时在所有同幅频系统里也是最小的。
  • 能量集中在前端:在时域中,最小相位系统的单位脉冲响应 h(n)h(n)h(n) 的能量随时间推进积累得最快,即能量更倾向于集中在 nnn 较小的靠近前端的时刻。
  • 我们设计两个系统,它们的幅频响应完全一样,但一个零点在圆内(最小相位),一个零点在圆外(非最小相位)。

    % ————————————————————————-
    % 示例:最小相位系统与非最小相位系统对比
    % H1(z) = 1 – 0.5*z^-1 (零点在 0.5, 圆内 -> 最小相位)
    % H2(z) = -0.5 + z^-1 (零点在 2.0, 圆外 -> 非最小相位)
    % ————————————————————————-
    b1 = [1, 0.5]; a1 = 1;
    b2 = [0.5, 1]; a2 = 1;

    [H1, w] = freqz(b1, a1, 512);
    [H2, w] = freqz(b2, a2, 512);

    figure('Position', [100, 100, 1000, 400]);

    % 1. 幅频对比
    subplot(1, 2, 1);
    plot(w/pi, 20*log10(abs(H1)), 'b-', 'LineWidth', 2); hold on;
    plot(w/pi, 20*log10(abs(H2)), 'r–', 'LineWidth', 1.5);
    grid on;
    legend('H1 (最小相位)', 'H2 (非最小相位)');
    xlabel('归一化频率 (\\times\\pi rad/sample)');
    ylabel('幅度响应 (dB)');
    title('幅度响应对比(完全相同)');

    % 2. 相位响应对比
    subplot(1, 2, 2);
    plot(w/pi, unwrap(angle(H1)), 'b-', 'LineWidth', 2); hold on;
    plot(w/pi, unwrap(angle(H2)), 'r–', 'LineWidth', 1.5);
    grid on;
    legend('H1 (最小相位)', 'H2 (非最小相位)');
    xlabel('归一化频率 (\\times\\pi rad/sample)');
    ylabel('相位响应 (rad)');
    title('相位响应对比(H1 的相位延迟更小)');

    在这里插入图片描述


    6.5 广义线性相位系统

    在现代数字通信和图像处理中,线性相位(Linear Phase)是一个极为苛刻但关键的指标。若系统相位非线性,不同频率的波形成分在通过系统后会产生不同的时延,从而导致时域波形严重畸变(如图像边缘模糊、数据码间串扰)。

    6.5.1 线性相位系统特点

    所谓第一类严格线性相位,是指系统的相位响应满足:

    θ(ω)=−αω\\theta(\\omega) = -\\alpha \\omegaθ(ω)=αω

    这意味着群延时 τg(ω)=α\\tau_g(\\omega) = \\alphaτg(ω)=α 是一个常数。

    而广义线性相位(Generalized Linear Phase)则允许在原点处存在一个固定的恒定相位偏置 β\\betaβ

    θ(ω)=β−αω\\theta(\\omega) = \\beta – \\alpha \\omegaθ(ω)=βαω

    为了使 FIR 滤波器满足广义线性相位条件,其时域的单位脉冲响应 h(n)h(n)h(n) 必须展现出严格的对称性或反对称性。设 FIR 滤波器的长度为 NNN(时域范围 0≤n≤N−10 \\le n \\le N-10nN1),对称中心为 α=(N−1)/2\\alpha = (N-1)/2α=(N1)/2

    • 对称(第一类广义线性相位, β=0\\beta=0β=0π\\piπ):

    h(n)=h(N−1−n)h(n) = h(N-1-n)h(n)=h(N1n)

    • 反对称(第二类广义线性相位, β=π/2\\beta=\\pi/2β=π/2−π/2-\\pi/2π/2):

    h(n)=−h(N−1−n)h(n) = -h(N-1-n)h(n)=h(N1n)

    证:一个长度为 NNN 的 FIR 滤波器的频率响应(DTFT)定义为:
    H(ω)=∑n=0N−1h(n)e−jωnH(\\omega) = \\sum_{n=0}^{N-1} h(n)e^{-j\\omega n}H(ω)=n=0N1h(n)ejωn
    现在,我们找到这个序列的时间几何中心,令 α=N−12\\alpha = \\frac{N-1}{2}α=2N1。注意,不管 NNN 是奇数还是偶数,α\\alphaα 永远是这个序列的正中心。
    我们强行从求和公式中提取出一个整体的延迟因子 e−jωαe^{-j\\omega \\alpha}ejωα,将公式重写为:
    H(ω)=e−jωα∑n=0N−1h(n)e−jω(n−α)H(\\omega) = e^{-j\\omega \\alpha} \\sum_{n=0}^{N-1} h(n)e^{-j\\omega(n – \\alpha)}H(ω)=ejωαn=0N1h(n)ejω(nα)
    为了看清求和号内部发生了什么,我们利用欧拉公式把 e−jω(n−α)e^{-j\\omega(n – \\alpha)}ejω(nα) 展开为实部和虚部:
    H(ω)=e−jωα∑n=0N−1h(n)[cos⁡(ω(n−α))−jsin⁡(ω(n−α))]H(\\omega) = e^{-j\\omega \\alpha} \\sum_{n=0}^{N-1} h(n) \\left[ \\cos\\left(\\omega(n – \\alpha)\\right) – j\\sin\\left(\\omega(n – \\alpha)\\right) \\right]H(ω)=ejωαn=0N1h(n)[cos(ω(nα))jsin(ω(nα))]
    1. 当 h(n)h(n)h(n) 严格偶对称时
    偶对称意味着关于中心点对称的两侧系数相等,即 h(n)=h(N−1−n)h(n) = h(N-1-n)h(n)=h(N1n)
    – 观察虚部(正弦项):由于 sin⁡(−x)=−sin⁡(x)\\sin(-x) = -\\sin(x)sin(x)=sin(x) 是奇函数,在关于 α\\alphaα 对称的位置上,sin⁡(ω(n−α))\\sin\\left(\\omega(n – \\alpha)\\right)sin(ω(nα)) 大小相等、符号相反。乘以相等的 h(n)h(n)h(n) 后,所有的虚部在累加时两两完美抵消,求和结果为 0!
    – 观察实部(余弦项):由于 cos⁡(−x)=cos⁡(x)\\cos(-x) = \\cos(x)cos(x)=cos(x) 是偶函数,对称位置的项符号相同,互相叠加。
    最终,系统函数精简为:
    H(ω)=e−jωα⋅∑n=0N−1h(n)cos⁡(ω(n−α))⏟这是一个纯实数函数 A(ω)H(\\omega) = e^{-j\\omega \\alpha} \\cdot \\underbrace{\\sum_{n=0}^{N-1} h(n)\\cos\\left(\\omega(n – \\alpha)\\right)}_{\\text{这是一个纯实数函数 } A(\\omega)}H(ω)=ejωα这是一个纯实数函数 A(ω)n=0N1h(n)cos(ω(nα))
    此时,整个系统的总相位就是前面那个提取出来的因子:
    θ(ω)=−αω\\theta(\\omega) = -\\alpha\\omegaθ(ω)=αω
    对照直线方程,此时 β=0\\beta = 0β=0,相位与频率 ω\\omegaω 成完美严格的正比(线性相位)!
    2. 当 h(n)h(n)h(n) 严格奇对称时
    奇对称意味着关于中心点对称的两侧系数相反,即 h(n)=−h(N−1−n)h(n) = -h(N-1-n)h(n)=h(N1n)
    – 这一次,实部(余弦项)因为正负相反,在累加时两两完全抵消,求和结果为 0。
    – 而虚部(正弦项)由于“负负得正”,反而保留了下来。
    最终,系统函数精简为:
    H(ω)=e−jωα⋅[−j∑n=0N−1h(n)sin⁡(ω(n−α))]H(\\omega) = e^{-j\\omega \\alpha} \\cdot \\left[ -j \\sum_{n=0}^{N-1} h(n)\\sin\\left(\\omega(n – \\alpha)\\right) \\right]H(ω)=ejωα[jn=0N1h(n)sin(ω(nα))]
    虚数单位 −j-jj 可以写成指数形式 −j=e−jπ2-j = e^{-j\\frac{\\pi}{2}}j=ej2π。我们把它和前面的项合并:
    H(ω)=ej(−π2−ωα)⋅∑n=0N−1h(n)sin⁡(ω(n−α))⏟纯实数函数 A(ω)H(\\omega) = e^{j\\left(-\\frac{\\pi}{2} – \\omega \\alpha\\right)} \\cdot \\underbrace{\\sum_{n=0}^{N-1} h(n)\\sin\\left(\\omega(n – \\alpha)\\right)}_{\\text{纯实数函数 } A(\\omega)}H(ω)=ej(2πωα)纯实数函数 A(ω)n=0N1h(n)sin(ω(nα))
    此时,整个系统的总相位为:
    θ(ω)=−π2−αω\\theta(\\omega) = -\\frac{\\pi}{2} – \\alpha\\omegaθ(ω)=2παω
    对照直线方程,此时 β=−π2\\beta = -\\frac{\\pi}{2}β=2π,同样满足广义线性相位的条件!

    6.5.2 四类线性相位系统

    根据 FIR 滤波器长度 NNN 的奇偶性以及 h(n)h(n)h(n) 的对称性,我们将广义线性相位系统划分为著名的四种类型。不同类型的系统具有不同的频域约束,直接决定了它们能用于设计哪种类型的滤波器。

    下面通过表格全面总结这四类系统:

    类型长度 NNN对称性频率响应 H(ejω)H(e^{j\\omega})H(ejω) 的物理表达式关键零点/频率特性约束适用滤波器类型
    Type I 奇数 对称 e−jωα∑n=0(N−1)/2a(n)cos⁡(ωn)e^{-j\\omega\\alpha} \\sum_{n=0}^{(N-1)/2} a(n)\\cos(\\omega n)ejωαn=0(N1)/2a(n)cos(ωn) ω=0,π\\omega=0,\\piω=0,π 处均无强制零点 全能型(低通、高通、带通、带阻)
    Type II 偶数 对称 e−jωα∑n=1N/2b(n)cos⁡[ω(n−12)]e^{-j\\omega\\alpha} \\sum_{n=1}^{N/2} b(n)\\cos\\left[\\omega\\left(n-\\frac{1}{2}\\right)\\right]ejωαn=1N/2b(n)cos[ω(n21)] ω=π\\omega = \\piω=π 处必有零点 仅用于 低通、带通(严禁用于高通/带阻)
    Type III 奇数 反对称 je−jωα∑n=1(N−1)/2c(n)sin⁡(ωn)j e^{-j\\omega\\alpha} \\sum_{n=1}^{(N-1)/2} c(n)\\sin(\\omega n)jejωαn=1(N1)/2c(n)sin(ωn) ω=0,π\\omega = 0, \\piω=0,π 处必有零点 仅用于 带通、希尔伯特变换器、微分器
    Type IV 偶数 反对称 je−jωα∑n=1N/2d(n)sin⁡[ω(n−12)]j e^{-j\\omega\\alpha} \\sum_{n=1}^{N/2} d(n)\\sin\\left[\\omega\\left(n-\\frac{1}{2}\\right)\\right]jejωαn=1N/2d(n)sin[ω(n21)] ω=0\\omega = 0ω=0 处必为零点 仅用于 高通、带通、微分器

    6.5.3 线性相位系统零点分布

    由于 h(n)h(n)h(n) 具有对称或反对称性,我们可以证明其系统函数满足:

    H(z)=±z−(N−1)H(z−1)H(z) = \\pm z^{-(N-1)} H(z^{-1})H(z)=±z(N1)H(z1)

    这导致线性相位 FIR 系统的零点(z)分布具有极其独特的互为倒数且共轭的镜像对称规律。

    因此,除非零点刚好落在单位圆上(此时零点关于单位圆成对出现)或落在实轴上,否则一般的线性相位系统零点都是四个一组成非对称镜像分布的。

    下面的脚本将一举生成四种不同类型的线性相位 FIR 系统,并输出它们的时域对称图形及对应的零点分布,供读者直观对比。

    % ————————————————————————-
    % MATLAB Script: Visual Comparison of 4 Types of Linear-Phase FIR Filters
    % Demonstrating Time-Domain Symmetry and Z-Plane Zero Locations
    % ————————————————————————-
    clear; clc; close all;

    %% 1. Define Filter Coefficients for the 4 Types

    % Type I: Odd Length (N=7), Symmetric
    h1 = [1, 2, 3, 4, 3, 2, 1];

    % Type II: Even Length (N=6), Symmetric
    h2 = [1, 2, 3, 3, 2, 1];

    % Type III: Odd Length (N=7), Anti-Symmetric (Center must be 0)
    h3 = [1, 2, 3, 0, 3, 2, 1];

    % Type IV: Even Length (N=6), Anti-Symmetric
    h4 = [1, 2, 3, 3, 2, 1];

    %% 2. Plotting Layout (4 Rows x 2 Columns)
    figure('Position', [100, 50, 950, 900], 'Name', '4 Types of Linear Phase FIR Systems');

    % =========================================================================
    % ROW 1: TYPE I
    % =========================================================================
    subplot(4, 2, 1);
    stem(0:length(h1)1, h1, 'b', 'LineWidth', 2, 'MarkerFaceColor', 'b'); grid on;
    title('Type I: Odd Length (N=7), Symmetric');
    xlabel('Time Index (n)'); ylabel('h[n]');

    subplot(4, 2, 2);
    zplane(h1, 1); grid on;
    title('Type I Z-Plane (No Constraints)');

    % =========================================================================
    % ROW 2: TYPE II
    % =========================================================================
    subplot(4, 2, 3);
    stem(0:length(h2)1, h2, 'r', 'LineWidth', 2, 'MarkerFaceColor', 'r'); grid on;
    title('Type II: Even Length (N=6), Symmetric');
    xlabel('Time Index (n)'); ylabel('h[n]');

    subplot(4, 2, 4);
    zplane(h2, 1); grid on;
    title('Type II Z-Plane (Zero at \\omega = \\pi)');

    % =========================================================================
    % ROW 3: TYPE III
    % =========================================================================
    subplot(4, 2, 5);
    stem(0:length(h3)1, h3, 'g', 'LineWidth', 2, 'MarkerFaceColor', 'g'); grid on;
    title('Type III: Odd Length (N=7), Anti-Symmetric');
    xlabel('Time Index (n)'); ylabel('h[n]');

    subplot(4, 2, 6);
    zplane(h3, 1); grid on;
    title('Type III Z-Plane (Zeros at \\omega = 0, \\pi)');

    % =========================================================================
    % ROW 4: TYPE IV
    % =========================================================================
    subplot(4, 2, 7);
    stem(0:length(h4)1, h4, 'm', 'LineWidth', 2, 'MarkerFaceColor', 'm'); grid on;
    title('Type IV: Even Length (N=6), Anti-Symmetric');
    xlabel('Time Index (n)'); ylabel('h[n]');

    subplot(4, 2, 8);
    zplane(h4, 1); grid on;
    title('Type IV Z-Plane (Zero at \\omega = 0)');

    % Adjust layout spacing
    sgtitle('Comparison of 4 Types of Linear-Phase FIR Filters', 'FontSize', 14, 'FontWeight', 'bold');

    在这里插入图片描述

    关键技术细节复盘:

    • 在观察 Type II 的零点图时,你会发现 ω=π\\omega = \\piω=π(即 z=−1z=-1z=1 处)有一个固定死掉的零点。这就解释了为什么它无法通过高频信号,从而绝对不能用来做高通滤波器。
    • 在观察 Type III 和 IV 的零点图时,注意 z=1z=1z=1 (即 ω=0\\omega = 0ω=0 处)都有一个零点,说明它们天生就具备压制直流成分(DC)的特性。

    本章小结与工程启示

    第六章的内容是串联整个数字信号处理中“分析”与“设计”的黄金桥梁。

    • 我们用 H(z)H(z)H(z) 的极点 ppp 去框定系统的因果稳定性,确保系统在工程上可控、可用。
    • 我们用 全通系统 作为相位校正的利器,在不改变信号能量分布的前提下微调相位。
    • 我们用 最小相位系统 解决因果求逆的问题,为信道盲均衡和系统辨识提供了底层数学方案。
    • 我们用 广义线性相位系统 指导 FIR 滤波器的宏观设计,通过时域的对称性换取频域的无延迟失真。

    掌握了变换域的这四种方法,在接下来面对具体的 FIR 和 IIR 滤波器工程设计时,你将拥有一种高屋建瓴的全局视角。

    *欢迎在评论区留下您的思考!

    赞(0)
    未经允许不得转载:171主机测评 » 《数字信号处理》六、LTI 系统的变换域(z 域与频域)分析
    分享到: 更多 (0)

    评论 抢沙发

    • 昵称 (必填)
    • 邮箱 (必填)
    • 网址