对于离散系统的时域分析,假设我们的盒子是一个数字魔法盒子,比如你的手机CPU或者电脑里的一个程序。它处理的不是连续平滑的信号,而是一串串独立的数字。
连续 vs. 离散: 连续系统像是在看一部电影,画面是流畅的。信号是 `x(t)`。 离散系统像是在看一本翻页动画书,画面是一张张独立的照片。我们只关心在整数“时刻点” `n` 上的值。信号是 `x[n]`,`n` 只能是整数(...-2, -1, 0, 1, 2...)。
输入 (Input):我们给数字盒子的一串数字,叫激励序列 `x[n]`。
输出 (Output):盒子处理后吐出来的另一串数字,叫响应序列 `y[n]`。
时域分析 (Time-Domain Analysis):我们通过观察在第 `n` 个时间点,我们输入了哪个数字,以及得到了哪个数字,来推断这个数字盒子的工作规律。
知识点一:描述系统的语言——线性常系数差分方程
对于数字系统(比如一个简单的金融模型或数字滤波器),它的行为是用差分方程来描述的。
核心思想:差分方程描述了当前输出 `y[n]`与过去的输出 `y[n-1], y[n-2], ...`。以及当前和过去的输入 `x[n], x[n-1], ...`之间的关系。
通用形式: `a_0*y[n] + a_1*y[n-1] + ... = b_0*x[n] + b_1*x[n-1] + ...`
通俗理解: 这个方程就是这个“数字盒子”的说明书。
例子:银行账户的利息计算`y[n]` = 你今天的账户余额, `y[n-1]` = 你昨天的账户余额, `x[n]` = 你今天的存款(或取款)。
一个简单的差分方程可以是:`y[n] = 1.0001 * y[n-1] + x[n]`。
含义:今天的余额,等于昨天的余额乘以一个非常小的利率,再加上今天的存款。你看,它完美地把“现在”和“过去”联系了起来。
和连续系统一样,求解差分方程得到的全响应 `y[n]`也分为两部分:
1. 齐次解 (零输入响应):在不给任何输入(`x[n] = 0`) 的情况下,仅由系统内部的初始状态(比如你账户里原有的存款 `y[-1]`)所产生的响应。
2. 特解 (零状态响应):在系统内部初始状态为零的情况下,完全由外部输入序列 `x[n]`(你每天的存款记录)驱动所产生的响应。
知识点二:两个最最基本的“工具”序列
1. 单位阶跃序列 (Unit Step Sequence) `u[n]`
样子:在 `n=0` 之前,值全是0;在 `n=0` 及之后,值全是1。
物理意义:就像一个数字开关,在第0个时刻“啪”地一下打开,并一直保持为“开”(值为1)。
2. 单位样值/冲激序列 (Unit Sample/Impulse Sequence) `δ[n]`
样子:非常简单!它只在 `n=0` 的时候值为1,在其他所有整数点 `n`,它的值都是0。
物理意义:一次标准化的、瞬时的数字脉冲。就像在翻页动画书里,只有第0页画了一个点,其他页全是空白。
最重要的特性——筛选特性 (Sifting Property): `x[n] * δ[n-k] = x[k] * δ[n-k]`
含义:单位样值序列就像一个“探照灯”。当 `δ[n-k]` 和一个普通序列 `x[n]` 相乘时,它只会照亮 `x[n]` 在 `n=k` 那个位置的值 `x[k]`,其他地方都是0。这个特性是离散系统分析的基石。
知识点三:系统的“身份证”——单位样值响应 h[n]
这是离散时域分析中最最核心的概念,完全对应于连续系统里的 `h(t)`。
定义:当一个离散系统处于零状态(内部没有初始值)时,给它一个单位样值序列 `δ[n]`作为输入,系统所产生的输出,就叫做单位样值响应 (Impulse Response),记为 h[n]。
为什么重要?
`h[n]` 是这个数字系统的唯一身份标识。知道了 `h[n]`,你就知道了这个数字盒子的一切秘密。 比如,对于银行账户的例子 `y[n] = 0.5 * y[n-1] + x[n]`。如果你在第0天存入1元(`x[0]=1`,其他 `x[n]=0`),
那么: `h[0] = 0.5*h[-1] + x[0] = 0 + 1 = 1`
`h[1] = 0.5*h[0] + x[1] = 0.5*1 + 0 = 0.5`
`h[2] = 0.5*h[1] + x[2] = 0.5*0.5 + 0 = 0.25` ...
这个响应序列 `h[n] = {..., 0, 1, 0.5, 0.25, ...}` 就是这个“利息系统”的身份证。
知识点四:核心运算——卷积和 (Convolution Sum)
现在我们有了系统的“身份证” `h[n]`。如果输入不是 `δ[n]`,而是任意一串数字 `x[n]`,输出 `y[n]` 是什么?答案就是卷积和。
卷积和的本质思想——分解与叠加(和连续系统一样,但更简单!):
1. 分解输入:根据单位样值的筛选特性,任何一个序列 `x[n]` 都可以被看作是一堆在不同位置、不同高度的单位样值序列的叠加。`x[n] = ... + x[-1]δ[n+1] + x[0]δ[n] + x[1]δ[n-1] + ...`
2. 利用线性时不变性:
输入 `δ[n]` → 输出 `h[n]`
输入 `δ[n-k]` → 输出 `h[n-k]` (时不变性)
输入 `x[k]δ[n-k]` → 输出 `x[k]h[n-k]` (线性)
3. 叠加输出:把所有这些单个样值产生的响应全部加起来(求和),就得到了总响应 `y[n]`。
卷积和公式: `y[n] = x[n] * h[n] = ∑ x[k]h[n-k]` (对所有整数 `k` 求和) , `*` 是卷积运算符。 这个运算比连续的积分要简单得多,只是乘法和加法。
如何计算卷积和(图形法四步):
1. 翻转 (Flip):将序列 `h[k]` 以 `k=0` 为轴,左右翻转得到 `h[-k]`。
2. 平移 (Shift):将翻转后的序列 `h[-k]` 平移 `n` 个单位,得到 `h[n-k]`。
3. 相乘 (Multiply):将序列 `x[k]` 和 `h[n-k]` 的对应项相乘。
4. 求和 (Sum):将相乘后得到的新序列的所有值加起来,这个总和就是输出序列在 `n` 这一点的值 `y[n]`。
5. 不断改变 `n` 的值,重复2-4步,就可以得到完整的输出序列 `y[n]`。
知识点五:系统的基本性质判断
通过分析系统的“身份证” `h[n]`,我们可以判断系统的几个重要属性:
1. 因果性 (Causality)
含义:输出不会比输入提前出现。第 `n` 个输出只取决于第 `n` 个及之前的输入。
判断:对于 `n < 0`,必须有 `h[n] = 0`。
比喻:你的银行账户不可能在你存钱之前,就知道你要存钱而提前增加余额。
2. 稳定性 (Stability - BIBO)
含义:有界输入,有界输出。只要你输入的数字序列的绝对值有一个上限,那么输出序列的绝对值也必须有一个上限。
判断:系统的单位样值响应 `h[n]` 必须是绝对可和的,即 `∑|h[n]| < ∞`。
比喻:在一个稳定的利息系统里,即使你每天都存入一个不超过100元的数额,你的总资产也不会在有限时间内变成无穷大。