数字信号处理入门:从符号到 Z 变换、DFT、IIR 与 FIR
这篇文章按“你什么都不懂”的状态来写。先不急着背公式,先把每个符号、每个概念的“人话意思”弄清楚。数字信号处理最怕的不是公式多,而是看到 x(n)、H(z)、X(k)、ω、ROC 就不知道它们在干什么。
先记住一句总纲:
数字信号处理,就是研究一串数字怎样变化、怎样分析频率、怎样设计滤波器。
讲义里也把数字信号处理概括为:信号是承载信息的对象,数字表示用离散数据记录,处理表示对这些数据进行分析、变换、滤波、压缩、识别或重建。

0. 先把符号看懂
1. x(t) 和 x(n) 是什么
x(t) 表示连续时间信号。
这里的 t 是连续时间,比如
t=0.1,t=0.15,t=2.367
都可以取。你可以把 x(t) 想象成一条连续曲线,比如声音、电压、温度。
x(n) 表示离散时间信号。
这里的 n 只能是整数,比如
n=0,1,2,3,⋯
所以 x(n) 不是一条连续曲线,而是一串点:
x(0),x(1),x(2),x(3),⋯
讲义里也强调,离散时间信号可以理解为一串按整数编号排列的数据点。因此:
x(t)=连续曲线
x(n)=一串数字点
考试中,看到 n,你就知道这是离散时间信号。
2. y(n) 是什么
x(n) 一般表示输入信号,y(n) 一般表示输出信号。
比如一个系统把输入变成输出:
x(n)→系统→y(n)
也可以写成:
y(n)=T[x(n)]
这里 T[⋅] 表示系统对输入做的运算。它可以是延迟、加法、滤波、放大、差分等。讲义中也说明,离散时间系统就是把输入序列 x(n) 经过某种运算后变成输出序列 y(n)。

3. δ(n) 是什么
δ(n) 叫单位冲激序列,也叫单位抽样序列,定义为
δ(n)={1,0,n=0n=0
人话解释:它就是一个只在 n=0 处冒出来的单点信号。
如果写成 δ(n−2),意思是这个单点移动到 n=2:
δ(n−2)={1,0,n=2n=2
为什么它重要?因为任何离散序列都可以拆成很多个冲激点相加。比如:
x(n)=2δ(n)+3δ(n−1)−δ(n−2)
意思是
x(0)=2,x(1)=3,x(2)=−1

4. u(n) 是什么
u(n) 叫单位阶跃序列,一般定义为
u(n)={1,0,n≥0n<0
人话解释:从 n=0 开始,它一直等于 1。
所以
anu(n)
表示从 n=0 开始的指数序列,因为 u(n) 把 n<0 的部分都挡掉了。

5. h(n) 是什么
h(n) 叫单位冲激响应。
意思是:系统输入一个 δ(n),系统输出什么,就叫 h(n)。
δ(n)→系统→h(n)
对 LTI 系统来说,h(n) 非常重要。只要知道 h(n),任何输入 x(n) 的输出都可以用卷积算出来:
y(n)=x(n)∗h(n)
讲义中直接把冲激响应比作 LTI 系统的身份证,因为它能描述系统自身特性。
6. ∗ 是什么
∗ 表示卷积。卷积公式是
y(n)=x(n)∗h(n)=m=−∞∑+∞x(m)h(n−m)
你现在不必一上来就怕这个公式。它的人话意思是:
系统输出 = 输入信号和系统冲激响应的滑动重叠求和
讲义中也解释,卷积可以理解为滑动、重叠、相乘、求和。

7. j 是什么
j 是虚数单位。在数学里常写 i,但电路和信号里常写 j,因为 i 容易和电流混淆。
j2=−1
复数一般写成
a+jb
其中 a 是实部,b 是虚部。
8. ejω 是什么
这是复指数。欧拉公式是
ejω=cosω+jsinω
所以 ejω 可以理解为单位圆上的一个旋转点。在数字信号处理中,很多频率分析都用 ejω 表示,因为正弦、余弦都可以用复指数表示。
9. ω 和 Ω 有什么区别
ω 是离散时间角频率,一般出现在
X(ejω),H(ejω)
它通常只看
−π≤ω≤π
或者
0≤ω≤2π
因为离散时间频谱具有 2π 周期性。
Ω 是连续时间角频率,一般出现在模拟滤波器中,比如
Ha(jΩ)
简单记忆:
ω:数字频率
Ω:模拟频率
10. z 是什么
z 是复变量,可以写成
z=rejω
其中 r 表示半径,ω 表示角度。
Z 变换就是把信号放到 z 平面里分析。讲义里说,把 DTFT 中的单位圆变量 ejω 推广成一般复变量 z=rejω,就得到 Z 变换。
当 r=1 时:
z=ejω
这就是单位圆。
所以:
DTFT 是 Z 变换在单位圆上的取值
第一轮:Z 变换、系统函数、因果稳定、零极点分析
这一轮最重要,因为它最容易出大题。你先记住一句话:
Z 变换是用来分析离散系统的工具。
它能解决三个问题:第一,序列对应什么表达式;第二,系统是否因果、是否稳定;第三,零极点怎样影响频率响应。
1. Z 变换定义
Z 变换定义为
X(z)=n=−∞∑+∞x(n)z−n
这里每个符号都要懂:
- x(n):原来的离散序列
- X(z):Z 变换之后的表达式
- n:整数下标
- z:复变量
- z−n:Z 变换里的基本项
你可以把它理解为:
Z 变换把时域序列 x(n) 变成复平面函数 X(z)
2. ROC 是什么
ROC 是 Region of Convergence,中文叫收敛域。
Z 变换是一个无穷求和:
X(z)=n=−∞∑+∞x(n)z−n
这个求和不是对所有 z 都能收敛。能让它收敛的 z 的范围,就叫 ROC。
人话解释:
ROC 就是这个 Z 变换公式在哪些地方成立。
考试重点是:写 Z 变换时不能只写 X(z),还要写 ROC。因为同一个 X(z),ROC 不同,原来的 x(n) 可能不同。
例如
X(z)=1−az−11
如果 ROC 是
∣z∣>∣a∣
对应右边序列
x(n)=anu(n)
如果 ROC 是
∣z∣<∣a∣
对应左边序列
x(n)=−anu(−n−1)
所以:
X(z) 相同,ROC 不同,x(n) 不同

3. 右边序列、左边序列、双边序列
右边序列:从某个点开始往右有值。典型形式:
anu(n)
右边序列的 ROC 在最外极点之外。
左边序列:往左边有值。典型形式:
−anu(−n−1)
左边序列的 ROC 在最内极点之内。
双边序列:左右两边都有值,它的 ROC 通常是两个极点之间的圆环。
只要记住:
右边序列:ROC 向外
左边序列:ROC 向内
双边序列:ROC 在中间一圈
4. 极点和零点是什么
如果
X(z)=Q(z)P(z)
那么:
- P(z)=0 的根叫零点
- Q(z)=0 的根叫极点
人话解释:
- 零点:让函数变成 0 的位置
- 极点:让函数趋于无穷大或发散的位置
例如
H(z)=z−0.5z
分子 z=0,所以零点是
z=0
分母 z−0.5=0,所以极点是
z=0.5

5. 单位圆是什么
单位圆就是复平面中半径为 1 的圆:
∣z∣=1
因为
z=ejω
时,∣z∣=1。
为什么单位圆重要?因为频率响应就是系统函数在单位圆上的取值:
H(ejω)=H(z)z=ejω
但必须注意:单位圆必须在 ROC 内,频率响应才存在。所以要补一句:
前提:ROC 包含单位圆
6. 系统函数 H(z) 是什么
对 LTI 系统,系统函数定义为
H(z)=Z[h(n)]
也就是单位冲激响应 h(n) 的 Z 变换。
因为 LTI 系统满足
y(n)=x(n)∗h(n)
Z 域中卷积变乘法:
Y(z)=X(z)H(z)
所以
H(z)=X(z)Y(z)
人话解释:
H(z) 就是系统的数学说明书
7. 因果系统怎么判断
因果的意思是:输出不能提前知道未来。
例如
y(n)=x(n)+x(n−1)
是因果系统,因为它只用当前输入和过去输入。
但是
y(n)=x(n+1)
不是因果系统,因为它用了未来输入。
对 LTI 系统,最重要条件是
因果⟺h(n)=0,n<0
在 Z 域中,如果系统是有理系统,则
因果系统的 ROC 在最外极点之外
8. 稳定系统怎么判断
稳定的意思是:输入不爆炸,输出也不能爆炸。正式说法叫 BIBO 稳定,也就是
有界输入产生有界输出
对 LTI 系统,稳定条件是
n=−∞∑+∞∣h(n)∣<∞
在 Z 域中,稳定条件是
ROC 包含单位圆
所以,如果一个系统既因果又稳定,而且是有理系统,那么所有极点必须在单位圆内:
因果稳定有理系统⟺所有极点在单位圆内

9. 零极点怎样看滤波器
系统函数一般可以写成
H(z)=A∏(z−dk)∏(z−cm)
这里 cm 是零点,dk 是极点。
在单位圆上
z=ejω
频率响应幅度为
∣H(ejω)∣=∣A∣∏∣ejω−dk∣∏∣ejω−cm∣
人话很简单:单位圆上的某个频率点靠近零点,该频率会被压低;靠近极点,该频率会被增强。
所以:
如果极点靠近 ω=0,低频增强,可能是低通;如果零点靠近 ω=0,低频被压制,可能是高通。
10. 这一轮你必须会的题型
第一类:给 X(z) 和 ROC,求 x(n)。
第二类:给 H(z),判断因果稳定。
第三类:给零极点图,判断滤波器类型。
小例题:由 X(z) 与 ROC 反推序列
已知
X(z)=1−0.5z−11
若 ROC 为 ∣z∣>0.5,求 x(n),并判断它是不是右边序列。
解答:
先看公式
1−az−11⟺anu(n),ROC: ∣z∣>∣a∣
这里 a=0.5,而题目给出的 ROC 恰好是 ∣z∣>0.5,所以
x(n)=0.5nu(n)
因为它在 n=0 之后向右展开,所以它是右边序列。
第二轮:DFT、圆周卷积、FFT
这一轮先不讲难题,先讲它到底是什么。你先把这一轮理解成一句话:
DFT 是把一段有限长数字序列,变成有限个频率信息。
你现在先别急着背公式,先搞懂下面这几个问题。
原来我们手里有一串数:
x(0),x(1),x(2),x(3),⋯
这叫时域序列。意思是:它是按时间顺序排列的一串数字。
但是我们还想知道:这串数字里面有没有低频成分?有没有高频成分?哪些频率比较强?哪些频率比较弱?
这就需要把它从时间角度换到频率角度去看。DFT 做的就是这件事。讲义里也说,计算机不能直接处理连续频率曲线,所以 DFT 要解决频谱如何离散化,以及怎样快速计算两个问题。
1. DFT 全名是什么
DFT 是 Discrete Fourier Transform,中文叫离散傅里叶变换。
拆开理解:
- 离散,表示我们处理的是一串点,不是连续曲线。
- 傅里叶变换,表示把信号从时间角度变成频率角度。
所以 DFT 的人话解释是:
DFT 把一串有限长度的数字,分解成若干个频率成分。
例如你有一段序列:
x(n)={1,2,3,4}
它在时域里只是 4 个数。
做 DFT 以后,会得到:
X(k)={X(0),X(1),X(2),X(3)}
这些 X(k) 就是频域里的 4 个频率点。
2. x(n) 是什么
x(n) 是时域序列。
比如:
x(n)={1,2,3,4}
意思是:
x(0)=1,x(1)=2,x(2)=3,x(3)=4
这里的 n 是时域下标,也就是第几个采样点。
所以你看到 x(n),就想成:
x(n)=原来的那串数字
3. X(k) 是什么
X(k) 是 DFT 之后得到的频域序列。
这里的 k 不是时间下标,而是频率下标。
比如做 4 点 DFT,得到:
X(0),X(1),X(2),X(3)
它们分别表示 4 个频率位置上的信息。
所以你看到 X(k),就想成:
X(k)=第 k 个频率点的结果
注意大小写:
x(n):时域
X(k):频域
小写 x 是原序列,大写 X 是变换后的频谱。
4. N 是什么
N 是 DFT 点数。
如果你做 4 点 DFT,那么
N=4
如果你做 8 点 DFT,那么
N=8
做 N 点 DFT,就会得到 N 个频率点:
X(0),X(1),⋯,X(N−1)
5. DFT 的公式是什么
N 点 DFT 定义为:
X(k)=n=0∑N−1x(n)e−jN2πkn
你先不要怕这个公式。把它翻译成人话就是:
第 k 个频率点 X(k),等于原序列每个点乘上一个旋转因子后全部加起来。
逐个符号解释:
- x(n):原来的第 n 个数字
- n:时域下标,从 0 到 N−1
- k:频域下标,表示第几个频率点
- N:DFT 总点数
- j:虚数单位,满足 j2=−1
- e−jN2πkn:复指数,可以理解成单位圆上的旋转量
- ∑:求和,把所有 n 对应的结果加起来
所以公式可以读成:
X(k)=把 x(0),x(1),⋯,x(N−1) 按第 k 个频率规则加权求和
讲义中给出的 DFT 定义也是:把 N 个时域样本 x(0),x(1),⋯,x(N−1) 变成 N 个频域样本 X(0),X(1),⋯,X(N−1)。
6. DFT 到底在算什么
你可以这样理解:一串信号可能由很多频率成分组成。
比如一个声音信号,里面可能有低音、中音、高音。
在时域里,你只看到波形怎么变化。
在频域里,你能看到哪些频率强,哪些频率弱。
DFT 就是把
一串随时间变化的数字
变成
一串表示频率强弱的数字
也就是
x(n)→X(k)
7. X(0) 表示什么
X(0) 是第 0 个频率点。它通常表示直流分量,也就是信号的平均趋势。
因为当 k=0 时:
e−jN2πkn=e0=1
所以
X(0)=n=0∑N−1x(n)
也就是说,X(0) 就是所有时域样本加起来。
如果序列整体偏大,X(0) 就大;如果序列正负抵消,X(0) 可能比较小。
8. X(1),X(2),⋯ 表示什么
它们表示不同频率位置上的成分。
k 越大,通常表示频率越高。但注意,DFT 的频率是周期的,所以不是简单地一直越来越高。对考试来说,你先记住:
k 是频率编号
X(k) 是第 k 个频率点的大小和相位信息
9. IDFT 是什么
DFT 是从时域到频域:
x(n)→X(k)
IDFT 是反过来,从频域回到时域:
X(k)→x(n)
IDFT 叫逆离散傅里叶变换,公式是:
x(n)=N1k=0∑N−1X(k)ejN2πkn
你要记住 DFT 和 IDFT 的区别:
DFT:
X(k)=n=0∑N−1x(n)e−jN2πkn
IDFT:
x(n)=N1k=0∑N−1X(k)ejN2πkn
区别有两个:
- DFT 指数是负号
- IDFT 指数是正号,并且前面多了一个 1/N
讲义中也给出了对应的反变换公式,说明 IDFT 可以从这 N 个频域样本恢复主值区间内的时域序列。
10. 为什么 DFT 里面有周期延拓
这是你理解圆周移位和圆周卷积的关键。
DFT 只处理有限长序列,比如:
x(n)={1,2,3,4}
但是在 DFT 的世界里,它不是只看这一段,而是默认这段序列会不断重复:
1,2,3,4,1,2,3,4,1,2,3,4,⋯
这叫周期延拓。
也就是说,DFT 默认:
x(n+N)=x(n)
例如 N=4 时:
x(4)=x(0),x(5)=x(1),x(6)=x(2),x(7)=x(3)
讲义中也强调,DFT 中有限长序列总是隐含周期性,有限长序列被看成周期序列的一个主值区间。
这就是为什么后面会出现圆周移位和圆周卷积。因为 DFT 不是把序列放在一条直线上看,而是把它绕成一个圆来看。
11. DFT 和 DTFT 的区别
DTFT 是
X(ejω)=n=−∞∑+∞x(n)e−jωn
这里的 ω 是连续变化的,所以 X(ejω) 是一条连续频谱曲线。
DFT 是
X(k)=n=0∑N−1x(n)e−jN2πkn
这里的 k 只能取
k=0,1,2,⋯,N−1
所以 DFT 只得到 N 个频率点。
区别就是:
DTFT:连续频谱
DFT:有限个频率点
12. DFT 和 Z 变换、DTFT 的关系
DFT 可以看成 Z 变换在单位圆上的 N 点采样:
X(k)=X(z)z=ejN2πk
也可以看成 DTFT 在 N 个频率点上的采样:
X(k)=X(ejω)ω=N2πk
人话解释:
DFT 不是新东西,它就是从连续频谱上取几个点

13. 补零是什么意思
如果原序列长度是 M,但题目要求做 N 点 DFT,并且 N>M,就要在后面补零。
例如:
x(n)={1,2,3}
做 5 点 DFT,就写成:
{1,2,3,0,0}
补零不会增加新信息,只是让频域采样更密。
13.1 按定义怎么一步一步计算 DFT
前面讲的是 DFT 的含义,这里单独讲“题目真让你算的时候该怎么下手”。这一节先不走 FFT,只按定义直接代入。
先记住一句话:
DFT 就是把一串数,分别代入不同的频率编号 k,算出 X(k)。
13.1.1 DFT 的计算公式
N 点 DFT 的定义是
X(k)=n=0∑N−1x(n)e−jN2πkn
也常写成
X(k)=n=0∑N−1x(n)WNkn
其中
WN=e−jN2π
WN 叫旋转因子。你可以把它理解为:算 DFT 时,会不断取这个复数的不同次幂。
所以 DFT 公式也可以写成
X(k)=x(0)WN0k+x(1)WN1k+x(2)WN2k+⋯+x(N−1)WN(N−1)k
13.1.2 DFT 的直接计算步骤
如果题目给你
x(n)={x(0),x(1),⋯,x(N−1)}
让你求 N 点 DFT,就按下面五步走:
第一步,确定 N。
第二步,写出旋转因子
WN=e−jN2π
第三步,列出常用的 WN0,WN1,⋯,WNN−1。
第四步,分别计算
X(0),X(1),⋯,X(N−1)
第五步,整理成
X(k)={X(0),X(1),⋯,X(N−1)}
13.1.3 最简单的 2 点 DFT
设
x(n)={a,b}
也就是
x(0)=a,x(1)=b
这里 N=2,旋转因子为
W2=e−j22π=e−jπ=−1
2 点 DFT 只有两个结果:X(0) 和 X(1)。
先算 X(0):
X(0)=x(0)W20⋅0+x(1)W21⋅0=a+b
再算 X(1):
X(1)=x(0)W20⋅1+x(1)W21⋅1=a+bW2=a−b
所以
{a,b} 的 2 点 DFT 是 {a+b, a−b}
例如
x(n)={1,3}
则
X(0)=1+3=4,X(1)=1−3=−2
因此
DFT[{1,3}]={4,−2}
13.1.4 重点例子:4 点 DFT 怎么算
现在看最常见的小例子:
x(n)={1,2,3,4}
也就是
x(0)=1,x(1)=2,x(2)=3,x(3)=4
这里 N=4,所以要算
X(0),X(1),X(2),X(3)
先求旋转因子:
W4=e−j42π=e−j2π
根据欧拉公式
e−j2π=cos2π−jsin2π=−j
所以
W4=−j
接着列出常用次幂:
W40=1,W41=−j,W42=−1,W43=j,W44=1
因此 4 点 DFT 最常用的表是
W40=1,W41=−j,W42=−1,W43=j
DFT 公式写成
X(k)=n=0∑3x(n)W4kn
代入 x(0)=1,x(1)=2,x(2)=3,x(3)=4 得
X(k)=1⋅W40k+2⋅W41k+3⋅W42k+4⋅W43k
现在分别计算。
先算 X(0)。令 k=0,则
X(0)=1⋅W40+2⋅W40+3⋅W40+4⋅W40
因为 W40=1,所以
X(0)=1+2+3+4=10
因此
X(0)=10
再算 X(1)。令 k=1,则
X(1)=1⋅W40+2⋅W41+3⋅W42+4⋅W43
代入 W40=1,W41=−j,W42=−1,W43=j,得到
X(1)=1+2(−j)+3(−1)+4j
整理可得
X(1)=1−2j−3+4j=−2+2j
因此
X(1)=−2+2j
再算 X(2)。令 k=2,则
X(2)=1⋅W40+2⋅W42+3⋅W44+4⋅W46
利用周期性 W44=1, W46=W44+2=W42=−1,得
X(2)=1+2(−1)+3(1)+4(−1)
所以
X(2)=1−2+3−4=−2
因此
X(2)=−2
最后算 X(3)。令 k=3,则
X(3)=1⋅W40+2⋅W43+3⋅W46+4⋅W49
利用周期性 W46=W42=−1, W49=W48+1=W41=−j,得
X(3)=1+2j+3(−1)+4(−j)
整理可得
X(3)=1+2j−3−4j=−2−2j
因此
X(3)=−2−2j
所以最终结果是
X(k)={10, −2+2j, −2, −2−2j}
也就是
X(0)=10,X(1)=−2+2j,X(2)=−2,X(3)=−2−2j
13.1.5 再看三个小例子
第一个例子:
x(n)={5,1}
因为是 2 点 DFT,直接用
{a,b}→{a+b, a−b}
所以
X(0)=5+1=6,X(1)=5−1=4
因此
DFT[{5,1}]={6,4}
第二个例子:
x(n)={1,0,0,0}
则
X(k)=1⋅W40k+0+0+0=1
所以对所有 k 都有
X(k)=1
因此
DFT[{1,0,0,0}]={1,1,1,1}
这个例子说明:单位冲激序列在频域中的各个频率点完全一样。
第三个例子:
x(n)={1,1,1,1}
则
X(0)=1+1+1+1=4
X(1)=1+W4+W42+W43=1+(−j)+(−1)+j=0
X(2)=1+W42+W44+W46=1+(−1)+1+(−1)=0
X(3)=1+W43+W46+W49=1+j+(−1)+(−j)=0
因此
DFT[{1,1,1,1}]={4,0,0,0}
这个例子说明:常数序列只有直流分量,也就是只有 X(0) 不为零。
13.1.6 这一小节的结论
你可以把按定义计算 DFT 的流程压成五步:
第一,看序列有几个数,先确定 N。
第二,写
WN=e−jN2π
第三,列出 WN 的常用次幂。
第四,分别代入计算
X(0),X(1),⋯,X(N−1)
第五,整理成
X(k)={X(0),X(1),⋯,X(N−1)}
最重要的两个记忆点是
{a,b}→{a+b, a−b}
以及 4 点 DFT 的旋转因子表
W40=1,W41=−j,W42=−1,W43=j
最后再记一句:
DFT 是定义,FFT 是快速算法;两者算出来的结果完全一样。
14. 圆周移位是什么
先看普通移位。
原序列:
{1,2,3,4}
如果向右移 1 位,普通移位可能变成:
{0,1,2,3,4}
前面补了一个 0。
圆周移位不补 0,而是把移出去的部分绕回来。
原序列
{1,2,3,4}
向右圆周移位 1 位,结果是:
{4,1,2,3}
向左圆周移位 1 位,结果是:
{2,3,4,1}
所以圆周移位的人话解释是:
把序列首尾接起来,在圆上移动
讲义中的说法是:如果某个样本从主值区间一端移出去,它会从另一端重新移进来。
15. 卷积是什么
在讲圆周卷积之前,你先知道普通卷积是什么。
普通卷积记作:
y(n)=x(n)∗h(n)
它的人话意思是:
一个序列滑过另一个序列,重叠部分相乘再相加
它常用来表示 LTI 系统输出:
输入 x(n)→系统 h(n)→输出 y(n)
也就是:
y(n)=x(n)∗h(n)
你先把卷积想成滑动重叠求和就行。
16. 圆周卷积是什么
普通卷积是在直线上滑动。
圆周卷积是在圆上滑动。
因为 DFT 默认序列周期重复,所以 DFT 里面对应的是圆周卷积,也叫循环卷积,记作:
x1(n)⊛Lx2(n)
或者有些教材写成
x1(n)⊗x2(n)
这里的 L 表示圆周卷积长度。
圆周卷积的人话解释是:
先把两个序列都看成长度为 L 的周期序列,再在圆上做卷积
如果卷积结果超出了长度 L,它不会继续往后排,而是绕回前面。
这就是圆周卷积和普通线性卷积最大的区别。
17. 为什么圆周卷积容易出错
因为普通线性卷积的结果可能比较长。
如果你用太短的圆来装它,后面的尾巴会绕回前面,和前面的结果加在一起。
这叫混叠。
人话说:
圆太短,结果装不下,尾巴绕回来,答案就乱了
18. 线性卷积和圆周卷积什么时候一样
这是考试高频公式。
如果一个序列长度是 N,另一个序列长度是 M,那么它们的普通线性卷积长度是:
N+M−1
如果你想用 L 点圆周卷积得到同样的结果,必须让圆足够大:
L≥N+M−1
讲义中也明确说,若希望 L 点循环卷积等于线性卷积,必须满足 L≥N+M−1;否则线性卷积的尾部会折叠回前面,产生混叠。
例如:
x(n)={1,2,3},h(n)={1,1}
前者长度是 3,后者长度是 2,所以线性卷积长度是
N+M−1=3+2−1=4
所以如果你想用圆周卷积代替线性卷积,至少要做 4 点圆周卷积。
19. DFT 为什么能用来算卷积
这是 DFT 最重要的用途之一。
在时域里做圆周卷积比较麻烦,但是 DFT 有一个非常重要的性质:
时域圆周卷积⟺频域相乘
也就是说,如果
X1(k)=DFT[x1(n)]
X2(k)=DFT[x2(n)]
那么
DFT[x1(n)⊛x2(n)]=X1(k)X2(k)
所以要算圆周卷积,可以这样做:
第一步,对 x1(n) 做 DFT,得到 X1(k)。
第二步,对 x2(n) 做 DFT,得到 X2(k)。
第三步,在频域直接相乘:
Y(k)=X1(k)X2(k)
第四步,对 Y(k) 做 IDFT,得到 y(n)。
也就是
x1(n),x2(n)→DFT→X1(k),X2(k)→相乘→Y(k)→IDFT→y(n)
讲义中也给出了这个步骤:先计算两个序列的 DFT,再频域相乘,最后作 IDFT。

20. FFT 是什么
FFT 是 Fast Fourier Transform,中文叫快速傅里叶变换。
你一定要记住:
FFT 不是新的变换,它只是快速计算 DFT 的算法
也就是说:
就像乘法是定义,竖式乘法是快速计算方法一样。
讲义中也明确说,FFT 不是另一种变换,它是 DFT 的快速算法。
21. 为什么需要 FFT
直接算 DFT 太慢。
DFT 公式是
X(k)=n=0∑N−1x(n)e−jN2πkn
你要算每一个 X(k),都要对 n=0 到 N−1 求和。
一共有 N 个 X(k),所以直接计算量大约是
N2
如果 N=1024,计算量就很大。
FFT 的作用就是把计算量降下来:
直接 DFT:
N2
FFT:
Nlog2N
所以 FFT 特别适合大规模信号处理。
22. FFT 的基本思想
FFT 的核心思想是:
把一个大的 DFT,拆成几个小的 DFT
例如 8 点 DFT 太大,就拆成两个 4 点 DFT;4 点 DFT 再拆成两个 2 点 DFT。这样不断拆下去,计算量就减少了。
讲义中也说,FFT 的基本思想是不断把长序列的 DFT 分解成短序列的 DFT,并利用旋转因子的周期性、对称性和可约性减少重复计算。
23. 基 2 FFT 是什么
基 2 FFT 指的是
N=2m
也就是 DFT 点数必须是 2 的整数次方,例如
N=2,4,8,16,32,64,⋯
如果原序列长度不是 2 的整数次方,通常补零。
24. DIT-FFT 是什么
DIT 是 Decimation In Time,中文叫按时间抽取。
按时间抽取就是按照时域下标分组。
比如 8 点序列:
x(0),x(1),x(2),x(3),x(4),x(5),x(6),x(7)
分成偶数下标和奇数下标。
偶数下标:
x(0),x(2),x(4),x(6)
奇数下标:
x(1),x(3),x(5),x(7)
然后分别做两个 4 点 DFT,再合并成一个 8 点 DFT。
25. 蝶形运算是什么
FFT 合并两个小 DFT 时,会用到一组一加一减的公式:
X(k)=X1(k)+WNkX2(k)
X(k+N/2)=X1(k)−WNkX2(k)
这两个式子画出来像蝴蝶,所以叫蝶形运算。
你现在先不用完全推导,只要知道:
蝶形运算就是 FFT 中的基本计算单元,一上一下,一个加,一个减


26. 最小计算例子:线性卷积、圆周卷积与 4 点 FFT
下面用最小数字例子,把三件事算清楚:
- 线性卷积怎么算
- 圆周卷积怎么算
- FFT 和蝶形运算怎么算
先记住一句话:
线性卷积是在直线上算,圆周卷积是在圆上算,FFT 是快速算 DFT。
讲义里也说,普通卷积可以理解为滑动、重叠、求和;而圆周卷积中的下标要按长度 L 取模,超出范围会绕回主值区间。
26.1 线性卷积举例怎么算
设
x(n)={1,2,3}
h(n)={1,1}
也就是
x(0)=1,x(1)=2,x(2)=3
h(0)=1,h(1)=1
线性卷积记作
y(n)=x(n)∗h(n)
定义是
y(n)=m∑x(m)h(n−m)
它的人话意思就是:让两个序列滑动,重叠的部分相乘再相加。
两个序列长度分别是
N=3,M=2
所以线性卷积结果长度是
N+M−1=3+2−1=4
因此结果应该有
y(0),y(1),y(2),y(3)
当 n=0 时:
y(0)=x(0)h(0)=1⋅1=1
当 n=1 时:
y(1)=x(0)h(1)+x(1)h(0)=1⋅1+2⋅1=3
当 n=2 时:
y(2)=x(1)h(1)+x(2)h(0)=2⋅1+3⋅1=5
当 n=3 时:
y(3)=x(2)h(1)=3⋅1=3
所以
x(n)∗h(n)={1,3,5,3}
26.2 圆周卷积举例怎么算
圆周卷积和线性卷积不一样。线性卷积是在直线上算,结果可以变长;圆周卷积是在固定长度的圆上算,结果长度固定。
如果做 L 点圆周卷积,结果一定只有 L 个数。公式是
yc(n)=m=0∑L−1x(m)h((n−m))L
这里最重要的是
((n−m))L
它表示对 L 取余数,也就是绕回去。
例如当 L=3 时:
−1≡2,−2≡1
26.2.1 先做 3 点圆周卷积
还是用
x(n)={1,2,3},h(n)={1,1}
把 h(n) 补成 3 点:
h(n)={1,1,0}
所以现在
x={1,2,3},h={1,1,0}
结果长度固定为 3:
yc(0),yc(1),yc(2)
算 yc(0):
yc(0)=x(0)h(0)+x(1)h(−1)+x(2)h(−2)
因为 3 点圆周卷积里
h(−1)=h(2),h(−2)=h(1)
所以
yc(0)=x(0)h(0)+x(1)h(2)+x(2)h(1)
代入得
yc(0)=1⋅1+2⋅0+3⋅1=4
算 yc(1):
yc(1)=x(0)h(1)+x(1)h(0)+x(2)h(−1)
因为
h(−1)=h(2)
所以
yc(1)=x(0)h(1)+x(1)h(0)+x(2)h(2)
代入得
yc(1)=1⋅1+2⋅1+3⋅0=3
算 yc(2):
yc(2)=x(0)h(2)+x(1)h(1)+x(2)h(0)
代入得
yc(2)=1⋅0+2⋅1+3⋅1=5
所以 3 点圆周卷积结果是
yc(n)={4,3,5}
它和线性卷积不同,是因为线性卷积结果
{1,3,5,3}
放不进 3 个位置,最后那个 3 会绕回第 0 个位置,于是折回成
{1+3,3,5}={4,3,5}
这就是混叠。人话就是:圆太小,尾巴绕回来了。
26.3 什么时候圆周卷积等于线性卷积
如果 x(n) 长度为 N,h(n) 长度为 M,那么线性卷积长度是
N+M−1
要让 L 点圆周卷积等于线性卷积,必须满足
L≥N+M−1
刚才例子中
N=3,M=2
所以
N+M−1=4
因此至少要做 4 点圆周卷积。
把两个序列都补到 4 点:
x={1,2,3,0},h={1,1,0,0}
这时算出来的 4 点圆周卷积就是
yc(n)={1,3,5,3}
它正好等于线性卷积,因为
L=4≥3+2−1=4
26.4 用 DFT 算圆周卷积是什么意思
DFT 有一个重要性质:
时域圆周卷积⟺频域相乘
也就是如果
X(k)=DFT[x(n)],H(k)=DFT[h(n)]
那么
Y(k)=X(k)H(k)
再做 IDFT:
y(n)=IDFT[Y(k)]
就得到圆周卷积。讲义里也说,用 DFT 计算循环卷积,就是先分别做 DFT,再频域相乘,最后做 IDFT。
26.5 FFT 举例怎么算
现在看一个最简单的 4 点 FFT 例子。设
x(n)={1,2,3,4}
要求 4 点 DFT:
X(0),X(1),X(2),X(3)
26.5.1 先按奇偶下标分组
DIT-FFT 是按时域下标奇偶分组。
偶数下标:
x(0),x(2)
所以
xe={1,3}
奇数下标:
x(1),x(3)
所以
xo={2,4}
26.5.2 分别做 2 点 DFT
对两个数
{a,b}
它的 2 点 DFT 是
{a+b, a−b}
所以偶数部分
xe={1,3}
得到
E(0)=1+3=4,E(1)=1−3=−2
即
E={4,−2}
奇数部分
xo={2,4}
得到
O(0)=2+4=6,O(1)=2−4=−2
即
O={6,−2}
26.5.3 蝶形运算怎么算
4 点 FFT 中,合并公式是
X(k)=E(k)+W4kO(k)
X(k+2)=E(k)−W4kO(k)
其中
k=0,1
旋转因子
W4=e−j42π=e−j2π=−j
所以
W40=1,W41=−j
当 k=0 时:
X(0)=E(0)+W40O(0)=4+1⋅6=10
X(2)=E(0)−W40O(0)=4−1⋅6=−2
当 k=1 时,先算
W41O(1)=(−j)(−2)=2j
于是
X(1)=E(1)+W41O(1)=−2+2j
X(3)=E(1)−W41O(1)=−2−2j
所以最终结果是
X(k)={10, −2+2j, −2, −2−2j}
26.6 蝶形运算怎么记
给两个输入
A,B
再给一个旋转因子
W
先算
WB
然后记住:
上输出=A+WB
下输出=A−WB
也就是
A,B⟶A+WB, A−WB
例如:
A=4,B=6,W=1
则
4,6⟶10,−2
又如
A=−2,B=−2,W=−j
则先有
WB=(−j)(−2)=2j
所以
−2,−2⟶−2+2j, −2−2j
26.7 计算过程压缩版
原序列
x={1,2,3,4}
先按奇偶分组:
xe={1,3},xo={2,4}
分别做 2 点 DFT:
E={1+3,1−3}={4,−2}
O={2+4,2−4}={6,−2}
再做蝶形合并:
X(0)=4+6=10,X(2)=4−6=−2
X(1)=−2+(−j)(−2)=−2+2j
X(3)=−2−(−j)(−2)=−2−2j
最终
X(k)={10, −2+2j, −2, −2−2j}
27. 这一轮你真正要会什么
这一轮考试最常考的不是让你空谈概念,而是让你会判断、会套公式、会选长度。
你按下面顺序掌握。
第一,知道 DFT 是什么:
DFT:把有限长时域序列变成有限个频率点
第二,知道 DFT 公式里每个符号是什么:
X(k)=n=0∑N−1x(n)e−jN2πkn
x(n) 是原序列,X(k) 是频域结果,n 是时域下标,k 是频域下标,N 是 DFT 点数。
第三,知道 IDFT 是反变换:
x(n)=N1k=0∑N−1X(k)ejN2πkn
第四,知道 DFT 默认序列周期延拓,所以会出现圆周移位、圆周卷积和取模下标。
第五,知道圆周移位就是绕圈移动。例如
{1,2,3,4}
向左圆周移位 1 位后是
{2,3,4,1}
第六,知道圆周卷积和线性卷积的区别:普通线性卷积是在直线上算,圆周卷积是在圆上算,圆太短会混叠。
第七,记住最重要条件:
L≥N+M−1
如果满足,圆周卷积等于线性卷积;如果不满足,尾巴绕回前面,产生混叠。
第八,知道 FFT 是什么:
FFT 是快速计算 DFT 的算法,不是新的变换
第九,知道基 2 FFT 要求:
N=2m
第十,知道 DIT-FFT 是按下标奇偶分组:偶数下标一组,奇数下标一组。
小例题:线性卷积能否直接用圆周卷积代替
设 x1(n) 长度为 4,x2(n) 长度为 3。若要用圆周卷积得到和线性卷积完全一样的结果,圆周卷积长度 L 至少应取多少?
解答:
线性卷积长度是
N+M−1=4+3−1=6
所以要避免混叠,至少应满足
L≥6
也就是说,最小可取
L=6
如果 L<6,线性卷积尾部就会绕回前面,结果和真正的线性卷积不一致。
28. 最适合现在背的极简版
你可以先背这版:
DFT 的定义:把 N 个时域样本 x(0),x(1),⋯,x(N−1) 变成 N 个频域样本 X(0),X(1),⋯,X(N−1)。
公式:
X(k)=n=0∑N−1x(n)e−jN2πkn
IDFT:
x(n)=N1k=0∑N−1X(k)ejN2πkn
DFT 的核心特点:有限长序列在 DFT 中默认周期延拓。
圆周移位:首尾相接地移动。
圆周卷积:在周期圆上做卷积。
线性卷积长度:
N+M−1
圆周卷积等于线性卷积的条件:
L≥N+M−1
FFT:快速计算 DFT 的算法。
基 2 FFT:
N=2m
DIT-FFT:按时域下标奇偶分组。
最后一句话:
DFT 是频率分析工具,圆周卷积是 DFT 世界里的卷积,FFT 是快速计算 DFT 的方法。
第三轮:IIR 数字滤波器设计
这一轮不要先背“脉冲响应不变法、双线性变换法”,先看清楚它们为什么会出现。整章的来龙去脉是:
想滤波→需要设计系统→系统用 H(z) 表示→IIR 直接设计麻烦→借用成熟的 Ha(s)→H(z)
数字滤波器不是凭空写出一条差分方程,而是先确定希望得到的频率选择效果,再反过来求可实现的 H(z) 或 h(n)。IIR 的重要设计思路,就是先设计理论成熟的模拟滤波器,再把它变成数字滤波器。
1. 为什么要设计滤波器
现实信号通常并不干净。例如语音中混入高频噪声时,我们希望保留语音主体、削弱高频噪声,所需系统就是“低频通过、高频削弱”的低通滤波器。
滤波器的本质不是公式,而是一个频率筛子:
有些频率让它通过,有些频率让它变小。
- 低通滤波器:保留低频,抑制高频
- 高通滤波器:保留高频,抑制低频
- 带通滤波器:只保留中间某一段频率
- 带阻滤波器:抑制中间某一段频率
讲义中也说,数字滤波器是输入和输出都是数字信号的系统,它通过数值运算改变输入信号中各频率成分的比例。
2. 滤波器在数学上是什么
数字滤波器通常看作一个 LTI 系统:
Y(z)=X(z)H(z),H(z)=X(z)Y(z)
H(z) 就是数字滤波器的数学说明书。令 z=ejω,便得到频率响应 H(ejω),它说明每个频率经过滤波器后会被放大、保留还是削弱。因此设计滤波器的真正目标是:
根据想要的频率效果,求出一个合适的 H(z)
3. IIR 是什么
IIR 是 Infinite Impulse Response,中文叫无限长单位脉冲响应滤波器。
所谓“无限长”,是指给系统一个单位冲激 δ(n) 后,它的输出 h(n) 可能一直拖很长,理论上无限延续。
IIR 一般有反馈,也就是输出会反过来参与后续计算。差分方程常写成
y(n)=i=1∑Naiy(n−i)+i=0∑Mbix(n−i)
如果式子里有过去输出 y(n−i),说明系统有反馈,这就是 IIR 的典型特征。
4. IIR 系统函数与优缺点
IIR 系统函数常写成
H(z)=1−∑i=1Naiz−i∑i=0Mbiz−i
这里最关键的关系是:
差分方程是时域里的计算规则,H(z) 是这个规则做 Z 变换后的样子。
它们不是两套东西,而是同一个滤波器的两种写法。
4.1 差分方程为什么会出现
最简单的系统是
y(n)=x(n)
表示输出等于输入。如果让当前输出等于当前输入和前一个输入的平均,则有
y(n)=21x(n)+21x(n−1)
它把相邻采样点平均,可以削弱快速变化的高频成分,是一个简单的低通滤波器。当前输出不只取决于当前输入,还取决于过去输入,这就是差分方程的雏形。
数字滤波器最终要由计算机或 DSP 芯片运行,而硬件每一拍所做的基本操作就是加法、乘法和延迟。x(n−1) 表示输入延迟一个采样周期,y(n−1) 表示上一次输出。因此数字滤波器最自然的实现形式就是
y(n)=i=1∑Naiy(n−i)+i=0∑Mbix(n−i)
也就是:
当前输出=过去输出的加权和+当前及过去输入的加权和
4.2 每一项代表什么
以二阶差分方程为例:
y(n)=a1y(n−1)+a2y(n−2)+b0x(n)+b1x(n−1)+b2x(n−2)
- y(n):当前输出
- x(n):当前输入
- x(n−1),x(n−2):过去输入
- y(n−1),y(n−2):过去输出
- a1,a2,b0,b1,b2:滤波器系数
只要出现过去输出 y(n−i),就说明输出参与了后续计算,即系统存在反馈。
4.3 为什么反馈会产生无限长冲激响应
看最简单的一阶反馈系统:
y(n)=ay(n−1)+x(n)
令输入为 x(n)=δ(n),初始条件为 y(−1)=0,逐点递推:
y(0)=1,y(1)=a,y(2)=a2,y(3)=a3
所以单位冲激响应为
h(n)=anu(n)
输入冲激只在 n=0 出现一次,输出却形成 1,a,a2,a3,…。只要 a=0,反馈就会让已有输出继续影响未来输出,响应理论上可以无限延续。因此:
过去输出参与计算⇒反馈⇒冲激响应可能无限长⇒IIR
4.4 从差分方程推导系统函数
系统函数不是凭空写出的,而是差分方程做 Z 变换后整理得到的。仍以
y(n)=ay(n−1)+x(n)
为例。Z 变换的延迟性质是
y(n−1)Zz−1Y(z)
也就是说,时域延迟一个采样点,在 Z 域就乘 z−1。对差分方程两边做 Z 变换:
Y(z)=az−1Y(z)+X(z)
移项并提取 Y(z):
Y(z)(1−az−1)=X(z)
系统函数定义为 H(z)=Y(z)/X(z),因此
H(z)=1−az−11
人话解释就是:H(z) 表示系统把输入 X(z) 变成输出 Y(z) 的作用,因为
Y(z)=X(z)H(z)
4.5 一般 IIR 系统函数的推导
从一般差分方程出发:
y(n)=i=1∑Naiy(n−i)+i=0∑Mbix(n−i)
利用延迟性质
y(n−i)Zz−iY(z),x(n−i)Zz−iX(z)
两边做 Z 变换得到
Y(z)=i=1∑Naiz−iY(z)+i=0∑Mbiz−iX(z)
把含 Y(z) 的项移到左边并分别提取 Y(z)、X(z):
Y(z)(1−i=1∑Naiz−i)=X(z)(i=0∑Mbiz−i)
所以
H(z)=X(z)Y(z)=1−∑i=1Naiz−i∑i=0Mbiz−i
分子 ∑biz−i 来自当前及过去输入项,所以由 bi 决定;分母 1−∑aiz−i 来自过去输出的反馈项,所以由 ai 决定。进一步说,分子决定零点,分母决定极点,而极点决定稳定性。这就是 IIR 必须特别关注分母的原因。
4.6 为什么 FIR 只有分子
如果所有反馈系数 ai=0,差分方程就变成
y(n)=i=0∑Mbix(n−i)
做 Z 变换可得
H(z)=X(z)Y(z)=i=0∑Mbiz−i
它没有过去输出项和递归反馈,只由有限个输入样本加权求和,因此冲激响应有限长:
FIR:没有过去输出项,没有反馈,系统函数只有分子。
IIR:有过去输出项,有反馈,反馈项整理后形成分母。
4.7 一个完整例子
设差分方程为
y(n)=0.5y(n−1)+x(n)
因为含有 y(n−1),所以它有反馈,是 IIR。做 Z 变换:
Y(z)=0.5z−1Y(z)+X(z)
移项并提取 Y(z):
Y(z)(1−0.5z−1)=X(z)
所以
y(n)=0.5y(n−1)+x(n)⟺H(z)=1−0.5z−11
令分母为零:
1−0.5z−1=0⇒z=0.5
极点 z=0.5 位于单位圆内,所以在因果条件下系统稳定。
4.8 最容易混淆的四点
第一,差分方程来自数字系统的实际计算结构,即加法、乘法、延迟和反馈,并不是凭空出现的。
第二,z−1 代表一个采样周期的延迟:
x(n−1)Zz−1X(z),y(n−1)Zz−1Y(z)
第三,IIR 的分母来自过去输出项。反馈项做 Z 变换后仍含 Y(z),移到等式左边并提取 Y(z),就形成了分母。
第四,IIR 的“无限长”来自反馈。冲激输入结束后,系统内部已有输出仍会继续参与递推。
整条逻辑链可以压缩为:
加法、乘法、延迟→差分方程→Z 变换→H(z)
差分方程是 IIR 的时域计算规则,H(z) 是它做 Z 变换后的系统函数。
分子对应零点,分母对应极点。因为 IIR 有分母,所以有极点;极点位置决定稳定性。
反馈使 IIR 能以较低阶数获得较陡的幅频响应,因此计算量通常比同等指标的 FIR 小。但代价是必须检查稳定性,极点不能落在单位圆外;它的相位一般也不是线性的,可能造成波形失真。IIR 更适合主要关心幅频特性、对严格相位保真要求不高的场合。
5. 滤波器指标怎么看
以低通滤波器为例,常见指标有:
- ωp:通带截止频率
- ωs:阻带截止频率
- αp:通带最大衰减
- αs:阻带最小衰减
- δ1:通带允许波动
- δ2:阻带允许残留
低通指标通常写成
1−δ1≤∣H(ejω)∣≤1,∣ω∣<ωp
∣H(ejω)∣≤δ2,ωs≤∣ω∣≤π
通带和阻带之间是过渡带。过渡带越窄,滤波器越难设计,通常需要更高阶数。
6. 为什么不直接设计数字 IIR
理论上可以直接求 H(z),但实际要同时控制通带波纹、阻带衰减、过渡带宽度、稳定性和阶数,很难凭空写出满足全部条件的系统函数。
模拟滤波器理论却已经非常成熟,巴特沃斯、切比雪夫和椭圆滤波器都有完整公式与设计套路。因此采用更可靠的路线:
先设计模拟滤波器 Ha(s),再转换成数字滤波器 H(z)
7. 从 s 平面到 z 平面必须满足什么
模拟滤波器写作 Ha(s),数字滤波器写作 H(z),数字化本质上就是寻找 s=f(z),把 s 平面上的系统映射到 z 平面。
这个映射不能随意选择。模拟频率响应位于 s=jΩ,即 s 平面的虚轴;数字频率响应位于 z=ejω,即 z 平面的单位圆。因此必须满足:
s 平面的虚轴→z 平面的单位圆
模拟稳定系统的极点位于左半平面,数字稳定系统的极点位于单位圆内,所以还必须满足:
s 平面的左半平面→z 平面的单位圆内
8. 为什么会出现两种方法
两种方法都在解决 Ha(s)→H(z),只是出发点不同:
脉冲响应不变法:从时域采样入手。
双线性变换法:从平面映射入手。
前者利用“LTI 系统由冲激响应决定”,直接采样 ha(t);后者不采样冲激响应,而是建立 s 与 z 的一一对应公式。
9. IIR 设计的总路线
IIR 设计最常见路线是:
Ha(s)→H(z)
也就是先设计模拟滤波器,再把模拟滤波器变成数字滤波器。
讲义中重点方法就两个:脉冲响应不变法、双线性变换法。

10. 脉冲响应不变法
脉冲响应不变法的人话意思:让数字滤波器的冲激响应等于模拟滤波器冲激响应的采样值。
也就是
h(n)=ha(nT)
如果模拟滤波器写成部分分式
Ha(s)=i=1∑Ns−siAi
那么数字滤波器变成
H(z)=i=1∑N1−esiTz−1Ai
有的教材会写成
H(z)=i=1∑N1−esiTz−1TAi
要看老师讲义采用哪种归一化方式。
最关键替换是
s−siAi⟶1−esiTz−1Ai
优点:时域冲激响应保持得好。
缺点:会产生频谱混叠。
这是因为时域采样会使频谱周期延拓。该方法对应的映射是
z=esT
令 s=jΩ,就有 z=ejΩT 和 ω=ΩT。频率关系虽然线性,但指数函数具有周期性,Ω 与 Ω+2π/T 会落到同一个数字频率点,周期延拓的频谱便可能相互重叠。因此它较适合高频能量已经充分衰减的低通、带通滤波器,不适合高通和带阻滤波器。

10.1 一阶系统例题
设
Ha(s)=s+11,T=1
拉普拉斯反变换为
ha(t)=e−tu(t)
按 h(n)=ha(nT) 采样:
h(n)=e−nu(n)
利用 anu(n)Z1/(1−az−1),得到
H(z)=1−e−1z−11≈1−0.3679z−11
由 H(z)=Y(z)/X(z) 还可写出差分方程:
(1−e−1z−1)Y(z)=X(z)
所以
y(n)=e−1y(n−1)+x(n)
10.2 部分分式例题
设
Ha(s)=(s+1)(s+3)2,T=1
先作部分分式展开:
Ha(s)=s+11−s+31
两个极点分别为 s1=−1、s2=−3。逐项替换得到
H(z)=1−e−1z−11−1−e−3z−11
合并后为
H(z)=(1−e−1z−1)(1−e−3z−1)(e−1−e−3)z−1
利用 e−1≈0.3679、e−3≈0.0498,可写成
H(z)≈1−0.4177z−1+0.0183z−20.3181z−1
这类题的关键步骤是:
先作部分分式展开,再把每个模拟极点指数化。
11. 双线性变换法
双线性变换法的人话意思:用一个固定替换公式,把 s 平面的模拟滤波器变成 z 平面的数字滤波器。
核心公式是
s=T21+z−11−z−1
所以
H(z)=Ha(s)s=T21+z−11−z−1
优点:不会产生频谱混叠。
缺点:频率会非线性变形,所以需要预畸变。
预畸变公式:
Ω=T2tan2ω
这里 ω 是数字频率,Ω 是模拟频率。
由于 tan(ω/2) 是非线性的,模拟频率与数字频率并不成比例。越靠近高频,压缩越明显。因此题目给出数字边界频率 ωp,ωs 时,应先预畸变:
Ωp=T2tan2ωp,Ωs=T2tan2ωs
这相当于在设计前反向校正,使变换后的数字截止频率落在题目要求的位置。

11.1 一阶系统例题
仍取
Ha(s)=s+11,T=1
此时
s=21+z−11−z−1
直接代入:
H(z)=21+z−11−z−1+11=3−z−11+z−1
将分母首项归一化:
H(z)=1−31z−131+31z−1
对应差分方程为
y(n)=31y(n−1)+31x(n)+31x(n−1)
11.2 含参数的一阶低通
设
Ha(s)=s+αα
代入双线性变换公式并通分:
H(z)=T2(1−z−1)+α(1+z−1)α(1+z−1)
整理分母后得到
H(z)=(T2+α)+(α−T2)z−1α(1+z−1)
再将分子分母同除以 2/T+α,即可得到分母首项为 1 的标准形式。此类题的关键就是:把 Ha(s) 中所有 s 替换,再通分整理。
11.3 预畸变例题
设 T=1,数字通带、阻带截止频率分别为
ωp=4π,ωs=2π
由 Ω=2tan(ω/2):
Ωp=2tan8π=2(2−1)≈0.8284
Ωs=2tan4π=2
所以
Ωp≈0.8284,Ωs=2
这一步先把数字频率指标校正为模拟频率指标,之后才能据此设计 Ha(s)。
12. 两种 IIR 方法怎么区分
脉冲响应不变法:
- 关键词:冲激响应采样
- 优点:时域保持好
- 缺点:有混叠
双线性变换法:
- 关键词:代换
- 优点:无混叠
- 缺点:频率非线性,需要预畸变
考试里比较时,直接记:
脉冲响应不变法:时域保持好,但有混叠
双线性变换法:无混叠,但频率非线性,需要预畸变
12.1 同一个 Ha(s),结果为什么不同
对同一个
Ha(s)=s+11,T=1
脉冲响应不变法得到
H(z)=1−e−1z−11
双线性变换法得到
H(z)=3−z−11+z−1
两者不同,是因为保留的对象不同。前者要求 h(n)=ha(nT),保留模拟冲激响应的采样值;后者保留 s 平面与 z 平面的一一映射关系,优先避免混叠。因此不能说其中一个必然更正确,应按设计要求选择。
12.2 考试步骤对比
脉冲响应不变法:
- 将 Ha(s) 作部分分式展开。
- 找出各极点 si 和留数 Ai。
- 逐项使用 Ai/(s−si)→Ai/(1−esiTz−1)。
- 需要时合并为一个有理函数。
口诀是:
部分分式,极点指数化。
双线性变换法:
- 若题目给数字边界频率,先用 Ω=(2/T)tan(ω/2) 预畸变。
- 将 Ha(s) 中的 s 全部替换为 (2/T)(1−z−1)/(1+z−1)。
- 通分并整理为 z−1 的标准有理式。
- 需要时由 H(z)=Y(z)/X(z) 写出差分方程。
口诀是:
直接代换,先预畸变。
特别地,若 T=2,代换式简化为
s=1+z−11−z−1
这通常是题目令计算更简单的信号。
13. 巴特沃斯在其中扮演什么角色
巴特沃斯不是数字化方法。脉冲响应不变法和双线性变换法解决的是 Ha(s)→H(z),巴特沃斯解决的是“怎样根据模拟指标求 Ha(s)”。完整关系是:
数字指标→模拟指标→巴特沃斯求 Ha(s)→选一种变换求 H(z)
巴特沃斯低通的幅度平方函数为
∣Ha(jΩ)∣2=1+(ΩcΩ)2N1
它的通带最大平坦,幅频响应随 Ω 增大而单调下降;阶数 N 越大,过渡带越陡。
14. 完整设计流程与考试判断
若题目给出数字指标 ωp,ωs,αp,αs,先把它们转换成模拟指标。脉冲响应不变法使用 Ω=ω/T;双线性变换法使用 Ω=(2/T)tan(ω/2)。然后设计模拟低通,求阶数 N、截止频率 Ωc 和 Ha(s),最后用指定方法得到 H(z)。
若题目直接给 Ha(s) 并指定脉冲响应不变法,就做部分分式展开、找极点 si,再逐项使用
s−siAi⟶1−esiTz−1Ai
若题目直接给 Ha(s) 并指定双线性变换法,就代入
s=T21+z−11−z−1
最后把整轮压缩成一句话:
IIR 设计的核心不是凭空写 H(z),而是借用成熟的 Ha(s),再用合适的映射把它数字化。
第四轮:FIR 线性相位、窗函数法、频率采样法
这一轮先记住:
FIR 是有限长单位冲激响应滤波器
FIR 是 Finite Impulse Response。它的输出只由有限个输入样本加权求和,不需要过去输出反馈,所以结构稳定,而且容易设计成严格线性相位。
可以把 IIR 看成带反馈系统,而 FIR 更像有限记忆的加权平均器:
FIR 没有反馈,最大的优点是稳定并且容易实现线性相位。
1. FIR 系统函数
FIR 的冲激响应有限长:
0≤n≤N−1
系统函数:
H(z)=n=0∑N−1h(n)z−n
频率响应:
H(ejω)=n=0∑N−1h(n)e−jωn
FIR 的差分方程是
y(n)=k=0∑N−1h(k)x(n−k)
展开后就是
y(n)=h(0)x(n)+h(1)x(n−1)+⋯+h(N−1)x(n−N+1)
也就是说,当前输出只是当前与过去有限个输入的加权和。例如
y(n)=31x(n)+31x(n−1)+31x(n−2)
是一个 3 点平均滤波器,可以削弱快速抖动,具有低通和平滑效果。
对差分方程做 Z 变换:
Y(z)=X(z)[h(0)+h(1)z−1+⋯+h(N−1)z−(N−1)]
于是得到前面的 H(z)。它没有由过去输出形成的反馈分母,只有有限个延迟项。
FIR 也天然满足 BIBO 稳定性。只要输入有界、系数有限,有限个有界数的加权和必然有界。IIR 则需要额外检查极点是否位于单位圆内。
频率响应还可以写成
H(ejω)=∣H(ejω)∣ejθ(ω)
其中 ∣H(ejω)∣ 决定各频率被放大或衰减多少,θ(ω) 决定各频率的相位变化。
2. 什么是线性相位
如果不同频率通过系统后延迟不一样,波形会变形。线性相位的意思是
θ(ω)=−τω
或者
θ(ω)=−2π−τω
群时延定义为
τ=−dωdθ(ω)
人话解释:
τ 表示不同频率成分通过滤波器后延迟多少
如果 τ 是常数,不同频率延迟相同,波形就不容易失真。
例如方波由许多正弦分量叠加而成。若低频、中频、高频的延迟不同,它们到达时间不一致,重新叠加后就不再是原来的方波,这就是相位失真。因此线性相位真正想保住的是波形,而不仅仅是幅度。
3. FIR 线性相位的核心条件
这是必背公式:
h(n)=±h(N−1−n)
如果是加号,
h(n)=h(N−1−n)
叫偶对称。
如果是减号,
h(n)=−h(N−1−n)
叫奇对称。
平均延迟为
τ=2N−1
人话解释:只要 FIR 的冲激响应左右对称,或者左右反对称,它就能实现线性相位。
为什么对称会产生线性相位?以偶对称、N=5 为例:
h(0)=h(4),h(1)=h(3)
频率响应可以配对整理成
H(ejω)=e−j2ω[h(2)+2h(1)cosω+2h(0)cos2ω]
方括号中是实函数,e−j2ω 则提供相位 −2ω,对应固定群时延 2,而 2=(N−1)/2。一般情况下,对称项配对后都能提取出
e−jω(N−1)/2
这个纯延迟项,这就是线性相位的来源。

4. 四种线性相位 FIR
线性相位 FIR 分四种:
- 偶对称,N 为奇数
- 偶对称,N 为偶数
- 奇对称,N 为奇数
- 奇对称,N 为偶数
四类的端点限制必须会判断:
- 第一类:偶对称、奇数长度,最通用,可设计低通、高通、带通和带阻。
- 第二类:偶对称、偶数长度,在 ω=π 处必为 0,不适合要求最高频通过的高通和带阻。
- 第三类:奇对称、奇数长度,在 ω=0 和 ω=π 处都为 0,常用于 Hilbert 变换器和微分器。
- 第四类:奇对称、偶数长度,在 ω=0 处必为 0,但 ω=π 处不一定为 0,可用于部分高通、带通和微分器。
简单记忆:
普通低通、高通、带通、带阻,优先想偶对称
奇对称多用于微分器、Hilbert 变换器
5. 窗函数法是什么
理想滤波器的频率响应通常是突然跳变的,但这往往对应无限长冲激响应,实际做不出来。
以理想低通为例:
Hd(ejω)={e−jωα,0,∣ω∣≤ωc,ωc<∣ω∣≤π
它的理想冲激响应是无限长的 sinc 型序列:
hd(n)=π(n−α)sin[ωc(n−α)]
在 n=α 时应取极限 hd(α)=ωc/π。为获得线性相位,通常令
α=2N−1
使截取后的序列关于 FIR 中心对称。
窗函数法的做法是:
h(n)=hd(n)w(n)
这里
- hd(n):理想冲激响应,通常无限长
- w(n):窗函数,用来截断
- h(n):实际 FIR 系数
人话解释:
窗函数法就是把无限长的理想响应剪成有限长
矩形窗相当于直接剪断序列,时域截断很突然,因此频域会出现明显波纹,即吉布斯效应。窗的主瓣宽度主要影响过渡带,旁瓣高度主要影响阻带波纹和阻带衰减:主瓣越窄,过渡带越陡;旁瓣越低,阻带抑制越强。二者通常不能同时做到最好。

6. 常见窗函数怎么选
- 矩形窗:过渡带窄,但旁瓣高,阻带衰减差
- 三角窗:旁瓣更低,但过渡带变宽
- 汉宁窗:阻带衰减更好
- 哈明窗:通常比汉宁窗更强
- 布莱克曼窗:阻带衰减更强,但过渡带更宽
- 凯泽窗:参数可调,更灵活
考试选窗时一般看阻带衰减 αs。
常见阻带衰减可近似记为:
- 矩形窗:约 21 dB
- 三角窗:约 25 dB
- 汉宁窗:约 44 dB
- 哈明窗:约 53 dB
- 布莱克曼窗:约 74 dB
强弱顺序是
矩形<三角<汉宁<哈明<布莱克曼
窗类型主要由阻带最小衰减决定,窗长度 N 主要由过渡带宽度决定。过渡带越窄,所需 N 越大。
7. 窗函数法设计步骤
第一步,看题目指标:ωp,ωs,αs。
第二步,根据 αs 选窗。
第三步,估计窗长 N。
第四步,确定理想截止频率。低通、高通常取
ωc=2ωp+ωs
第五步,写理想冲激响应 hd(n)。
第六步,加窗得到
h(n)=hd(n)w(n)
7.1 理想高通怎么写
高通可以理解成“全通减低通”。全通的冲激响应是 δ(n−α),所以
hd(n)=δ(n−α)−π(n−α)sin[ωc(n−α)]
当 n=α 时,中心值应单独写为
hd(α)=1−πωc
7.2 高通 FIR 完整例题
设计线性相位高通 FIR,指标为
ωp=2π,ωs=4π,αs=40 dB
第一步,αs=40 dB,汉宁窗约能提供 44 dB 阻带衰减,因此选择汉宁窗。
第二步,过渡带宽度为
Bt=ωp−ωs=4π
汉宁窗经验公式为 Bt≈6.2π/N,所以
N6.2π≤4π⇒N≥24.8
取 N=25。它既满足长度要求,又是奇数长度,不会把高通所需的 ω=π 响应强制为 0。
第三步,延迟为
α=2N−1=12
理想截止频率取过渡带中点:
ωc=2ωp+ωs=83π
第四步,写出理想高通冲激响应:
hd(n)=δ(n−12)−π(n−12)sin[83π(n−12)]
中心值为
hd(12)=1−83=85
第五步,N=25 的汉宁窗是
w(n)=0.5[1−cos(242πn)]=0.5[1−cos(12πn)],0≤n≤24
最终系数为
h(n)=hd(n)w(n),0≤n≤24
因为 w(12)=1,所以中心系数 h(12)=5/8。完整流程可以记成
选窗→N→α→ωc→hd(n)→hd(n)w(n)
8. 频率采样法是什么
窗函数法是从时域出发,频率采样法是从频域出发。
它的做法是先对理想频率响应采样:
Hd(k)=Hd(ejω)ω=N2πk
再做 IDFT:
h(n)=N1k=0∑N−1Hd(k)ejN2πkn
例如做 8 点低通频率采样,可以规定
H(k)={1,1,0,0,0,0,0,1}
其中 1 表示相应频率通过,0 表示阻止。对这组频率样本做 8 点 IDFT,就得到有限长 h(n)。因此频率采样法的直观含义是:先在频率轴上指定若干点的滤波效果,再反变换得到时域系数。
它特别适合理想频率响应公式复杂,或者工程要求本来就只给出若干离散频率点的情况。
9. 窗函数法和频率采样法区别
窗函数法:从时域出发,先求 hd(n),再乘窗函数。
频率采样法:从频域出发,先给 Hd(k),再 IDFT 求 h(n)。
讲义中的归纳就是:窗函数法控制时域截取方式,频率采样法控制频域采样点。
第四轮常见考点可以压缩为:
- FIR 与 IIR 比较:FIR 无反馈、稳定、可严格线性相位,但同等指标下通常阶数和延迟更大。
- 线性相位判断:检查 h(n)=±h(N−1−n),群时延为 (N−1)/2。
- 四类 FIR 判断:先看对称性,再看长度奇偶性和 0,π 端点限制。
- 窗函数设计:选窗、估计 N、求 α 和 ωc、写 hd(n)、最后加窗。
- 频率采样法:先取 Hd(k),再由 IDFT 得到 h(n)。
小例题:判断 FIR 是否满足线性相位
已知某 FIR 滤波器长度 N=5,冲激响应为
h(0)=1,h(1)=2,h(2)=3,h(3)=2,h(4)=1
判断它是否满足线性相位条件。
解答:
线性相位 FIR 的核心条件是
h(n)=±h(N−1−n)
这里 N=5,所以应比较:
h(0) 与 h(4),h(1) 与 h(3),h(2) 与 h(2)
题目中有
h(0)=h(4)=1,h(1)=h(3)=2
所以它满足偶对称条件
h(n)=h(4−n)
因此它满足线性相位条件,且属于偶对称、奇数长度这一类。
最后把这一轮压缩成一句话:
FIR 用有限长 h(n) 逼近理想滤波器;线性相位靠对称性,窗函数法靠时域截断,频率采样法靠频域取点。
最后再背:LTI 基础、单位冲激、卷积、采样定理、欧拉公式、复数运算
这一部分不是最难,但它是地基。如果你看不懂前面的内容,大概率是这些没懂。
1. LTI 是什么
LTI 是 Linear Time-Invariant,中文叫线性时不变系统。
线性意思是满足叠加原理。如果输入 x1(n) 输出 y1(n),输入 x2(n) 输出 y2(n),那么输入
ax1(n)+bx2(n)
输出应该是
ay1(n)+by2(n)
时不变意思是系统规则不随时间变化。如果输入延迟,输出也只延迟同样时间。
2. LTI 系统最重要公式
y(n)=x(n)∗h(n)
意思是:输入 x(n) 经过冲激响应为 h(n) 的 LTI 系统,输出就是二者卷积。
3. 卷积常用性质
单位冲激卷积:
x(n)∗δ(n)=x(n)
延迟冲激卷积:
x(n)∗δ(n−n0)=x(n−n0)
和阶跃卷积:
x(n)∗u(n)=m=−∞∑nx(m)
4. 采样定理
采样就是把连续信号变成离散信号。连续信号记作
xa(t)
采样后
x(n)=xa(nT)
这里 T 是采样周期,fs 是采样频率。采样定理说:
fs≥2fh
其中 fh 是信号最高频率。意思是采样频率至少要大于等于最高频率的 2 倍,否则会混叠。
5. 频谱混叠是什么
采样后,频谱会周期重复。如果采样频率太低,重复的频谱会重叠在一起,这就叫混叠。
人话解释:
混叠就是高频伪装成低频,导致恢复不回原信号
6. 欧拉公式
欧拉公式必须背:
ejω=cosω+jsinω
e−jω=cosω−jsinω
由它可以得到
cosω=2ejω+e−jω
sinω=2jejω−e−jω
7. 复数模和相角
复数
a+jb
模长:
∣a+jb∣=a2+b2
相角:
arg(a+jb)=tan−1ab
但注意象限,不能机械只看反正切值。
按考试性价比的最终复习顺序
你现在就按这个顺序复习,不要乱。
第一优先级:Z 变换与系统分析。你要掌握 X(z)、ROC、极点零点、单位圆、系统函数 H(z)、因果性与稳定性。
第二优先级:DFT、圆周卷积、FFT。你要掌握 DFT/IDFT 定义、采样关系、圆周卷积、线性卷积长度和 FFT 本质。
第三优先级:IIR 滤波器设计。你要掌握 IIR 的反馈特征、指标定义、脉冲响应不变法与双线性变换法。
第四优先级:FIR 滤波器设计。你要掌握线性相位条件、四种对称类型、窗函数法与频率采样法。
第五优先级:基础知识。你要掌握 δ(n)、u(n)、卷积、LTI、采样定理、欧拉公式、复数模和相角。
最后把整门课压成一句话:
Z 变换看系统性质,DFT/FFT 看有限频谱,IIR 靠模拟滤波器变换,FIR 靠线性相位和有限长逼近。
Discussion
Comments
Share questions, corrections, or extra notes about this post.