数字信号处理入门:傅里叶变换、Z变换与系统频率响应

从傅里叶变换、Z变换到系统频率响应,系统梳理数字信号处理进阶阶段的核心工具与分析方法。

数字信号处理入门:傅里叶变换、Z变换与系统频率响应

这一讲进入数字信号处理的核心分析层。前两篇文章主要解决“信号是什么、系统怎样在时域里运算”,这一篇则进一步回答三个问题:一个离散信号包含哪些频率成分;如何在复平面上刻画序列与系统;怎样从系统函数直接读出滤波特性、因果性与稳定性。

全文按三条主线展开:先从连续时间傅里叶变换过渡到离散时间傅里叶变换,再从 DTFT 进入 Z 变换,最后回到 LTI 系统,用系统函数和极点零点解释频率响应。


1. 从连续时间傅里叶变换到离散时间傅里叶变换

连续时间信号 f(t)f(t) 的傅里叶变换定义为

F(jΩ)=+f(t)ejΩtdtF(j\Omega)=\int_{-\infty}^{+\infty}f(t)e^{-j\Omega t}\,dt

其逆变换为

f(t)=12π+F(jΩ)ejΩtdΩf(t)=\frac{1}{2\pi}\int_{-\infty}^{+\infty}F(j\Omega)e^{j\Omega t}\,d\Omega

这组公式表达的是一个基本思想:时域中的连续信号,可以分解为不同角频率 Ω\Omega 的复指数信号的加权叠加。

离散时间信号 x(n)x(n) 的自变量不再是连续时间,而是整数序列 nZn\in\mathbb{Z}。对应的频域工具不再是积分型的连续时间傅里叶变换,而是离散时间傅里叶变换,即 DTFT。


2. DTFT 的定义与存在条件

离散时间傅里叶变换定义为

X(ejω)=n=+x(n)ejωnX(e^{j\omega})=\sum_{n=-\infty}^{+\infty}x(n)e^{-j\omega n}

逆变换为

x(n)=12πππX(ejω)ejωndωx(n)=\frac{1}{2\pi}\int_{-\pi}^{\pi}X(e^{j\omega})e^{j\omega n}\,d\omega

这里的 ω\omega 是离散时间角频率,通常单位写作 rad。与连续时间中的 Ω\Omega 不同,它本身是无量纲的频率变量,因为指数项中出现的是 ωn\omega n,而 nn 只是整数编号。

如果

n=+x(n)<\sum_{n=-\infty}^{+\infty}|x(n)|<\infty

则 DTFT 一定存在。这是最常见的充分条件。直观地看,只有当序列的绝对值和收敛时,频域求和式才有稳定的意义。


3. DTFT 的周期性:为什么只看 [π,π][-\pi,\pi]

DTFT 最重要的性质之一是以 2π2\pi 为周期:

X ⁣(ej(ω+2πM))=X(ejω),MZX\!\left(e^{j(\omega+2\pi M)}\right)=X(e^{j\omega}),\qquad M\in\mathbb{Z}

证明很直接:

X ⁣(ej(ω+2πM))=n=+x(n)ej(ω+2πM)n=n=+x(n)ejωnej2πMnX\!\left(e^{j(\omega+2\pi M)}\right) =\sum_{n=-\infty}^{+\infty}x(n)e^{-j(\omega+2\pi M)n} =\sum_{n=-\infty}^{+\infty}x(n)e^{-j\omega n}e^{-j2\pi Mn}

由于 n,Mn,M 都是整数,

ej2πMn=1e^{-j2\pi Mn}=1

因此

X ⁣(ej(ω+2πM))=X(ejω)X\!\left(e^{j(\omega+2\pi M)}\right)=X(e^{j\omega})

这就是为什么分析离散时间频谱时,通常只需考察一个主值区间,如 [π,π][-\pi,\pi][0,2π][0,2\pi]


4. 矩形序列的 DTFT:从求和到频谱主瓣

设长度为 NN 的矩形序列

RN(n)={1,0nN10,其他R_N(n)= \begin{cases} 1,&0\le n\le N-1\\ 0,&\text{其他} \end{cases}

则它的 DTFT 为

X(ejω)=n=0N1ejωnX(e^{j\omega})=\sum_{n=0}^{N-1}e^{-j\omega n}

这是等比数列,求和得

X(ejω)=1ejωN1ejωX(e^{j\omega})=\frac{1-e^{-j\omega N}}{1-e^{-j\omega}}

进一步整理成更适合看幅相结构的形式:

X(ejω)=ejω(N1)/2sin(ωN/2)sin(ω/2)X(e^{j\omega}) =e^{-j\omega(N-1)/2}\cdot\frac{\sin(\omega N/2)}{\sin(\omega/2)}

其中第一项是线性相位项,第二项决定幅度包络。

这条公式很重要。它告诉我们:

  1. 矩形序列的频谱不是“平”的,而是具有主瓣和旁瓣结构。
  2. 序列越长,主瓣越窄,频谱分辨能力越高。
  3. 时域有限长截断,会在频域引入振荡旁瓣。

5. 幅度谱与相位谱

X(ejω)=XR(ω)+jXI(ω)X(e^{j\omega})=X_R(\omega)+jX_I(\omega)

则其幅度谱定义为

X(ejω)=XR2(ω)+XI2(ω)|X(e^{j\omega})|=\sqrt{X_R^2(\omega)+X_I^2(\omega)}

相位谱定义为

argX(ejω)\arg X(e^{j\omega})

对矩形序列而言,幅度谱常写成

X(ejω)=sin(ωN/2)sin(ω/2)\left|X(e^{j\omega})\right| =\left|\frac{\sin(\omega N/2)}{\sin(\omega/2)}\right|

注意这里必须取绝对值。因为 sin(ωN/2)/sin(ω/2)\sin(\omega N/2)/\sin(\omega/2) 在不同频率上会变号,但频谱幅度本质上描述的是复数模长,不允许带符号。


6. 相位为什么会跳变

仍以矩形序列的频谱为例:

X(ejω)=ejω(N1)/2G(ω)X(e^{j\omega}) =e^{-j\omega(N-1)/2}\cdot G(\omega)

其中

G(ω)=sin(ωN/2)sin(ω/2)G(\omega)=\frac{\sin(\omega N/2)}{\sin(\omega/2)}

G(ω)>0G(\omega)>0,相位主要来自指数项

ω(N1)2-\frac{\omega(N-1)}{2}

G(ω)<0G(\omega)<0,则还要额外乘上一个 1-1,这相当于再附加相位 π\pi。因此相位图常常出现跳变。

这也是为什么直接使用 arctan(XI/XR)\arctan(X_I/X_R) 往往不够。因为普通反正切只能给出主值角,不能正确区分第二、第三象限。工程中通常使用 angle 一类的象限感知函数来计算相位。


7. DTFT 的常用性质

7.1 线性

x1(n)X1(ejω),x2(n)X2(ejω)x_1(n)\leftrightarrow X_1(e^{j\omega}),\qquad x_2(n)\leftrightarrow X_2(e^{j\omega})

ax1(n)+bx2(n)aX1(ejω)+bX2(ejω)ax_1(n)+bx_2(n)\leftrightarrow aX_1(e^{j\omega})+bX_2(e^{j\omega})

7.2 时移

x(n)X(ejω)x(n)\leftrightarrow X(e^{j\omega})

x(nn0)ejωn0X(ejω)x(n-n_0)\leftrightarrow e^{-j\omega n_0}X(e^{j\omega})

7.3 频移

x(n)X(ejω)x(n)\leftrightarrow X(e^{j\omega})

ejω0nx(n)X ⁣(ej(ωω0))e^{j\omega_0 n}x(n)\leftrightarrow X\!\left(e^{j(\omega-\omega_0)}\right)

这意味着时域乘指数,频域发生平移。特别地,当 ω0=π\omega_0=\pi 时,

ejπn=(1)ne^{j\pi n}=(-1)^n

它会把频谱整体平移 π\pi

7.4 卷积

y(n)=x(n)h(n)y(n)=x(n)*h(n)

Y(ejω)=X(ejω)H(ejω)Y(e^{j\omega})=X(e^{j\omega})H(e^{j\omega})

这条公式是频域分析最核心的理由:时域卷积在频域中变成乘法。


8. 实序列的共轭对称性

x(n)x(n) 为实序列,则其 DTFT 满足

X(ejω)=X(ejω)X(e^{-j\omega})=X^*(e^{j\omega})

由此可以推出:

X(ejω)|X(e^{j\omega})|

是偶函数,而

argX(ejω)\arg X(e^{j\omega})

通常呈现奇对称结构。

进一步地,若 x(n)x(n) 为实偶序列,则频谱为实偶函数;若 x(n)x(n) 为实奇序列,则频谱为纯虚奇函数。

这些对称性可以显著减少计算量,也有助于检查推导是否出错。


9. 周期序列为什么要引入 DFS

对一般离散序列,我们用 DTFT;但若序列本身是周期序列,那么频谱不再是连续曲线,而会表现为离散谱线,这时更适合使用离散傅里叶级数(DFS)。

x~(n)\tilde{x}(n) 是周期为 NN 的序列,则其 DFS 分析式为

x~(n)=k=0N1X~(k)ej2πkn/N\tilde{x}(n)=\sum_{k=0}^{N-1}\tilde{X}(k)e^{j2\pi kn/N}

系数为

X~(k)=1Nn=0N1x~(n)ej2πkn/N\tilde{X}(k)=\frac{1}{N}\sum_{n=0}^{N-1}\tilde{x}(n)e^{-j2\pi kn/N}

这说明周期序列只需要有限个离散频率点就能完整表示。

例如,把 R4(n)R_4(n)N=8N=8 为周期延拓,频域就不再是一条连续曲线,而是在

ωk=2πk8,k=0,1,,7\omega_k=\frac{2\pi k}{8},\qquad k=0,1,\dots,7

这些点上形成离散谱线。


10. 从模拟频谱到离散频谱

若连续时间信号为 xa(t)x_a(t),采样周期为 TT,则对应离散序列为

x(n)=xa(nT)x(n)=x_a(nT)

采样角频率为

Ωs=2πT\Omega_s=\frac{2\pi}{T}

理想采样后,模拟频谱会以 Ωs\Omega_s 为周期发生重复,因此采样频谱可写为

X^a(jΩ)=1Tk=+Xa ⁣[j(ΩkΩs)]\hat{X}_a(j\Omega)=\frac{1}{T}\sum_{k=-\infty}^{+\infty}X_a\!\left[j(\Omega-k\Omega_s)\right]

这说明“时域离散化”会导致“频域周期化”。这也是离散时间傅里叶变换天然具有周期性的根源。


11. 从 DTFT 走向 Z 变换

DTFT 很强,但它也有局限:有些序列的 DTFT 不存在,或者不方便直接研究系统收敛性和稳定性。为了解决这些问题,引入更一般的 Z 变换。

把 DTFT 中的单位圆变量

ejωe^{j\omega}

推广为一般复变量

z=rejωz=re^{j\omega}

就得到 Z 变换的定义。


12. Z 变换的定义

双边 Z 变换定义为

X(z)=n=+x(n)znX(z)=\sum_{n=-\infty}^{+\infty}x(n)z^{-n}

其中

z=rejωz=re^{j\omega}

r=1r=1 时,zz 落在单位圆上,Z 变换就退化为 DTFT。

若只对右边序列讨论,也常用单边 Z 变换,但在系统理论中,双边定义更适合解释 ROC、因果性和稳定性。


13. ROC:收敛域为什么必须写出来

不是每个 zz 都能使级数

n=+x(n)zn\sum_{n=-\infty}^{+\infty}x(n)z^{-n}

收敛。所有使其收敛的 zz 所组成的区域,称为收敛域(Region of Convergence,ROC)。

因此,一个序列不能只写成 X(z)X(z),而应写成

X(z)+ROCX(z)+\text{ROC}

原因在于:同一个代数表达式,在不同 ROC 下可能对应不同的时域序列。


14. 极点、零点与 ROC 的基本关系

X(z)=P(z)Q(z)X(z)=\frac{P(z)}{Q(z)}

P(z)=0P(z)=0 的根称为零点,Q(z)=0Q(z)=0 的根称为极点。

极点对应函数发散的位置,所以 ROC 一定不能包含极点。常见结论如下:

  1. 有限长序列的 ROC 通常是整个 zz 平面,可能除去 z=0z=0z=z=\infty
  2. 右边序列的 ROC 在最外极点之外。
  3. 左边序列的 ROC 在最内极点之内。
  4. 双边序列的 ROC 位于两个圆环之间。


15. 几个典型序列的 Z 变换

15.1 右边指数序列

x(n)=anu(n)x(n)=a^n u(n)

X(z)=n=0+anzn=n=0+(az1)n=11az1X(z)=\sum_{n=0}^{+\infty}a^n z^{-n} =\sum_{n=0}^{+\infty}(az^{-1})^n =\frac{1}{1-az^{-1}}

ROC 为

z>a|z|>|a|

15.2 左边指数序列

x(n)=anu(n1)x(n)=-a^n u(-n-1)

X(z)=11az1X(z)=\frac{1}{1-az^{-1}}

但 ROC 为

z<a|z|<|a|

这说明相同的代数式,因为 ROC 不同,时域序列完全不同。

15.3 有限长序列

x(n)x(n) 只在有限个点非零,则

X(z)=n=n1n2x(n)znX(z)=\sum_{n=n_1}^{n_2}x(n)z^{-n}

它本质上是有限项和,因此几乎处处收敛。ROC 通常是整个平面,只需注意是否排除 z=0z=0z=z=\infty


16. 逆 Z 变换的思想

已知 X(z)X(z) 和 ROC,要求 x(n)x(n),这就是逆 Z 变换。常见做法有三种:

  1. 查表法:直接套常见变换对。
  2. 幂级数展开法:根据 ROC 决定展开成 z1z^{-1} 的正幂级数,还是 zz 的正幂级数。
  3. 部分分式展开法:特别适合有理函数。

关键点不在“会不会展开”,而在“展开方向由 ROC 决定”。没有 ROC,很多答案都不唯一。


17. Z 变换与时移、卷积

x(n)X(z)x(n)\leftrightarrow X(z)

则时移性质为

x(nn0)zn0X(z)x(n-n_0)\leftrightarrow z^{-n_0}X(z)

卷积性质为

y(n)=x(n)h(n)Y(z)=X(z)H(z)y(n)=x(n)*h(n)\leftrightarrow Y(z)=X(z)H(z)

这与 DTFT 的卷积性质完全平行。也正因如此,Z 变换非常适合分析 LTI 系统。


18. Z 变换与拉普拉斯变换的关系

若把连续时间中的复频率变量写为

s=σ+jΩs=\sigma+j\Omega

采样后令

z=esT=eσTejΩTz=e^{sT}=e^{\sigma T}e^{j\Omega T}

就得到从 ss 平面到 zz 平面的映射关系。

于是:

  1. ss 平面虚轴 σ=0\sigma=0 映射到 zz 平面的单位圆。
  2. ss 平面左半平面 σ<0\sigma<0 映射到单位圆内部。
  3. ss 平面右半平面 σ>0\sigma>0 映射到单位圆外部。

这条对应关系非常关键,因为它把连续系统稳定性与离散系统稳定性统一到了“位置相对边界”的几何图像上。


19. 系统函数 H(z)H(z)

对 LTI 系统,单位冲激响应为 h(n)h(n),其 Z 变换定义为系统函数:

H(z)=Z[h(n)]H(z)=Z[h(n)]

若输入为 x(n)x(n),输出为 y(n)y(n),则

y(n)=x(n)h(n)y(n)=x(n)*h(n)

在 Z 域中变成

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

因此

H(z)=Y(z)X(z)H(z)=\frac{Y(z)}{X(z)}

这条公式说明系统函数就是系统对不同输入频率成分和复指数成分的总体作用规则。


20. 频率响应是系统函数在单位圆上的取值

系统的频率响应定义为

H(ejω)=H(z)z=ejωH(e^{j\omega})=H(z)\big|_{z=e^{j\omega}}

只要 H(z)H(z) 的 ROC 包含单位圆,频率响应就存在。其含义是:把复平面上的系统函数限制到单位圆上,就得到系统对各个离散角频率的放大与相移作用。

若输入是复指数序列

x(n)=ejωnx(n)=e^{j\omega n}

则对于 LTI 系统,输出一定形如

y(n)=H(ejω)ejωny(n)=H(e^{j\omega})e^{j\omega n}

这说明复指数信号是 LTI 系统的特征函数,而对应特征值就是 H(ejω)H(e^{j\omega})


21. 因果性、稳定性与 ROC

对 LTI 系统:

  1. 因果的充要条件是 h(n)=0, n<0h(n)=0,\ n<0,也即冲激响应为右边序列。
  2. 稳定的充要条件是
n=+h(n)<\sum_{n=-\infty}^{+\infty}|h(n)|<\infty

从 Z 变换角度看,又可得到非常实用的判据:

  1. 因果系统的 ROC 在最外极点之外,并包含 z=z=\infty
  2. 稳定系统的 ROC 必须包含单位圆。

因此对有理系统来说:

  1. 若系统既因果又稳定,则所有极点都必须位于单位圆内。
  2. 若单位圆不在 ROC 内,则频率响应不存在或系统不稳定。

22. 系统函数的有理形式

线性常系数差分方程对应的系统函数通常可写成

H(z)=m=0Mbmzmk=0NakzkH(z)=\frac{\sum_{m=0}^{M}b_m z^{-m}}{\sum_{k=0}^{N}a_k z^{-k}}

这说明差分方程中的系数,最终在频域里表现为极点和零点的分布。系统分析因此不再只是“递推算输出”,而是可以直接转化为“读极点零点图”。


23. 极点零点如何影响频率响应

若系统函数写成

H(z)=Am=1M(zcm)k=1N(zdk)H(z)=A\frac{\prod_{m=1}^{M}(z-c_m)}{\prod_{k=1}^{N}(z-d_k)}

在单位圆上取值 z=ejωz=e^{j\omega},得到

H(ejω)=Am=1M(ejωcm)k=1N(ejωdk)H(e^{j\omega}) =A\frac{\prod_{m=1}^{M}(e^{j\omega}-c_m)}{\prod_{k=1}^{N}(e^{j\omega}-d_k)}

于是幅度为

H(ejω)=Am=1Mejωcmk=1Nejωdk\left|H(e^{j\omega})\right| =|A|\frac{\prod_{m=1}^{M}|e^{j\omega}-c_m|}{\prod_{k=1}^{N}|e^{j\omega}-d_k|}

这说明:

  1. 单位圆上某点若靠近零点,响应会被压低。
  2. 单位圆上某点若靠近极点,响应会被抬高。

这就是极点零点图能够“看出”滤波器频率选择性的根本原因。


24. 一阶低通系统的例子

考虑系统函数

H(z)=11bz1=zzbH(z)=\frac{1}{1-bz^{-1}}=\frac{z}{z-b}

其中 0<b<10<b<1。它有一个零点 z=0z=0,一个极点 z=bz=b

bb 接近 1 时,极点逐渐逼近单位圆上的 ω=0\omega=0 附近,因此低频处的增益更强,而高频相对被压制,表现出明显的低通特性。

这也是“极点靠近哪一段单位圆,就增强哪一段频率”的一个典型示例。


25. 梳状陷波器的例子:H(z)=1zNH(z)=1-z^{-N}

考虑

H(z)=1zNH(z)=1-z^{-N}

可化为

H(z)=zN1zNH(z)=\frac{z^N-1}{z^N}

因此它在单位圆上有 NN 个等间隔零点:

zk=ej2πk/N,k=0,1,,N1z_k=e^{j2\pi k/N},\qquad k=0,1,\dots,N-1

这些零点恰好落在单位圆上,所以对应频率点的响应为 0,从而形成一组等间隔陷波。

这类系统常被称为梳状滤波器,因为其幅频响应像梳齿一样周期性出现深陷。


26. 一组必须记住的公式

DTFT:

X(ejω)=n=+x(n)ejωnX(e^{j\omega})=\sum_{n=-\infty}^{+\infty}x(n)e^{-j\omega n}

DTFT 逆变换:

x(n)=12πππX(ejω)ejωndωx(n)=\frac{1}{2\pi}\int_{-\pi}^{\pi}X(e^{j\omega})e^{j\omega n}\,d\omega

DFS:

X~(k)=1Nn=0N1x~(n)ej2πkn/N\tilde{X}(k)=\frac{1}{N}\sum_{n=0}^{N-1}\tilde{x}(n)e^{-j2\pi kn/N}

Z 变换:

X(z)=n=+x(n)znX(z)=\sum_{n=-\infty}^{+\infty}x(n)z^{-n}

卷积定理:

Y(z)=X(z)H(z),Y(ejω)=X(ejω)H(ejω)Y(z)=X(z)H(z),\qquad Y(e^{j\omega})=X(e^{j\omega})H(e^{j\omega})

频率响应:

H(ejω)=H(z)z=ejωH(e^{j\omega})=H(z)\big|_{z=e^{j\omega}}

稳定性判据:

n=+h(n)<\sum_{n=-\infty}^{+\infty}|h(n)|<\infty

27. 易错点整理

  1. DTFT 的频率变量是周期性的,不能把 X(ejω)X(e^{j\omega}) 当成非周期函数看待。
  2. 频谱幅度一定要取模,不能把实部或某个代数表达式直接当作幅度谱。
  3. 仅给出 X(z)X(z) 的代数式并不能唯一确定 x(n)x(n),必须同时给出 ROC。
  4. “有理函数相同”不代表“时域序列相同”,ROC 不同就可能对应右边序列、左边序列或双边序列。
  5. 频率响应不是任意把 zz 换成 ejωe^{j\omega} 就结束,前提是单位圆必须落在 ROC 内。
  6. 判断因果稳定性时,不能只看极点位置,还要结合 ROC 一起判断。

28. 全文总结

这一篇的核心逻辑可以概括为一句话:DTFT 负责回答“有哪些频率”,Z 变换负责回答“这些频率与收敛性怎样放到复平面里看”,系统函数则负责回答“系统对这些频率到底做了什么”。

如果按学习顺序复习,建议这样抓主线:

  1. 先掌握 DTFT 的定义、周期性、时移和卷积性质。
  2. 再理解 Z 变换为什么必须带 ROC,以及 ROC 如何区分不同序列。
  3. 最后把 H(z)H(z)、单位圆、极点零点图联系起来,建立对滤波器频率响应的几何直觉。

当这三部分打通后,数字信号处理就不再只是公式堆叠,而会变成一套非常清晰的分析语言:时域看结构,频域看成分,复平面看系统。

Back to archive

Discussion

Comments

Post

Share questions, corrections, or extra notes about this post.