1122
本文最后更新于 72 天前,其中的信息可能已经有所发展或是发生改变。

其他

判断线性时不变系统

例题 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的计算

image-20260705180954623

这张图里的计算过程看起来密密麻麻,全是一大串复杂的复指数 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 点),然后直接把它们当作常数代入到乘法里,过程会清晰且不易出错。

圆周圆环移位

image-20260705181233532

第一步:破解题目的“黑话”

在动手算之前,我们先搞懂题目里这些符号到底在说啥:

  • 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\}

最终填空答案总结:

  1. \{3, 4, 0, 0, 0, 0, 1, 2\}
  2. \{0, 0, 1, 2, 3, 4, 0, 0\}
  3. \{3, 2, 1, 0, 0, 0, 0, 4\}
  4. \{0, 0, 0, 4, 3, 2, 1, 0\}

蝶形运算

没错,这正是数字信号处理中最著名的蝶形运算(Butterfly Operation)

具体来说,这张图展示的是一个 4 点基-2 频率抽取(DIF)快速傅里叶变换(FFT) 的信号流图。

不用觉得它看起来像毛线团一样乱,只要掌握了它“看图说话”的两个基本规则,算起来比传统的纯代数公式简单得多。

🦋 蝶形图的“看图规则”

在看懂整张图之前,我们先单独抠出一个“蝴蝶”的交叉点。每一个基础的蝶形运算都遵循以下规则:

  1. 上半支路是“相加”:两条线汇聚到上面那个点时,直接把两个数字加起来。
  2. 下半支路是“相减再相乘”:留意下半支路有一根线上标着 -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

第二级蝶形运算(看右边一半)

image-20260705183349925

第二级变成了两个“小跨度”的蝴蝶,跨度为 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型

image-20260704220650343

画 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 ] ────────┘

绘图细节核对清单(考试画完后自我检查):

  1. 输入输出:左上角是输入 x(n),右上角是输出 y(n)。
  2. 加法器 (+):左上角有一个加法器汇总反馈信号,右侧有一排加法器汇总前馈信号。
  3. 箭头方向:所有的信号流动方向都是从上到下、从左到右、或者从下往上回馈,箭头千万不要画反。
  4. 变号检查:再次盯住左边那三个乘法器系数(\frac{5}{4}, -\frac{3}{4}, \frac{1}{8}),确保它们和原分母公式里的符号正好相反。
e34243d216c7b06d872aba2a5cb48bf

直接一型画法

提取系数的规则和刚才一模一样:

  • 分子(前馈,左半边):直接照抄,符号不变(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反变换

P20260705-131508

做这种题的核心目的只有一个:把一个复杂的、在 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} 的表达式,有两套完全相反的规则:

  1. 当 |z|>|a| 时(向外发散):对应右边序列 a^nu(n)。
  2. 当 |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)

现在我们分别对拆开的两项套公式:

  1. 第一项:\frac{-1}{1-z^{-1}},这里的 a=1。反变换就是 -1 \cdot (1^n) u(n) = -u(n)。
  2. 第二项:\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

P20260705-140605(1)

第 (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)

画蝶形图

P20260622-142249
P20260622-142400

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 (频率):旋转因子在交叉点右边(减完出门后再乘)。
  • 共同点:不管哪种画法,上半支路的交叉线永远代表相加,下半支路的交叉线永远代表相减

滤波器的设计

image-20260705212026543
P20260705-204432(1)

这两页的核心内容是:如何设计一个“巴特沃斯模拟低通滤波器 (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:查表法(考试最爱用,也就是书上写的“去归一化”)

前人早就帮我们算好了基础模板(归一化系统函数)!

  1. 查表:既然算出来 N=3,直接查书上的表,找到 N=3 对应的基础公式是:G_a(p) = \frac{1}{p^3 + 2p^2 + 2p + 1}
  2. 去归一化(替换变形):把基础公式里的字母 p,全部替换成 \frac{s}{\Omega_c}
  3. 整理结果:把 \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

这个公式告诉你三件事:

  1. 分母是一个关于 p 的多项式。
  2. 多项式的最高次幂就是你算出来的阶数 N,而且 p^N 前面的系数永远是 1(所以表里没写)。
  3. 表格里填的 b_0, b_1, b_2 \dots 这些数字,就是 p 的逐渐降级的次幂前面的系数

第三步:实战拼图(以前一题 N=3 为例)

我们在上一题算出了滤波器的阶数 N=3。现在我们来查表拼公式:

  1. 定位行:在最左边“阶数 N”这一列,找到 3 对应的那一行。
  2. 抄系数:顺着这一行往右看,抄下对应的数字:
    • b_0 = 1.0000
    • b_1 = 2.0000
    • b_2 = 2.0000
  3. 拼装分母 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
  4. 写出完整模板:加上永远为 1 的分子,你就得到了完整的归一化函数:G_a(p) = \frac{1}{p^3 + 2p^2 + 2p + 1}

你看,这个结果是不是和上一张图中书本上给出的 G_a(p) 一模一样!

再来练一个:如果 N=4 怎么查?

  1. 找 N=4 那行。
  2. 抄系数:b_0 = 1.0000, b_1 = 2.6131, b_2 = 3.4142, b_3 = 2.6131。
  3. 拼装多项式(最高次是 p^4):B(p) = p^4 + 2.6131p^3 + 3.4142p^2 + 2.6131p + 1
  4. 完整函数: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}

我们需要把它拆解成一次项相加的形式。

  1. 因式分解分母:s^2 + 4s + 3 = (s+1)(s+3)。
  2. 设未知数拆分:设 H_a(s) = \frac{A}{s+1} + \frac{B}{s+3}。
  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} 。

总结“遮挡法”的动作拆解

你看,这套严格的数学推导,在做题时被前辈们简化成了极其“无脑”的遮挡法口诀

  1. 你要找谁的分子(比如 A),就看谁的分母((s+1))。
  2. 令这个分母等于 0(令 s+1=0,得到 s=-1)。这一步的本质,是为了在等式右边消灭掉其他的未知数。
  3. 去总式子里,把这个分母用手捂住(遮掉)。这一步的本质,是等式左边约分抵消的过程。
  4. 把刚刚求出来的 s=-1,代入到没有被遮住的、剩下的所有部分里去算。算出来的结果就是我们要的分子。

千万别把“剩下的式子等于 0”和“遮住的式子等于 0”搞反啦!

暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇