其他
判断线性时不变系统
例题 2:什么样的才是真正的 LTI 系统?
为了对比,我们看一个最简单的纯 LTI 系统:
y(n)=2x(n-1)
- 判断线性:先组合再过系统:y_3(n)=2[ax_1(n-1)+bx_2(n-1)]先过系统再组合:y_4(n)=a[2x_1(n-1)]+b[2x_2(n-1)]显然y_3(n)=y_4(n),是线性的。
- 判断时不变性:先延时再过系统(输入变 x(n-k)):把系统里的 x(\cdot) 里面替换掉,外面不变:y_A(n)=2x((n-1)-k)=2x(n-k-1)先过系统再整体延时(所有 n 换成 n-k):y_B(n)=2x((n-k)-1)=2x(n-k-1)显然y_A(n)=y_B(n),是时不变的。
例题 2 结论:同时满足,所以是纯正的 LTI 系统。
做这类题,最容易翻车的地方就是时不变性的判断,只要牢记“替换谁”的区别:
- 先延时后过系统:只替换 x() 括号里面的变量。
- 先过系统后延时:系统表达式里所有出现 n 的地方,全都要替换成 n-k。
求一个离散时间序列的周期
例题 1-2 逐题解析
(1) f_1(k)=\sin(\frac{\pi}{7}k+\frac{\pi}{6})
- 提取角频率:观察自变量 k 前面的系数,得出 \omega_0 = \frac{\pi}{7}。
- 计算比值:\frac{2\pi}{\omega_0}=\frac{2\pi}{\frac{\pi}{7}}=14
- 结论:因为 14 是一个整数(对应第一种情况),所以该序列是周期序列,且最小正周期 N_1 = 14。
(2) f_2(k)=\cos(\frac{5\pi}{6}k+\frac{\pi}{12})
- 提取角频率:得出 \omega_0 = \frac{5\pi}{6}。
- 计算比值:\frac{2\pi}{\omega_0}=\frac{2\pi}{\frac{5\pi}{6}}=\frac{12}{5}
- 结论:因为 \frac{12}{5} 是一个有理分数(对应第二种情况)。为了让周期 N 成为一个整数,我们需要给这个分数乘以一个最小的整数(这里是分母 5)来把分母消掉。所以 N = \frac{12}{5} \times 5 = 12。该序列是周期序列,最小正周期 N_2 = 12。
(3) f_3(k)=\cos(\frac{1}{5}k+\frac{\pi}{3})
- 提取角频率:得出 \omega_0 = \frac{1}{5}。
- 计算比值:\frac{2\pi}{\omega_0}=\frac{2\pi}{\frac{1}{5}}=10\pi
- 结论:因为结果中包含 \pi,所以 10\pi 是一个无理数(对应第三种情况)。无论你乘以什么整数,都无法让它变成一个整数周期。因此,该序列不是周期序列。
如果把两个不同周期的周期序列相加(比如 f_1(k) + f_2(k)),你清楚怎么求它们相加后形成的新序列的总周期吗?
DFT的计算

这张图里的计算过程看起来密密麻麻,全是一大串复杂的复指数 e^{-j\dots},确实很容易让人眼晕。但这其实是一只“纸老虎”。
这是在计算 4 点离散傅里叶变换 (DFT)。书上为了展示完整的理论推导,把公式写成了最原始、最繁琐的形式。只要引入一个“化简神器”——旋转因子 W_N,这个计算就会变成非常简单的小学加减法和基础的复数乘法。
下面我帮你把这一大坨公式“解压缩”,教你如何用最快、最清晰的方法算出来。
一、 破解复杂公式的“核心密码”
DFT 的标准计算公式是:
X(k)=\sum_{n=0}^{N-1}x(n)e^{-j\frac{2\pi}{N}nk}
这里面最吓人的就是那个 e 的指数部分。在信号处理中,我们统一定义一个符号叫旋转因子 W_N:
W_N=e^{-j\frac{2\pi}{N}}
因为这道题是 4 点 DFT,所以 N=4。我们来算一下 W_4 到底是个什么东西:
W_4=e^{-j\frac{2\pi}{4}}=e^{-j\frac{\pi}{2}}=\cos(\frac{\pi}{2})-j\sin(\frac{\pi}{2})=-j
记住这个结论:在 4 点 DFT 中,W_4 的本质就是一个简单的 -j。
基于这个结论,书上那些极其复杂的指数项,其实只有四种简单的结果,它们是循环的:
- W_4^0=1
- W_4^1=-j
- W_4^2=(-j)^2=-1
- W_4^3=(-j)^3=j
二、 用化简后的方法重新计算
现在,我们把题目的已知条件写下来:
输入序列:x(0)=1+j,\; x(1)=1-2j,\; x(2)=1,\; x(3)=-j
公式化简为:
X(k)=\sum_{n=0}^{3}x(n)W_4^{nk}
我们逐个来看书上的四个结果是怎么算出来的:
1. 计算 X(0) (最简单的一项)
当 k=0 时,公式里的 W_4^{n\cdot 0} 全部变成 W_4^0=1。
也就是说,X(0) 就是把时域的四个数字直接加起来,根本不用乘指数。
X(0)=x(0)+x(1)+x(2)+x(3)
X(0)=(1+j)+(1-2j)+1+(-j)
合并实部和虚部:实部 1+1+1=3,虚部 j-2j-j=-2j。
结果:
X(0)=3-2j
2. 计算 X(1) (仔细看复数乘法)
当 k=1 时,指数项的规律是 n\cdot 1,即 W_4^0, W_4^1, W_4^2, W_4^3。
对应的值分别是 1, -j, -1, j。
X(1)=x(0)\cdot(1)+x(1)\cdot(-j)+x(2)\cdot(-1)+x(3)\cdot(j)
代入数值:
X(1)=(1+j)\cdot 1+(1-2j)\cdot(-j)+1\cdot(-1)+(-j)\cdot j
展开复数(牢记 j^2 = -1):
- (1+j)\cdot 1 = 1+j
- (1-2j)\cdot(-j) = -j+2j^2 = -2-j
- 1\cdot(-1) = -1
- (-j)\cdot j = -j^2 = 1
加在一起:1+j-2-j-1+1
结果:
X(1)=-1
3. 计算 X(2)
当 k=2 时,指数项规律是 W_4^0, W_4^2, W_4^4, W_4^6。
利用周期性化简(W_4^4=W_4^0=1),对应的值变成了交替的 1, -1, 1, -1。
X(2)=x(0)\cdot(1)+x(1)\cdot(-1)+x(2)\cdot(1)+x(3)\cdot(-1)
代入数值:
X(2)=(1+j)-(1-2j)+1-(-j)
X(2)=1+j-1+2j+1+j
结果:
X(2)=1+4j
4. 计算 X(3)
当 k=3 时,指数项规律是 W_4^0, W_4^3, W_4^6, W_4^9。
化简后对应的值是 1, j, -1, -j。
X(3)=x(0)\cdot(1)+x(1)\cdot(j)+x(2)\cdot(-1)+x(3)\cdot(-j)
代入数值展开:
X(3)=(1+j)\cdot 1+(1-2j)\cdot j+1\cdot(-1)+(-j)\cdot(-j)
X(3)=1+j+j-2j^2-1+j^2
X(3)=1+j+j+2-1-1
结果:
X(3)=1+2j
总结
下次在考试或做题遇到这种算 DFT 的题目,千万不要像书上那样去抄长串的 e^{-j\dots}。
直接在草稿纸上列出 W_N 的几个基本值(通常考 4 点或 8 点),然后直接把它们当作常数代入到乘法里,过程会清晰且不易出错。
圆周圆环移位

第一步:破解题目的“黑话”
在动手算之前,我们先搞懂题目里这些符号到底在说啥:
- x(n)=\{1,2,3,4\}:数字 1 下面有下划线,意思是当 n=0 时,值为 1。原来的序列只有 4 个数。
- R_8(n):这个叫“矩形窗”。你不用管它复杂的定义,它在这里的意思仅仅是:我们的结果只要 n=0 到 7 这 8 个数,多余的不要。
- ((\dots))_8:这就是核心!它代表8点循环移位(对 8 取模/求余数)。
既然要在 8 的世界里玩,原来的 x(n) 只有 4 个数不够怎么办?末尾补 0 补齐 8 个!
所以,我们真正要操作的基础序列其实是这样的:
x(n) = \{1, 2, 3, 4, 0, 0, 0, 0\}
(对应位置分别是 n=0, 1, 2, 3, 4, 5, 6, 7)
第二步:逐个击破
做循环移位,就把这 8 个数想象成一个首尾相连的圆环。移出去的数,会像贪吃蛇穿墙一样从另一边钻回来。
1. x((n+2))_8 R_8(n)
- 含义:+2 表示把序列整体向左移动 2 格。
- 操作:最左边的 1 和 2 被挤出去了,它们绕一圈从最右边补进来。
- 结果:\{3, 4, 0, 0, 0, 0, 1, 2\}
2. x((n-2))_8 R_8(n)
- 含义:-2 表示把序列整体向右移动 2 格。
- 操作:最右边的两个 0 被挤出去了,绕一圈补到最左边。
- 结果:\{0, 0, 1, 2, 3, 4, 0, 0\}
3. x((-n+2))_8 R_8(n)
- 含义:一看到 -n,情况就稍微复杂点,这包含了时间翻转。做这种题,最稳妥的办法就是直接代入 n 算对应的值,只要记住“对 8 求余数”就行。
- 操作(让 n 从 0 取到 7):
- n=0:求 x(2) = 3
- n=1:求 x(1) = 2
- n=2:求 x(0) = 1
- n=3:求 x(-1),在 8 点循环里,-1 等同于 7(因为 -1+8=7),所以是 x(7) = 0
- n=4:求 x(-2),对应 x(6) = 0
- n=5:求 x(-3),对应 x(5) = 0
- n=6:求 x(-4),对应 x(4) = 0
- n=7:求 x(-5),对应 x(3) = 4
- 结果:\{3, 2, 1, 0, 0, 0, 0, 4\}
4. x((-n-2))_8 R_8(n)
- 含义:同样的方法,带入 n 算索引,负数就加上 8 找对应的正数位置。
- 操作:
- n=0:求 x(-2),即 x(6) = 0
- n=1:求 x(-3),即 x(5) = 0
- n=2:求 x(-4),即 x(4) = 0
- n=3:求 x(-5),即 x(3) = 4
- n=4:求 x(-6),即 x(2) = 3
- n=5:求 x(-7),即 x(1) = 2
- n=6:求 x(-8),即 x(0) = 1
- n=7:求 x(-9),-9 加两个 8 等于 7,即 x(7) = 0
- 结果:\{0, 0, 0, 4, 3, 2, 1, 0\}
最终填空答案总结:
- \{3, 4, 0, 0, 0, 0, 1, 2\}
- \{0, 0, 1, 2, 3, 4, 0, 0\}
- \{3, 2, 1, 0, 0, 0, 0, 4\}
- \{0, 0, 0, 4, 3, 2, 1, 0\}
蝶形运算

没错,这正是数字信号处理中最著名的蝶形运算(Butterfly Operation)!
具体来说,这张图展示的是一个 4 点基-2 频率抽取(DIF)快速傅里叶变换(FFT) 的信号流图。
不用觉得它看起来像毛线团一样乱,只要掌握了它“看图说话”的两个基本规则,算起来比传统的纯代数公式简单得多。
🦋 蝶形图的“看图规则”
在看懂整张图之前,我们先单独抠出一个“蝴蝶”的交叉点。每一个基础的蝶形运算都遵循以下规则:
- 上半支路是“相加”:两条线汇聚到上面那个点时,直接把两个数字加起来。
- 下半支路是“相减再相乘”:留意下半支路有一根线上标着
-1,这意味着要用上面的数减去下面的数。减完之后,再乘以前方箭头处标注的旋转因子(比如 W_4^0, W_4^1)。
掌握了这个规则,我们把这张图分成两级(两列)来拆解计算。
第一级蝶形运算(看左边一半)
第一级是两个“大跨度”的蝴蝶,跨度为 2。
此时的输入是原序列:
x[0]=1, x[1]=2, x[2]=3, x[3]=4
1. 第一个大蝴蝶(处理 x[0] 和 x[2]):
- 上半支(红色 4):直接相加。1 + 3 = 4
- 下半支(红色 -2):相减,再乘以 W_4^0(图中已给出 W_4^0=1)。(1 – 3) \times 1 = -2
2. 第二个大蝴蝶(处理 x[1] 和 x[3]):
- 上半支(红色 6):直接相加。2 + 4 = 6
- 下半支(红色 2j):相减,再乘以 W_4^1(图中已给出 W_4^1=-j)。(2 – 4) \times (-j) = -2 \times (-j) = 2j
到这里,第一级算完了,我们得到了四个中间结果,也就是图中中间那列红色的数字:4, 6, -2, 2j。
第二级蝶形运算(看右边一半)

第二级变成了两个“小跨度”的蝴蝶,跨度为 1。它们分别处理刚才算出来的那两组红色的中间结果。
(注:第二级的旋转因子默认为 W_2^0=1,所以在这一级只做加减法,不涉及复数乘法。)
1. 上面的小蝴蝶(处理红色的 4 和 6):
- 上半支:直接相加。4 + 6 = 10(这个结果对应 X[0])
- 下半支:相减。4 – 6 = -2(这个结果对应 X[2])
2. 下面的小蝴蝶(处理红色的 -2 和 2j):
- 上半支:直接相加。-2 + 2j(这个结果对应 X[1])
- 下半支:相减。-2 – 2j(这个结果对应 X[3])
⚠️ 考点大坑:输出的“倒位序”
如果你仔细看最右侧的输出结果,会发现它们的下标顺序是乱的:不是 0, 1, 2, 3,而是 0, 2, 1, 3。
这是频率抽取法 (DIF) FFT 的一个典型特征:输入是自然顺序,输出是倒位序(Bit-Reversal)。
在实际写最终答案时,你需要手动把它们按正确的下标重新排好:
- X[0] = 10
- X[1] = -2+2j
- X[2] = -2
- X[3] = -2-2j
所以最终的 DFT 序列结果就是:
\{10, -2+2j, -2, -2-2j\}
。
这和上一题用普通公式算出来的结果是一模一样的,但通过蝶形图,我们将复杂的复数乘加运算拆解成了最简单的连线加减法。
画滤波器图 1,2型

画 IIR 滤波器的直接 II 型(典范型)*结构图,其实就是根据系统函数 H(z) 进行“填空”。这个过程非常机械,只要记住一个核心口诀:*“中间串延时,左边画分母(需变号),右边画分子(不变号)”。
下面为你拆解具体的作图步骤:
第一步:提取系数并确认符号(最容易出错的一步)
观察题目给出的系统函数:
H(z) = \frac{8 – 4z^{-1} + 11z^{-2} – 2z^{-3}}{1 – \frac{5}{4}z^{-1} + \frac{3}{4}z^{-2} – \frac{1}{8}z^{-3}}
- 右半边(分子系数 / 前馈分支):系数按顺序直接照抄,符号不变。
- b_0 = 8
- b_1 = -4
- b_2 = 11
- b_3 = -2
- 左半边(分母系数 / 反馈分支):注意分母的常数项必须是 1(题目已满足)。提取后面的系数时,符号必须全部取反!
- 原式是 -\frac{5}{4},画图时系数为 \frac{5}{4}
- 原式是 +\frac{3}{4},画图时系数为 -\frac{3}{4}
- 原式是 -\frac{1}{8},画图时系数为 \frac{1}{8}
第二步:搭建“脊梁骨”
观察到公式中 z 的最高次幂是 -3,这意味着系统是三阶的,需要用到 3 个延迟单元 (z^{-1})。
在纸的正中间,从上到下垂直画 3 个标有 z^{-1} 的方框,用箭头串联起来。
第三步:按图索骥完成连线
按照直接 II 型的标准画法,把刚才提取的系数填上去。我用字符画为你展示最终的结构图长什么样:
Plaintext
x(n) ──▶(+) ───────┬──────▶ [ 8 ] ──────▶(+)──▶ y(n)
▲ │ ▲
│ [z^-1] │
│ │ │
5/4 │ │ │
├──────────┤──────▶ [ -4 ] ────────┤
▲ │ ▲
│ [z^-1] │
│ │ │
-3/4 │ │ │
├──────────┤──────▶ [ 11 ] ────────┤
▲ │ ▲
│ [z^-1] │
│ │ │
1/8 │ │ │
└──────────┴──────▶ [ -2 ] ────────┘
绘图细节核对清单(考试画完后自我检查):
- 输入输出:左上角是输入 x(n),右上角是输出 y(n)。
- 加法器 (+):左上角有一个加法器汇总反馈信号,右侧有一排加法器汇总前馈信号。
- 箭头方向:所有的信号流动方向都是从上到下、从左到右、或者从下往上回馈,箭头千万不要画反。
- 变号检查:再次盯住左边那三个乘法器系数(\frac{5}{4}, -\frac{3}{4}, \frac{1}{8}),确保它们和原分母公式里的符号正好相反。

直接一型画法
提取系数的规则和刚才一模一样:
- 分子(前馈,左半边):直接照抄,符号不变(8, -4, 11, -2)。
- 分母(反馈,右半边):除了常数项 1 不管,其余系数必须全部变号(\frac{5}{4}, -\frac{3}{4}, \frac{1}{8})。
结构图展示
直接 I 型的图看起来像一个左右对称的大骨架:左边只处理输入 x(n),右边只处理输出 y(n),然后在中间汇合。
Plaintext
x(n) y(n)
│ ▲
├─────────▶[ 8 ]────────▶(+)◀────────┬───────────────┤
│ ▲ │ │
[z^-1] │ │ [z^-1]
│ │ │ │
├─────────▶[ -4 ]────────▶(+) └─────[ 5/4]◀───┤
│ ▲ │
[z^-1] │ [z^-1]
│ │ │
├─────────▶[ 11 ]────────▶(+) ┌─────[-3/4]◀───┤
│ ▲ │ │
[z^-1] │ │ [z^-1]
│ │ │ │
└─────────▶[ -2 ]────────▶(+)◀────────┴─────[ 1/8]◀───┘
大题
z反变换

做这种题的核心目的只有一个:把一个复杂的、在 Z 变换表里查不到的复杂分式,拆解成几个简单的、能直接查表秒出答案的简单分式相加。
我们一步一步来拆解这个过程:
核心公式对比
X(z)=\frac{1}{1+\frac{1}{2}z^{-1}}, \quad |z|<\frac{1}{2}
\frac{1}{1-az^{-1}} \leftrightarrow a^nu(n) \quad (|z|>|a|)
在查表时,对于分母是 1-az^{-1} 的表达式,有两套完全相反的规则:
- 当 |z|>|a| 时(向外发散):对应右边序列 a^nu(n)。
- 当 |z|<|a| 时(向内收敛):对应左边序列 -a^nu(-n-1)。
第一步:把正数次幂变成负数次幂(凑标准型)
题目给的是:
X(z)=\frac{z^2}{(z-1)(z-2)}
我们在查常用的 Z 变换表时,公式大多是带着 z^{-1} 的。所以我们要给分子分母同时除以最高次幂(这里是 z^2),把它变成负次幂的形式:
分子:
z^2 \div z^2 = 1
分母:
(z-1)(z-2) = z^2-3z+2
,除以 z^2 后变成
1-3z^{-1}+2z^{-2}
,再分解因式就是
(1-z^{-1})(1-2z^{-1})
。
所以得到了书上的第一步:
X(z)=\frac{1}{(1-z^{-1})(1-2z^{-1})}
第二步:设未知数拆分(部分分式展开)
现在分母有两个因式相乘,我们要把它拆成两项相加的样子:
X(z)=\frac{A}{1-z^{-1}}+\frac{B}{1-2z^{-1}}
现在的任务就是求出 A 和 B 分别是多少。
第三步:求 A 和 B(留数法 / 遮挡法)
书上那一长串公式就是在算这个。这里教你一个通俗易懂的“遮挡法”:
1. 怎么求 A?
A 的分母是 (1-z^{-1})。
你去看总式子 X(z)=\frac{1}{(1-z^{-1})(1-2z^{-1})},把和 A 分母一模一样的那个因式 (1-z^{-1}) 遮住(删掉),剩下的部分就是:
\frac{1}{1-2z^{-1}}
然后,让被遮住的那部分等于 0,即 1-z^{-1}=0,解得 z=1。
把 z=1 代入剩下的部分里:
A = \frac{1}{1-2(1)^{-1}} = \frac{1}{1-2} = -1
这就和书上算出的 A = -1 对上了。
2. 怎么求 B?
同理,B 的分母是 (1-2z^{-1})。
回到总式子,把 (1-2z^{-1}) 遮住,剩下:
\frac{1}{1-z^{-1}}
让遮住的部分等于 0,即 1-2z^{-1}=0,解得 2z^{-1}=1 \Rightarrow z=2。
把 z=2 代入剩下的部分里:
B = \frac{1}{1-(2)^{-1}} = \frac{1}{1-0.5} = \frac{1}{0.5} = 2
这就和书上算出的 B = 2 对上了。
第四步:写出拆解后的完整式子
把算出来的 A 和 B 代回去,看第二张图的最上面:
X(z)=\frac{-1}{1-z^{-1}}+\frac{2}{1-2z^{-1}}
第五步:查表写答案(注意收敛域)
这一步要用到题目给的条件:收敛域 |z| > 2。
收敛域是 |z| > \text{某数}(大于号),说明这是一个因果序列(右边序列),它在时域里一定会乘上一个阶跃序列 u(n)。
回忆一下最基础的 Z 变换对:
\frac{1}{1-az^{-1}} \leftrightarrow a^n u(n)
现在我们分别对拆开的两项套公式:
- 第一项:\frac{-1}{1-z^{-1}},这里的 a=1。反变换就是 -1 \cdot (1^n) u(n) = -u(n)。
- 第二项:\frac{2}{1-2z^{-1}},这里的 a=2。反变换就是 2 \cdot (2^n) u(n)。
把它们加起来,就是最终答案:
x(n) = -u(n) + 2(2^n)u(n) = [2(2^n)-1]u(n)
总结一下:这种题就是一套死流程:化负次幂 \rightarrow 设 A,B \rightarrow 遮挡法求 A,B \rightarrow 套公式出结果。多拿纸笔练两次,你就能肌肉记忆了!
z反变换例题2

第 (3) 题:经典的“留数展开题”
这道题稍微复杂一点,但流程和我们刚才学的“遮挡法”一模一样。
题目:
X(z)=\frac{1-\frac{1}{2}z^{-1}}{1+\frac{3}{4}z^{-1}+\frac{1}{8}z^{-2}}, \quad |z|>\frac{1}{2}
解题步骤:
第一步:把分母因式分解
你需要把分母的二次多项式拆成两个一次多项式相乘。
令 y = z^{-1},分母就是 1+\frac{3}{4}y+\frac{1}{8}y^2。
稍微凑一下十字相乘法(或者求根公式),可以把它分解为:
(1+\frac{1}{2}z^{-1})(1+\frac{1}{4}z^{-1})
(检查一下:1 + \frac{1}{4}z^{-1} + \frac{1}{2}z^{-1} + \frac{1}{8}z^{-2} = 1 + \frac{3}{4}z^{-1} + \frac{1}{8}z^{-2},没问题!)
所以现在的式子变成了:
X(z)=\frac{1-\frac{1}{2}z^{-1}}{(1+\frac{1}{2}z^{-1})(1+\frac{1}{4}z^{-1})}
第二步:设未知数,准备拆分
把它拆成两项相加:
X(z)=\frac{A}{1+\frac{1}{2}z^{-1}}+\frac{B}{1+\frac{1}{4}z^{-1}}
第三步:用“遮挡法”求 A 和 B
- 求 A:把总式子里和 A 分母一样的 (1+\frac{1}{2}z^{-1}) 遮住,剩下 \frac{1-\frac{1}{2}z^{-1}}{1+\frac{1}{4}z^{-1}}。令被遮住的部分为 0,得到 z^{-1} = -2。代入剩下的部分:A=\frac{1-\frac{1}{2}(-2)}{1+\frac{1}{4}(-2)}=\frac{1+1}{1-0.5}=\frac{2}{0.5}=4
- 求 B:把总式子里和 B 分母一样的 (1+\frac{1}{4}z^{-1}) 遮住,剩下 \frac{1-\frac{1}{2}z^{-1}}{1+\frac{1}{2}z^{-1}}。令被遮住的部分为 0,得到 z^{-1} = -4。代入剩下的部分:B=\frac{1-\frac{1}{2}(-4)}{1+\frac{1}{2}(-4)}=\frac{1+2}{1-2}=\frac{3}{-1}=-3
把算出来的 A 和 B 填回去,拆解成功:
X(z)=\frac{4}{1+\frac{1}{2}z^{-1}}-\frac{3}{1+\frac{1}{4}z^{-1}}
第四步:查表写最终结果
观察拆出来的两项:
- 第一项的极点在 z=-\frac{1}{2},公式里的 a=-\frac{1}{2}。
- 第二项的极点在 z=-\frac{1}{4},公式里的 a=-\frac{1}{4}。题目给的收敛域是 |z|>\frac{1}{2}。这个范围大于任何一个极点的绝对值(\frac{1}{2} 和 \frac{1}{4}),这意味着拆分出来的两项全都是右边序列(因果序列)。
直接套标准公式:
- 第一项反变换:4(-\frac{1}{2})^nu(n)
- 第二项反变换:-3(-\frac{1}{4})^nu(n)
相加得到最终答案:
x(n)=4(-\frac{1}{2})^nu(n)-3(-\frac{1}{4})^nu(n)
画蝶形图


1. 基于时间抽取 (DIT) 的蝶形图
对应图片:“1000020019.png”
- 核心口诀:先乘后加减。
- 画图步骤与解析:
- 画一个大叉,左边两个输入端是 X_1(k) 和 X_2(k)。
- 将旋转因子 W_N^k 画在左下方的输入支路上,位于交叉点之前。
- 这意味着下方的输入信号 X_2(k) 要先乘以 W_N^k 才能进入加减运算。
- 上半支路的输出(前半部分)是两路信号相加:X(k) = X_1(k) + W_N^k X_2(k)。
- 下半支路的输出(后半部分)是上半路减去下半路:X(N/2+k) = X_1(k) – W_N^k X_2(k)。
- 运算量说明:根据图示,完成这样一个蝶形运算需要 1 次复乘,2 次复加。
2. 基于频率抽取 (DIF) 的蝶形图
对应图片:“1000020017.png”
- 核心口诀:先加减后乘。
- 画图步骤与解析:
- 同样画一个大叉,左边两个输入端为 x(n) 和 x(n+N/2)。
- 交叉点之前不画任何乘法符号,两路输入直接进入加减交叉点。
- 上半支路的输出直接是两路输入相加:x_1(n) = x(n) + x(n+N/2)。
- 下半支路是两路输入相减后,再整体乘以旋转因子 W_N^n。
- 因此,旋转因子 W_N^n 必须画在右下方的输出支路上,位于相交的黑点之后。下方的最终输出表达式写为 x_2(n) = [x(n) – x(n+N/2)]W_N^n。
考试速记防混淆指南:
在自己手动画完整的 8 点或 4 点 FFT 流程图时,只需记住以下特征:
- 看 DIT (时间):旋转因子在交叉点左边(进门前先乘)。
- 看 DIF (频率):旋转因子在交叉点右边(减完出门后再乘)。
- 共同点:不管哪种画法,上半支路的交叉线永远代表相加,下半支路的交叉线永远代表相减。
滤波器的设计


这两页的核心内容是:如何设计一个“巴特沃斯模拟低通滤波器 (Butterworth Analog Low-Pass Filter)”。
在数字信号处理中,要想设计一个数字滤波器,我们通常会先设计一个模拟滤波器,然后再把它转换成数字的。而“巴特沃斯”是最经典的一种,它的特点是通带非常平坦,没有任何波纹。
书上的【例 6-1】其实就是手把手教你过这四道关卡,我们把它“翻译”成人话:
第一步:明确甲方的需求 (性能指标)
设计滤波器就像做工程,题目(甲方)会给你 4 个硬性指标:
- \Omega_p = 10000 \text{ rad/s}:通带截止频率(在这个频率之前,信号必须无损通过)。
- A_p = 3 \text{ dB}:通带最大衰减(允许信号最多衰减多少)。
- \Omega_s = 40000 \text{ rad/s}:阻带截止频率(在这个频率之后,信号必须被狠狠掐断)。
- A_s = 35 \text{ dB}:阻带最小衰减(掐断的力度,越大越好)。
第二步:计算滤波器的阶数 N (决定复杂度)
滤波器的阶数 N 决定了你要用几个电容电感(或者几个延迟单元)。N 越大,滤波效果越好,但成本越高。
书上那个看起来极其恐怖的带有 \lg 的公式,就是用来算 N 的。
- 无脑代入:把上面 4 个指标塞进公式,一顿按计算器,算出 N \ge 2.9083。
- 向上取整:阶数必须是整数,所以我们取 N = 3。这意味着我们需要一个 3 阶的滤波器。
第三步:计算真实的 3dB 截止频率 \Omega_c
虽然甲方给了一个通带频率 \Omega_p,但我们根据公式反推,算出一个更精准的系统内部使用的截止频率 \Omega_c。
代入公式算出来 \Omega_c = 10441 \text{ rad/s}。
第四步:写出系统函数 H_a(s) (终极大招)
这是最关键的一步,要求出这个滤波器的数学表达式 H_a(s)。书上给了你两种方法:
方法 A:硬算法(求极点)
利用公式硬算出 3 个极点 s_1, s_2, s_3。因为 N=3,极点在复平面上正好是一个半圆上的三个点。然后把它们乘起来作为分母。这通常很折磨人。
方法 B:查表法(考试最爱用,也就是书上写的“去归一化”)
前人早就帮我们算好了基础模板(归一化系统函数)!
- 查表:既然算出来 N=3,直接查书上的表,找到 N=3 对应的基础公式是:G_a(p) = \frac{1}{p^3 + 2p^2 + 2p + 1}
- 去归一化(替换变形):把基础公式里的字母 p,全部替换成 \frac{s}{\Omega_c}。
- 整理结果:把 \Omega_c = 10441 代入进去,展开化简,就得到了第二张图最上面的那一长串最终的系统函数 H_a(s)。
第二张图 (1000020024.jpg) 下半部分在说什么?
- 中间的代码和图:这是用 MATLAB 软件把你刚才手工算出来的参数画了出来。图 6-5 就是这个滤波器的频响曲线,你可以看到它在前端非常平缓(这就是巴特沃斯的特色),然后迅速下降。
- 最底下的一段话:这是一个预告!它说,既然我们现在已经千辛万苦求出了模拟滤波器的 H_a(s),下一步,我们就要通过某种映射法则(比如把 S 平面的虚轴映射到 Z 平面的单位圆上),把它变成数字滤波器 H(z)。这才是我们这门课的最终目的。
公式怎么查
第一步:明确归一化系统函数的长相
对于巴特沃斯低通滤波器,它的归一化系统函数 G_a(p) 永远长这个样子:
G_a(p) = \frac{1}{B(p)}
分子永远是 1,我们需要拼凑的仅仅是分母 B(p)。
第二步:看懂表头的公式
仔细看表格最上面那行公式:
B(p) = p^N + b_{N-1}p^{N-1} + b_{N-2}p^{N-2} + \dots + b_1p + b_0
这个公式告诉你三件事:
- 分母是一个关于 p 的多项式。
- 多项式的最高次幂就是你算出来的阶数 N,而且 p^N 前面的系数永远是 1(所以表里没写)。
- 表格里填的 b_0, b_1, b_2 \dots 这些数字,就是 p 的逐渐降级的次幂前面的系数。
第三步:实战拼图(以前一题 N=3 为例)
我们在上一题算出了滤波器的阶数 N=3。现在我们来查表拼公式:
- 定位行:在最左边“阶数 N”这一列,找到 3 对应的那一行。
- 抄系数:顺着这一行往右看,抄下对应的数字:
- b_0 = 1.0000
- b_1 = 2.0000
- b_2 = 2.0000
- 拼装分母 B(p):最高次幂是 p^3。然后把系数依次排好:B(p) = p^3 + b_2 p^2 + b_1 p^1 + b_0把数字代进去:B(p) = p^3 + 2.0000p^2 + 2.0000p + 1.0000
- 写出完整模板:加上永远为 1 的分子,你就得到了完整的归一化函数:G_a(p) = \frac{1}{p^3 + 2p^2 + 2p + 1}
你看,这个结果是不是和上一张图中书本上给出的 G_a(p) 一模一样!
再来练一个:如果 N=4 怎么查?
- 找 N=4 那行。
- 抄系数:b_0 = 1.0000, b_1 = 2.6131, b_2 = 3.4142, b_3 = 2.6131。
- 拼装多项式(最高次是 p^4):B(p) = p^4 + 2.6131p^3 + 3.4142p^2 + 2.6131p + 1
- 完整函数:G_a(p) = \frac{1}{p^4 + 2.6131p^3 + 3.4142p^2 + 2.6131p + 1}
最后一步的使命:
记住,查表得到的 G_a(p) 只是一个通用的“模板”(归一化的)。在真正的考试题里,拿到这个式子后,你还需要做最后一步“去归一化”——就是把式子里所有的 p 强制替换成 \frac{s}{\Omega_c}(\Omega_c 是你前面算出来的截止频率),化简后才能得到最终的模拟滤波器系统函数 H_a(s)。
脉冲响应不变法
p176
这个例题(例 6-3)非常经典,它演示了将模拟滤波器转换为数字滤波器的第一种核心方法:脉冲响应不变法。
这个方法的名字听起来很高级,但它的核心原理用大白话讲就是:让数字滤波器的单位脉冲响应 h(n),完全等于模拟滤波器单位冲激响应 h_a(t) 的等间隔采样。
落实到做题上,这依然是一个极其死板的“三步走”套路。我带你一步步拆解书上的过程:
第一步:将 H_a(s) 展开为部分分式(老朋友又来了)
题目给出的模拟滤波器系统函数是:
H_a(s) = \frac{3}{s^2 + 4s + 3}
我们需要把它拆解成一次项相加的形式。
- 因式分解分母:s^2 + 4s + 3 = (s+1)(s+3)。
- 设未知数拆分:设 H_a(s) = \frac{A}{s+1} + \frac{B}{s+3}。
- 用“遮挡法”求 A 和 B(这招你已经会了!):
- 求 A:遮住 (s+1),剩下 \frac{3}{s+3}。令 s = -1,代入得 A = \frac{3}{-1+3} = \frac{3}{2}。
- 求 B:遮住 (s+3),剩下 \frac{3}{s+1}。令 s = -3,代入得 B = \frac{3}{-3+1} = -\frac{3}{2}。
把公因数 \frac{3}{2} 提出来,就得到了书上的第一步结果:
H_a(s) = \frac{3}{2} \left( \frac{1}{s+1} – \frac{1}{s+3} \right)
第二步:套用“脉冲响应不变法”的转换字典
这是这道题唯一的“新知识点”。你需要记住一个死公式(转换字典):
只要在 S 域(模拟)里看到 \frac{1}{s – s_k},在 Z 域(数字)里就直接替换成 \frac{1}{1 – e^{s_k T} z^{-1}}。
(T 是采样周期,也是题目中设定的常量)
现在我们对着字典翻译刚刚拆好的式子:
- 第一项:\frac{1}{s+1} = \frac{1}{s – (-1)},这里 s_k = -1。翻译过来就是 \frac{1}{1 – e^{-T} z^{-1}}。
- 第二项:\frac{1}{s+3} = \frac{1}{s – (-3)},这里 s_k = -3。翻译过来就是 \frac{1}{1 – e^{-3T} z^{-1}}。
把它们拼回去,数字滤波器的系统函数 H(z) 就出来了:
H(z) = \frac{3}{2} \left( \frac{1}{1 – e^{-T} z^{-1}} – \frac{1}{1 – e^{-3T} z^{-1}} \right)
第三步:通分化简(纯体力活)
书上紧接着把括号里的两项进行了通分相减,合并成了一个大分式。
- 分子:交叉相乘相减,(1 – e^{-3T} z^{-1}) – (1 – e^{-T} z^{-1}) = (e^{-T} – e^{-3T}) z^{-1}。
- 分母:两个分母相乘,展开后得到 1 – (e^{-T} + e^{-3T})z^{-1} + e^{-4T}z^{-2}。
把外面的 \frac{3}{2} 乘到分子上,就得到了书上化简后的最终公式:
H(z) = \frac{\frac{3}{2} z^{-1} (e^{-T} – e^{-3T})}{1 – z^{-1}(e^{-T} + e^{-3T}) + z^{-2}e^{-4T}}
第四步:代入具体的采样周期 T
最后,书上分别假设了 T=1s 和 T=0.1s,用计算器算出具体的数值代入公式:
- 当 T=1s 时,算出来 H_1(z) = \frac{0.47714 z^{-1}}{1 – 0.41767 z^{-1} + 0.018316 z^{-2}}。
- 当 T=0.1s 时,算出来 H_2(z) = \frac{0.24603 z^{-1}}{1 – 1.64566 z^{-1} + 0.67032 z^{-2}}。
💡 灵魂拷问:为什么要算两个不同的 T?
翻到第二张图,看下面的频率特性曲线图,这才是出这道题的真正目的!
书上指出了脉冲响应不变法的一个致命缺点:频谱混叠失真。
因为题目给的模拟滤波器 H_a(s) 并不是一个“绝对带限”的信号(它的高频部分没有完全衰减到 0),所以在进行数字采样时,必然会发生高频信号折叠混叠的现象。
- 从图 (b) 可以明显看出,T 越大(比如 T=1s),采样频率越低,失真就越严重。
- 即使把 T 缩小到 0.1s,失真虽然减轻了,但依然存在。
正是为了克服这个讨厌的“频谱混叠”,工程师们才发明了第二张图最下方标题所写的——双线性变换法。
不是的!这是一个在初学时非常容易搞错的逻辑陷阱。
遮挡法(留数法)的核心口诀是:令“被遮住的分母”等于 0 求出极点,然后代入“剩下的式子”中进行计算。 绝对不是令剩下的式子等于 0。
为了让你彻底记住,且不再死记硬背,我给你拆解一下这个“遮挡法”背后的数学原理。它其实根本不是什么魔术,就是小学学过的等式两边同乘一个数。
遮挡法背后的真正原理
我们以图片里的式子为例:
\frac{3}{(s+1)(s+3)} = \frac{A}{s+1} + \frac{B}{s+3}
现在我们的目标是求出 A。
为了把 A 单独“剥离”出来,我们在等号左右两边,同时乘以 A 的分母,也就是 (s+1)。
- 等式左边:乘以 (s+1) 后,(s+1) 被约掉了,剩下: \frac{3}{s+3}
- 等式右边:两项都要乘以 (s+1),变成了: A + \frac{B(s+1)}{s+3}
所以等式变成了这样:
\frac{3}{s+3} = A + \frac{B(s+1)}{s+3}
现在,关键的一步来了!我们想等式右边只剩下 A,怎么把带有 B 的那一长串直接消灭掉?
很简单,只要让 (s+1) = 0 就可以了! 也就是令 s = -1。
把 s = -1 代入上面的等式:
- 等式右边带有 B 的项因为分子是 0,直接灰飞烟灭,只剩下一个干干净净的 A。
- 等式左边把 s = -1 代入进去,就变成了 \frac{3}{-1+3}。
所以, A = \frac{3}{-1+3} = \frac{3}{2} 。
总结“遮挡法”的动作拆解
你看,这套严格的数学推导,在做题时被前辈们简化成了极其“无脑”的遮挡法口诀:
- 你要找谁的分子(比如 A),就看谁的分母((s+1))。
- 令这个分母等于 0(令 s+1=0,得到 s=-1)。这一步的本质,是为了在等式右边消灭掉其他的未知数。
- 去总式子里,把这个分母用手捂住(遮掉)。这一步的本质,是等式左边约分抵消的过程。
- 把刚刚求出来的 s=-1,代入到没有被遮住的、剩下的所有部分里去算。算出来的结果就是我们要的分子。
千万别把“剩下的式子等于 0”和“遮住的式子等于 0”搞反啦!

