ESC
输入关键词搜索文章
目录

离散时间系统的模拟与基本原理

系统框图、信号流图与梅森公式
用三种基本元件描述任意离散时间 LTI 系统
3基本元件
2表示方法
2结构形式
1梅森公式

前置知识回顾

本节把前面学过的时域与变换域工具翻译成"可画图、可搭建"的工程语言。开始前建议确认:

  • 差分方程:知道 $y[n]$ 如何由当前/过去输入和过去输出递推。可回看 离散时间信号与系统
  • Z 变换:理解 $H(z)=Y(z)/X(z)$,知道 $z^{-1}$ 对应单位延迟。可回看 Z 变换
Part 1 · 背景问题
为什么要用框图和流图描述系统

一个离散时间 LTI 系统可以用差分方程写,也可以用系统函数 $H(z)$ 写。两者都是数学描述,但工程实现时还需要回答:加法器、乘法器、延迟器应该怎样连接?

系统框图与信号流图就是这类问题的图形化语言。它们把抽象的递推关系变成可见的数据流:节点代表变量,支路代表运算(延迟或乘常数),加法器把多路信号合并。画好图之后,硬件工程师可以直接布线,软件工程师可以按图写循环,理论分析则可以用梅森公式由图直接读出系统函数。

Part 2 · 三种基本元件
延迟、乘常数与加法

无论系统多复杂,实现它所需的基本运算只有三种:加法、乘常数、单位延迟。

三种基本运算

运算时域表示Z 域表示在结构图中的角色
加法$y[n]=x_1[n]+x_2[n]$$Y(z)=X_1(z)+X_2(z)$汇合节点,把多个支路输出相加
乘常数$y[n]=a\,x[n]$$Y(z)=a\,X(z)$滤波器系数,决定每条支路权重
单位延迟$y[n]=x[n-1]$$Y(z)=z^{-1}X(z)$存储一个采样周期,形成历史样本或状态

离散时间系统最基本的构件是单位延时单元(Delay),通常用方框 D 表示。它把输入信号延迟一个采样周期:

D 延时单元
延时单元 D:$y_{out}[n]=y_{in}[n-1]$。在 Z 域中 $D=z^{-1}$

输入 $y[n]$ 经过 D 后输出 $y[n-1]$——当前时刻的输入变成下一时刻的输出。所有离散系统的结构都可以用 D 延时单元、加法器和乘法器组合而成。

系统框图三种基本元件
系统框图三种基本元件的时域与 Z 域对照:(左)延迟器 $D \leftrightarrow z^{-1}$,(中)常数乘法器 $\triangle(a)$,(右)加法器 $\bigcirc(+)$。左侧为时域表示,右侧为 Z 域表示——延迟器输出在 Z 域中是输入乘 $z^{-1}$,常数乘法器和加法器的 Z 域符号与时域完全相同。
Part 3 · 系统框图法
从差分方程直接翻译

方框图法用方框、箭头、加法节点、乘法系数和单位延迟器直接画出样本如何流动。它最适合从差分方程出发检查"先延迟、再乘系数、最后在哪里相加"。

把延时单元和反馈路径组合,就得到差分方程的物理实现。下面是一个一阶 LTI 系统:

一阶反馈系统框图
一阶 LTI 系统框图:输入 $x[n]$ 与反馈信号 $-a\,y[n-1]$ 在加法器中相加,得到输出 $y[n]=x[n]-a\,y[n-1]$

对应的差分方程:

$$y[n]+a\,y[n-1]=x[n]$$

输出由当前输入和过去输出递推决定。只要给定初始条件,就能一步一步算出所有后续值。

二抽头 FIR 方框图可以直接按差分方程阅读:输入 $x[n]$ 分成两路,一路直接乘 $b_0$,另一路先经过一个单位延迟 $z^{-1}$ 得到 $x[n-1]$,再乘 $b_1$,最后两路相加得到输出。

PDF方框图法:单位延时与乘常数p.6
正在渲染 PDF 第 6 页…
方框图法:单位延时与乘常数(PDF 第 6 页) · 打开原文
支路经过的操作贡献项
直接支路不延迟,只乘 $b_0$$b_0x[n]$
延迟支路先经 $z^{-1}$,再乘 $b_1$$b_1x[n-1]$
输出节点两路相加$y[n]=b_0x[n]+b_1x[n-1]$

上图对应一个最简单的二抽头 FIR:

$$y[n]=b_0x[n]+b_1x[n-1].$$

如果差分方程含有过去输出项,例如 $y[n]=b_0x[n]+a_1y[n-1]$,方框图中就会出现从输出端经过 $z^{-1}$ 和系数 $a_1$ 回到加法节点的反馈支路。这正是递归型(IIR)结构与非递归型(FIR)结构的图形区别。

PDF方框图法:由递推方程得到反馈结构p.8
正在渲染 PDF 第 8 页…
方框图法:由递推方程得到反馈结构(PDF 第 8 页) · 打开原文
Part 4 · 信号流图法
更紧凑的代数化描述

信号流图法把每个中间变量画成节点,把乘常数、单位延迟和直接传递画成有向支路。它比方框图更紧凑,适合推导直接型、级联型、并联型,以及后面的转置定理。

graph LR
  X(("x[n]")) -->|"b₀"| Y(("y[n]"))
  X -->|"z⁻¹"| N1(("x[n-1]"))
  N1 -->|"b₁"| Y
  N1 -->|"z⁻¹"| N2(("x[n-2]"))
  N2 -->|"b₂"| Y

这张信号流图对应三抽头 FIR:

$$y[n]=b_0x[n]+b_1x[n-1]+b_2x[n-2].$$

节点表示变量,支路上的标注表示支路增益或延迟。这里从 $x[n]$$x[n-1]$、从 $x[n-1]$$x[n-2]$ 都必须经过一个单位延迟 $z^{-1}$;若一条支路不标传输系数,默认增益为 1。多个支路汇入同一节点时,节点值等于所有输入支路信号之和。

PDF信号流图法:三种基本运算p.9
正在渲染 PDF 第 9 页…
信号流图法:三种基本运算(PDF 第 9 页) · 打开原文
PDF信号流图法:由差分方程画出结构示例p.11
正在渲染 PDF 第 11 页…
信号流图法:由差分方程画出结构示例(PDF 第 11 页) · 打开原文

信号流图的等效变换

与电阻网络一样,信号流图也有一套等效变换规则,用于把复杂流图逐步化简。最常用的三条是:串联合并并联合并节点消去(自环等效)

信号流图等效变换规则
信号流图基本化简规则:串联支路增益相乘;并联支路增益相加;消去中间节点时,若存在自环 $bc$,则等效支路增益为 $\frac{ab}{1-bc}$

三条核心化简规则

规则图示关系等效结果
串联合并$x_1 \xrightarrow{a} x_2 \xrightarrow{H_1} x_3$$x_1 \xrightarrow{aH_1} x_3$
并联合并$x_1$ 分两路分别 $\xrightarrow{H_1}$$\xrightarrow{H_2}$$x_2$$x_1 \xrightarrow{H_1+H_2} x_2$
自环消去$x_1 \xrightarrow{a} x_2 \xrightarrow{b} x_3$,且 $x_2 \xrightarrow{c} x_2$$x_1 \xrightarrow{\frac{ab}{1-bc}} x_3$

这些规则是梅森公式的前身:对于简单流图,可以直接化简得到系统函数;对于复杂流图,用梅森公式更系统、更不容易漏掉回路组合。

两种表示法怎么选

表示法更适合回答的问题优势局限
方框图法这个系统怎么按硬件/程序步骤实现?直观,便于检查延迟、乘法和加法位置高阶结构会很拥挤
信号流图法这些结构是否等价?能否转置、级联或共享延迟?紧凑,便于代数变换和结构推导初看不如方框图具象
信号流图四要素:源点(输入节点,只有输出)、阱点(输出节点,只有输入)、分支节点(一个输入多个输出,值分配到各支路)、相加器(多个输入相加,输出为和)。支路不标传输系数时默认为 1。
系统框图与信号流图表示法对比
系统框图(左)与信号流图(右)表示同一系统的两种画法:方框图用 D、三角形、圆圈分别表示延迟、乘法、加法;信号流图用节点表示变量,用有向支路标注增益或延迟。两者描述的是完全相同的输入输出关系。
Part 5 · 级联与并联
把高阶系统拆成低阶节

同一个系统函数 $H(z)$ 可以用不同的结构实现。除了直接型,工程上最常用的两种是级联型(Cascade)和并联型(Parallel):

  • 级联型:把 $H(z)$ 的分子和分母因式分解,写成多个一阶或二阶节的乘积 $H(z)=H_1(z)H_2(z)\cdots H_K(z)$。前一节的输出直接作为后一节的输入。
  • 并联型:把 $H(z)$ 做部分分式展开,写成多个一阶或二阶节的和 $H(z)=H_1(z)+H_2(z)+\cdots+H_K(z)$。各支路独立计算,最后在输出端相加。
级联型结构
级联型:$H_1(z)$$H_2(z)$ 串联,前一节输出作为后一节输入。整体系统函数为 $H(z)=H_1(z)H_2(z)$
并联型结构
并联型:$H_3(z)$$H_4(z)$ 的两条支路独立运算,输出在加法器处相加。整体系统函数为 $H(z)=H_3(z)+H_4(z)$
为什么拆分?级联型便于单独调整零极点,降低系数量化敏感度;并联型各支路独立,误差传播短,适合并行硬件实现。

例题:级联与并联形式实现

题目:已知某离散 LTI 系统的差分方程为

$$y[n]-0.5y[n-1]+0.25y[n-2]-0.125y[n-3]=2x[n]-2x[n-2]$$

分别用级联和并联形式模拟该系统。

级联与并联例题
例题原题:要求对给定差分方程分别画出级联型与并联型结构。

解:先写出系统函数:

$$H(z)=\frac{2-2z^{-2}}{1-0.5z^{-1}+0.25z^{-2}-0.125z^{-3}}$$

分母因式分解:

$$1-0.5z^{-1}+0.25z^{-2}-0.125z^{-3}=(1-0.5z^{-1})(1+0.25z^{-2})$$

分子:$2-2z^{-2}=2(1-z^{-2})$

级联形式:把分子分母按一阶和二阶节分组:

$$H(z)=\frac{2}{1-0.5z^{-1}}\cdot\frac{1-z^{-2}}{1+0.25z^{-2}}$$

即一个一阶节 $H_1(z)=\frac{2}{1-0.5z^{-1}}$ 与一个二阶节 $H_2(z)=\frac{1-z^{-2}}{1+0.25z^{-2}}$ 串联。

并联形式:做部分分式展开:

$$H(z)=\frac{A}{1-0.5z^{-1}}+\frac{B+Cz^{-1}}{1+0.25z^{-2}}$$

通分后比较分子系数,解得 $A=-3,\;B=5,\;C=2.5$。因此:

$$H(z)=\frac{-3}{1-0.5z^{-1}}+\frac{5+2.5z^{-1}}{1+0.25z^{-2}}$$

即一个一阶支路 $H_3(z)=\frac{-3}{1-0.5z^{-1}}$ 与一个二阶支路 $H_4(z)=\frac{5+2.5z^{-1}}{1+0.25z^{-2}}$ 在输出端相加。

注意:级联型有多种分组方式,只要保证各节乘积等于原 $H(z)$ 即可;并联型要求部分分式展开正确,且所有支路的 ROC 交集必须包含原系统的 ROC。
Part 6 · 梅森公式
由信号流图直接求系统函数

对于复杂流图,梅森公式(Mason's Formula)提供了一种不需要逐步化简就能写出系统函数的方法:

梅森公式

$$H(z)=\frac{1}{\Delta}\sum_{k=1}^{K}P_k\Delta_k$$

其中:

  • $P_k$:第 $k$ 条从输入到输出的前向通路增益;
  • $\Delta$:流图特征式,$\Delta=1-\sum L_i+\sum L_iL_j-\sum L_iL_jL_l+\cdots$,依次减去所有单回路增益、加上所有两两不接触回路增益乘积、减去所有三个互不接触回路增益乘积,依此类推;
  • $\Delta_k$:第 $k$ 条前向通路的余子式,即把与该通路接触的所有回路去掉后剩余流图的 $\Delta$

使用步骤:

  1. 找出所有从输入节点到输出节点的前向通路,计算 $P_k$
  2. 找出所有回路,计算各回路增益 $L_i$
  3. 判断哪些回路互不接触,按公式写出 $\Delta$
  4. 对每个前向通路,去掉与其接触的全部回路,写出 $\Delta_k$
  5. 代入梅森公式得到 $H(z)$

例题:用梅森公式求系统函数

题目:某信号流图有两条前向通路:$P_1=a$(不接触回路),$P_2=b c$(与回路 $d$ 接触);一个回路 $L_1=d$。求系统函数 $H(z)=Y(z)/X(z)$

解:

  • 流图特征式:$\Delta=1-L_1=1-d$
  • $P_1=a$ 不接触回路,所以 $\Delta_1=1$
  • $P_2=bc$ 与回路 $d$ 接触,所以 $\Delta_2=1$(去掉接触回路后无剩余回路)。
$$H(z)=\frac{P_1\Delta_1+P_2\Delta_2}{\Delta}=\frac{a+bc}{1-d}$$
易错点:判断"不接触"时,不仅看节点是否重合,还要看是否有公共节点。只要前向通路与回路有公共节点,就算接触,该回路在 $\Delta_k$ 中必须被去掉。
Part 7 · 例题与实验
由差分方程画结构,由结构求系统函数

例题 1:由差分方程画直接 II 型结构

题目:已知差分方程 $y[n]-\frac{1}{2}y[n-1]=x[n]+x[n-1]$,画出其直接 II 型信号流图。

解:把差分方程改写成递推形式:

$$y[n]=x[n]+x[n-1]+\frac{1}{2}y[n-1]$$

输入 $x[n]$ 经过两条前向支路:直接支路增益 1,延迟支路增益 1;输出 $y[n]$ 经过延迟 $z^{-1}$ 和反馈增益 $\frac{1}{2}$ 回到输入端相加。把两条前向链和反馈链共用一条延迟链,即得直接 II 型。

例题 2:由结构求系统函数

题目:一阶系统 $y[n]=x[n]+a\,y[n-1]$,求 $H(z)$

解:对差分方程取 Z 变换(零状态):

$$Y(z)=X(z)+a\,z^{-1}Y(z)$$

整理得:

$$H(z)=\frac{Y(z)}{X(z)}=\frac{1}{1-a\,z^{-1}}$$

例题 3:由时域框图写差分方程并求系统函数

题目:已知某离散 LTI 系统的时域框图如下,根据输入输出关系写出系统的差分方程并求出系统函数 $H(z)$

由时域框图求系统函数例题
例 2 时域框图:输入 $x[n]$ 经左端加法器产生中间变量 $w[n]$,再经两条延迟反馈支路和输出支路得到 $y[n]$

解:设左端加法器输出为 $w[n]$。观察框图,两条反馈支路均进入加法器“$+$”端:

  • 反馈支路 1:$w[n]$ 经一次延迟得 $w[n-1]$,再乘 $-1$,因此贡献为 $-w[n-1]$
  • 反馈支路 2:$w[n]$ 经两次延迟得 $w[n-2]$,再乘 $0.02$,因此贡献为 $+0.02w[n-2]$
  • 输出端:$y[n]=0.5w[n]+w[n-2]$

于是得到中间变量递推式:

$$w[n]=x[n]-w[n-1]+0.02w[n-2]$$

取 Z 变换(零状态):

$$W(z)=X(z)-z^{-1}W(z)+0.02z^{-2}W(z)$$

整理得:

$$\frac{W(z)}{X(z)}=\frac{1}{1+z^{-1}-0.02z^{-2}}$$

输出端 Z 变换为:

$$Y(z)=0.5W(z)+z^{-2}W(z)=(0.5+z^{-2})W(z)$$

因此系统函数:

$$H(z)=\frac{Y(z)}{X(z)}=\frac{0.5+z^{-2}}{1+z^{-1}-0.02z^{-2}}$$

对应差分方程:

$$y[n]+y[n-1]-0.02y[n-2]=0.5x[n]+x[n-2]$$
关键步骤:先设中间变量 $w[n]$ 写出反馈递推式,再写出输出端表达式,分别取 Z 变换后消去 $W(z)$,即得总系统函数 $H(z)$。注意加法器输入端符号与分支系数的叠加关系。
Part 8 · 后续衔接
从系统结构到数字滤波器

掌握系统框图与信号流图之后,数字滤波器的结构就不再是孤立图形:直接型从差分方程直接翻译,级联型从因式分解翻译,并联型从部分分式展开翻译。下一节 数字滤波器基础与结构 会在此基础上讨论 FIR 与 IIR 的各种实现结构以及它们的工程取舍。

复习速查

  • 三种基本元件:加法器、常数乘法器、单位延迟器($z^{-1}$)。
  • 方框图法:直观按差分方程布线,适合硬件实现思维。
  • 信号流图法:节点为变量,支路为增益/延迟,适合结构推导与等价变换。
  • 梅森公式$H(z)=\frac{1}{\Delta}\sum P_k\Delta_k$,注意"不接触"的定义。

参考来源

  • 课程讲义:DSP 第五讲,系统结构表示法。