「信号与系统」 信号处理基础

Fundamentals of signal processing

Posted by Mingyu on April 15, 2022

基本概念

信号的定义和分类

信号可以是时间的一元或多元函数,可以是变换域中变量的函数。 在讨论信号的有关问题时,“信号”与“函数”两个词常互相通用。

根据信号的特点,常常将信号分为:

  • 连续时间信号与离散时间信号
  • 周期信号与非周期信号
  • 确定信号与随机信号
  • 能量信号与功率信号

在信号与系统的范畴内,讨论的都是确定信号。

信号的时域变换与运算

常见的时域变换:

  • 反折:即 $t$ 与 $-t$ 的变换
  • 时移:即 $t$ 与 $t-t_0$ 的变换
  • 尺度:即 $t$ 与 $at$ 的变换
  • 倒相:即 $y$ 与 $-y$ 的变换

常见的时域运算:

  • 相加
  • 相乘
  • 数乘
  • 微分
  • 积分

奇异信号

奇异信号是在信号处理中引入的最重要的函数,是信号处理在基础的数学分析上进行拓展的最根本所在,在常见的奇异信号中,又以阶跃信号和冲激信号最为重要。

单位斜变信号

单位斜变信号,在 $t < 0$ 时值为 $0$ ,在 $t > 0$ 时保持斜率为1上升,用 $r(t)$ 表示。

\[r(t) = \begin{cases} 0 &,t < 0 \\ t &,t \ge 0 \end{cases}\]

单位阶跃信号

单位阶跃信号,在 $t < 0$ 时值为 $0$ ,在 $t > 0$ 时值为 $1$ ,用 $u(t)$ 表示。

\[u(t) = \begin{cases} 0 &,t < 0 \\ 1 &,t \gt 0 \end{cases}\]

在某些特殊情况下,会用到 $u(t)$ 在 $t = 0$ 时的值,此时一般将其处理为$\frac{1}{2}$

单位阶跃信号具有使任意非因果信号变为因果信号的功能(即单边性),即将原信号乘以单位阶跃信号,所得即成为因果信号。这一性质也在表示某些单边信号时应用的非常方便。

通过观察不难发现,对单位斜变信号求导即可得到单位阶跃信号(此处可以忽略在 $t=0$ 处不可导的情况。需要注意,在信号处理中,我们常常需要处理零点处出现的突变情况,这些处理建立在基本概念之上,在不同情况下需要处理的内容是不同的,在此处对于 $t=0$ 的忽略并不会影响求导和积分的特性)。

\[\frac{dr(t)}{t} = u(t)\]

所谓门信号,其实就是两个阶跃信号作差,完全可以化成阶跃信号来处理。需要注意的是,由于阶跃信号延伸至无穷,所以可以理解为起始点 $t_0$ 越靠左则占据的面积越大,因此在二者作差的过程中,应该是靠左的一方减去靠右的一方(不要搞反了)。

单位冲激信号

单位冲激信号 $\delta(t)$ ,是一个不能从传统函数意义上来理解的函数,它在 $t \ne 0 $ 的情况下为 $0$ ,在 $t = 0$ 的情况下为 $+\infty$ ,仅从这一点而言是得不到有意义的信息的。它的意义在于积分时的情况,也就是在零点的邻域积分值为 $1$ ,这也就引出了冲激信号 $\delta(t)$ 的狄拉克定义(单位冲激信号也称作狄拉克函数):

\[\begin{cases} \delta(t) = 0,t \ne 0 \\ \int_{-\infty}^{+\infty} \delta(t) = 1 \end{cases}\]

由于函数值在 $t \ne 0 $ 的情况下为 $0$ ,因此定义中积分式的上下限可以无限接近零点,对定义并不会产生影响。我们通常会用一个箭头的形式来表示冲激函数。单位冲激信号的积分值是 $1$ ,对单位冲激信号乘以不同的倍率 $\alpha$ 就可以得到对应积分值为 $\alpha$ 的冲激信号。冲激信号的积分值我们用一对括号括起来标示在箭头旁。

从传统函数的角度来理解这一定义是颇有难度的,我们可以从另一种定义出发来加深理解,这也就是冲激信号的极限定义。我们可以想象一个门信号,其积分面积始终为 $1$ ,但门信号的宽度不断收缩,而其高度对应增大,这一变化过程的极限,得到的就是一个单位冲激信号了。

因此我们可以定义如下:

\[\delta(t) = \lim\limits_{\tau\rightarrow 0} \frac{1}{\tau}\Big[u(t+\frac{\tau}{2}) - u(t-\frac{\tau}{2})\Big]\]

单位冲激信号的极限的定义不是唯一的,事实上只要满足了积分固定条件,并且在极限状态下非零处的值均为 $0$ ,其极限都可以作为单位冲激信号,以下是依次是三角脉冲,双边指数脉冲,钟形脉冲,抽样函数在趋向极限时的情况,都可以作为单位冲激信号。

冲激信号有几个非常好用的性质:

  1. 筛选特性

    \[f(t)\delta(t - t_0) = f(t_0)\delta(t - t_0)\]

    由于当 $t \neq t_0$ 时,$\delta(t - t_0)$ 的值恒为 $0$ ,因此只有当 $t = t_0$ ,这个表达式中的 $f(t)$ 才能起到对应的作用,所以可以将 $f(t)$ 替换为 $f(t_0)$ ,对于最后的结果是没有影响的。

  2. 抽样特性

    \[\int_{-\infty}^{+\infty}f(t)\delta(t - t_0) = f(t_0)\]

    抽样特性的证明思路非常简单,只需要利用筛选特性,将 $f(t_0)$ 作为常数提出即可。

  3. 尺度特性

    \[\delta(at) = \frac{1}{\lvert a \rvert}\delta(t) \space (a \ne 0)\]

最后,我们不难发现一个非常关键的联系,那就是对单位阶跃信号求导可以得到单位冲激信号

\[\frac{du(t)}{dt} = \delta(t)\]

我们之前提到过,在信号处理中我们需要常常关注零点处的突变情况,这对我们理解信号处理的数学基础很有帮助。在这个求导关系中,对于 $t \neq 0$ 的情况,结论是平凡的,它最重要的意义在于如何理解 $t = 0$ 的位置时的导数关系。而这一关系我们从积分的角度则更容易理解,$\delta(t)$ 的积分为 $1$ ,正好对应了 $u(t)$ 在零点前后的“阶跃”情况,二者是可以相互印证的。

关于狄拉克函数:在现实生活中,对某个质点,点电荷等“点”的密度是无法测量的(密度涉及微元体平均的概念,当微元体尺度和粒子尺度相当时,由于粒子的布朗运动,不同时刻测得的密度是不同的,其密度值是调跃的,即不能进行平均;只有当微元体尺度足够大,能够容纳一定数量的粒子时,测得的密度值才是稳定的,才能进行平均。这也是连续介质力学中为何需到一定尺度才能看作连续的本质原因)。但是,在很多问题中,我们需要用数学语言正确地描述“点”的相关性质,这就需要引入广义函数。广义函数最早是由量子力学大师狄拉克系统提出的,而狄拉克函数则是应用最广的一个广义函数。

系统的定义与分类

系统的定义

广义定义:系统泛指相互依赖、相互作用的若干个相互关联的单元组成的具有特定功能的有机整体 。

狭义定义:所指系统为电路系统。在电子技术领域中“系统” 、 “电路” 、 “网络”三个名词常常是通用的,虽然它们之间有一些细微的差别。

系统的性质

  1. 线性

    系统的线性特性包括齐次性叠加性。也即对于输入信号的数乘和加法,输出信号也保持数乘和加法。

  2. 时不变性

    若激励 $f(t)$ 产生的响应为 $y(t)$ ,则激励 $f(t-t_0)$ 产生的响应即为 $y(t-t_0)$ ,此性质称为时不变性,也称延时性。时不变性的判断在给定表达式的情况下,只需要看 $t$ 是否有着倍率伸缩的系数即可,如无系数那么激励信号的平移必定对应着响应信号的平移。

  3. 因果性

    一个系统,若激励在 $t < t_0$ 时为零,相应的零状态响应 $y_{zs}$ 在 $t < t_0$ 时也恒为零,就称该系统具有因果性,并称该系统为因果系统 ;反之为非因果系统。

  4. 稳定性

    一个系统,如果它对任何有界的激励所产生的零状态响应也为有界时,就称该系统为有界输入/有界输出稳定,简称稳定。

系统的分类

  1. 连续时间系统与离散时间系统
  2. 线性系统与非线性系统
  3. 时变系统与时不变系统
  4. 因果系统与非因果系统
  5. 稳定系统与非稳定系统

我们重点讨论线性时不变系统。

连续时间系统的时域分析

数学描述方法——方程与框图

设激励信号为 $f(t)$ ,系统响应为 $y(t)$ ,描述 n 阶复杂系统的微分方程的一般表达式:

\[C_0 \frac{d^n}{dt^n} y(t) + C_1 \frac{d^{n-1}}{dt^{n-1}} y(t) + ... + C_{n-1} \frac{d}{dt} y(t) + C_n y(t) = \\ \qquad E_0 \frac{d^m}{dt^m} y(t) + E_1 \frac{d^{m-1}}{dt^{m-1}} y(t) + ... + E_{m-1} \frac{d}{dt} y(t) + E_m y(t)\]

对于线性时不变系统,其微分方程是常系数线性微分方程。

框图通过图形符号表示基本运算单元,应用框图非常重要的一点是将框图改写成方程,在将框图改写成方程的过程中,常常需要建立合适的中间变量,如下图的框图和对应的方程,需要中间变量 $x(t)$ 来参与,最后再将其消去得到结果。

\[\frac{d^2}{dt^2} y(t) + \alpha_1 \frac{d}{dt} y(t) + \alpha_0 y(t) = b_1 \frac{d}{dt} f(t) + b_0 f(t)\]

连续时间系统的响应

求解微分方程

微分方程的的经典解法是将微分方程的完全解分解为齐次解和特解。

齐次解即方程右端的激励为 $0$ :

\[C_0 \frac{d^n}{dt^n} y(t) + C_1 \frac{d^{n-1}}{dt^{n-1}} y(t) + ... + C_{n-1} \frac{d}{dt} y(t) + C_n y(t) = 0\]

方程的解的形式是形如 $Ae^{\alpha t}$ 的线性组合(关于这一点,在数学分析和微分方程中都有比较详尽的解释,我们可以从数学上证明微分方程的阶次和对应齐次解的基底个数是一致的,并且构造出如下的特征方程来求解若干线性无关的基),设 $y(t) = Ae^{\alpha t}$ ,代入并化简得微分方程得特征方程:

\[C_0 \alpha^{n} + C_1 \alpha^{n-1} + ... + C_{n-1}\alpha + C_n = 0\]

对于特征根均为单根的情况,显然 $n$ 个解已经得到,对于特征根存在 $k$ 阶重根的情况,我们也有构造得到其余解的方式,特征根如果存在 $k$ 阶重根,我们可以得到以下 $k$ 个解:

\[t^{k-1}e^{\alpha t},\quad t^{k-2}e^{\alpha t},\quad...\quad,\quad te^{\alpha t},\quad e^{\alpha t}\]

可以简要的解释一下这几个解都是如何构造得到的。首先我们需要证明一件事情,对于 $\alpha_0$ 是 $k$ 阶重根的情况,对原方程进行任意 $m(m < k)$ 阶求导,得到的式子仍然以 $\alpha_0$ 为根,对这的证明只需要将 $(\alpha - \alpha_0)^k$ 单独提出来,再应用高阶导数的二项式展开,就可以发现得到的式子至少会保留一项 $(\alpha - \alpha_0)$ ,自然也能保持以 $\alpha_0$ 为根。

然后解释为什么乘以 $t^m$ 之后仍然会保持是原方程的一个解。这个过程中同样需要高阶导数的二项式定理,我们可以将 $t^m e^{\alpha t}$ 代入方程中,可以如下所示:

\[\begin{matrix} C_0 (t^me^{\alpha t})^{(n)} & = & C_0t^m\alpha^{n}e^{\alpha t} & + & C_0\tbinom{n}{1}(t^m)^{(1)}\alpha^{n-1}e^{\alpha t} & +...+ & C_0(t^m)^{(m)}\alpha^{n-m}e^{\alpha t} \\ ... \\ C_{n-1} (t^me^{\alpha t})^{(1)} & = & C_{n-1}t^m\alpha e^{\alpha t} & + & C_{n-1}(t^m)^{(1)}e^{\alpha t} \\ C_n (t^me^{\alpha t})^{(0)} & = & C_nt^me^{\alpha t} \end{matrix}\]

我们把每一列相加,最左列即原方程,右侧第 $k$ 列的加和,即对应把特征方程求 $k-1$ 阶导数,因此右侧的加和都可以保证为 $0$ ,故能够满足原方程的解。

求出齐次解只是解方程的第一步,我们需要在解出齐次解的基础上解出一个特解,从而齐次解与通解相加得到方程的解空间。特解的函数形式与激励的函数形式有关。将激励代入方程的右端得到的函数式称为自由项,根据自由项的函数形式,选择相应的特解函数形式。将其代入微分方程左端,根据等式两端同类项系数相等的原则求出特解函数式中的待定系数,即可得到方程的特解。

自由项函数 特解函数式
$E$ (常数) $B$ (常数)
$t^p$ $B_0t^p+B_1t^{p-1}+…+B_{p-1}t+B_p$
$e^{\alpha t}$ ($\alpha$不等于特征根) $Be^{\alpha t}$
$e^{\alpha t}$($\alpha$等于$k$重特征根) $(B_0t^k+B_1t^{k-1}+…+B_{k-1}t+B_k)e^{\alpha t}$
$\cos(\omega t) / \sin(\omega t)$ $B_1\cos(\omega t)+B_2\sin(\omega t)$
$t^pe^{\alpha t}\cos(\omega t) / t^pe^{\alpha t}\sin(\omega t)$ $(B_0t^p+B_1t^{p-1}+…+B_{p-1}t+B_p)e^{\alpha t}\cos(\omega t) +\ \qquad (D_0t^p+D_1t^{p-1}+…+D_{p-1}t+D_p)e^{\alpha t}\sin(\omega t)$
\[y(t) =\sum_{i=1}^nA_ie^{\alpha_it}+y_p(t)\]

将齐次解和特解相加,可得到有待定系数的微分方程的完全解,但是其中每一项的系数还不确定,这些系数需要通过初值来确定,这也就是后续我们需要通过起始点跳变解决的问题。

起始点跳变

要求解完全解中对应的系数,我们需要根据系统的初值来确定,但是方程解出的完全解而言,所依赖的应该是系统在点 $0_{+}$ 的值。

因此我们需要解决的是,从已知的 $0_{-}$ 的值开始的起始点跳变问题(这一问题在传统函数的基础上并不是很容易理解,这时需要我们考虑冲激信号和阶跃信号,在零点的位置,在冲激信号或阶跃信号的作用下,前后是会发生跳变的,放到一个电路中,比如瞬间发生了换路,这时在一瞬间要重新建立电路的平衡关系,就有可能发生上述的跳变)。

确定起始点的跳变,我们只需要考虑激励函数中包含冲激函数和阶跃函数的部分。更进一步地,对于方程右侧出现的包含冲激信号和阶跃信号的项,对应方程左边的信号求解也应该能够得到相同的项,我们就在这一理论基础上来求解起始点的跳变。这种通过方程左侧凑出匹配项的方法,也即冲激函数匹配法。

关于冲激函数匹配法,我们可以通过一个例子来说明。

\[\frac{d^2}{dt^2}i(t) + 7\frac{d}{dt}i(t)+10i(t)=\frac{d^2}{dt^2}e(t)+6\frac{d}{dt}e(t)+4e(t) \\ \space \\ t=0 时接入激励,e(t)=2u(t)\]

我们把 $2u(t)$ 代入,在对应的方程中应用冲激函数匹配法,只对方程两端的 $\delta$ 项匹配,其他项不考虑。

\[\begin{matrix} \frac{d^2}{dt^2}i(t) & + & 7\frac{d}{dt}i(t) & + & 10i(t) & = & 2\delta^{'}(t)+12\delta(t)+8u(t) \\ \downarrow & & \downarrow & & \downarrow \\ 2\delta^{'}(t) & + & 7[2\delta(t)] & + & 10[2u(t)] \\ \downarrow & & \downarrow & & \\ -2\delta(t) & + & 7[-2u(t)] \\ \downarrow \\ 2u(t) \end{matrix}\]

我们对方程右侧的每一项,在方程左侧匹配对应项。首先是 $2\delta^{\prime}(t)$ 最高阶项,我们显然只能让 $\frac{d^2}{dt^2}i(t)$ 来承担这一项,因为如果是低阶项含有这一项,那么在 $\frac{d^2}{dt^2}i(t)$ 中必定会含有更高阶项,这是抵消不掉的。得到了 $\frac{d^2}{dt^2}i(t)$ 中含有 $2\delta^{\prime}(t)$ ,我们依次地回推,就可以得到第二行的所有项。配平了 $2\delta^{\prime}(t)$ 之后,我们需要配平 $12\delta(t)$ 这一项,这一项也只能从最高次项 $\frac{d^2}{dt^2}i(t)$ 中得到,原因和前述相同。这样依次配平,最终我们可以得到的是,对于方程左侧的每一项,上式中列出的竖列含有的项即是我们需要在起始点跳变中需要关注的项。

我们可能注意到对于 $u(t)$ 的再积分项就不要求配平了,这一原因很简单,因为我们关注的仅仅是零点左右的局部性质,并不要求这个式子在全局都是等价的,我们只需要关注包含有奇异函数的那些项,而 $u(t)$ 的再积分项已经不属于奇异函数了,它对起始点的跳变是不起作用的。

以上配平的这个过程在数学思路的表达上是略显复杂的,我们可以通过待定系数的思想将上述过程简化,不难发现,我们所求解的实际上是输出信号中包含有奇异函数那些项的系数,由于方程中包含有高阶项,因此我们的解需要从左侧最高阶项的系数入手,因此我们的求解过程可以简化为对下式中 $a,b,c$ 的求解。而其余项由积分和求导关系即可得到。

\[\frac{d^2}{dt^2}i(t) \rightarrow a\delta^{'}(t) + b\delta(t)+cu(t)\]

在得到了系数之后,跳变的结果就是对应函数从$\space0_{-}$ 到 $0+$ 的积分,当然只需关注我们解出的奇异函数项,更进一步地,只需关注奇异函数项中的 $\delta(t)$ 项,因为其余项的积分都是 $0$。如上例,我们可以得到:

\[i(0_{+}) - i(0_{-}) = \int_{0_{-}}^{0_{+}}a\delta(t)dt = a = 2 \\ i^{'}(0_{+}) - i^{'}(0_{-}) = \int_{0_{-}}^{0_{+}}b\delta(t)dt = b = -2\]

对于起始点的跳变,我们在这种经典的微分方程解法中是需要分析的,但是当我们引入了拉普拉斯变换之后,我们就可以直接由 $0_{-}$ 处的初始值直接代入求解了,这也是拉普拉斯变换非常便利的一种体现。

零输入响应与零状态响应

我们所讨论的零输入响应与零状态响应,仅仅在线性时不变系统中才有意义。

零输入响应:

零输入响应是输入为零,也就是激励为零时,仅由起始时刻系统的储能引起的响应。在求解零输入响应的过程中,我们不需要考虑方程右侧激励信号,将其写为 $0$ 来求解,所得到的就是零输入响应。

零状态响应:

零状态响应是系统的起始状态等于零即起始时刻系统的储能为零,由系统的外加激励信号所产生的响应。在求解零状态响应的过程中,我们不需要考虑 $0_{-}$ 处的起始系统状态,可将其视为 $0$ 来求解,得到的就是零状态响应。

关于零输入响应和零状态响应,由于系统的线性性质,我们把二者相加所得到的全相应,与我们直接求解得到的响应是一致的。

冲激响应与阶跃响应

简单地说,冲激响应就是输入信号为单位冲激信号时的响应,阶跃响应就是输入信号为单位阶跃信号时的响应。我们可以仅仅将其视作我们求响应的一个特例。

但是事实上,随着我们后续引入卷积的概念,冲激响应将会变成我们求解一切响应的基础。

卷积的概念和性质

卷积的定义

设 $f_1(t)$ 和 $f_2(t)$ 有相同的变量 $t$ ,则通过如下积分运算得到一个新的以 $t$ 为变量的函数(理解前后变量的统一,对理解卷积的本质很重要),这一运算即称为卷积运算:

\[f_1(t) \ast f_2(t) = \int_{-\infty}^{+\infty}f_1(\tau)f_2(t-\tau)d\tau\]

我们可以从一个实例来理解卷积的过程:

\[\begin{cases} f_1(t) = u(t) - u(t - 3) \\ f_2(t) = e^{-t}u(t) \end{cases}\]
  1. 首先画出 $f_1(t)$ 和 $f_2(t)$ 的波形如图

  2. 再将 $f_2(\tau)$ 反折为 $f_2(-\tau)$

  3. 再将 $f_2(\tau)$ 时移 $t$ 个单位得到 $f_2(t - \tau)$ ,根据不同区间 $t$ 的值来进行积分

    • $t < 0$ 时,显然为 $0$

    • $0 \le t \le 3$ 时,$f_1(t) \ast f_2(t) = \int_0^t f_1(\tau)f_2(t-\tau)d\tau$

    • $t > 3$ 时,$f_1(t) \ast f_2(t) = \int_0^3 f_1(\tau)f_2(t-\tau)d\tau$

卷积的性质

  1. 交换律

    \[f_1(t) \ast f_2(t) = f_2(t) \ast f_1(t)\]

    交换律的证明非常简单,只需要在积分式中换元即可得到。

  2. 分配律

    \[f_1(t) \ast [f_2(t) + f_3(t)] = f_1(t) \ast f_2(t) + f_1(t) \ast f_3(t)\]

    卷积的分配律本质上是积分运算的分配律。

  3. 结合律

    \[f_1(t) \ast [f_2(t) \ast f_3(t)] = [f_1(t) \ast f_2(t)] \ast f_3(t)\]
  4. 与冲激函数的卷积

    \[f(t) \ast \delta(t-t_0) = f(t - t_0)\]

    这一特性表明,与冲激函数的卷积等价于对原信号的延时操作。

  5. 与阶跃函数的卷积

\[f(t) \ast u(t) = \int_{-\infty}^{+\infty}f(\tau)u(t-\tau)d\tau=\int_{-\infty}^{t}f(\tau)d\tau\]

与单位阶跃函数的卷积相当于函数的积分(这一过程中是应用了 $u(t)$ 作为单位阶跃函数的性质,当 $\tau > t$ 时,阶跃函数的值为 $0$ ,因此对于积分是没有意义的,我们只需要考虑 $\tau < t$ 的情况,而此时阶跃函数恒为 $1$ ,因此可以将其直接替换为 $1$ ,这一思想非常有用,在后续常常出现的以 $u(t)$ 为基本单元的矩形信号中,常常应用这一思想进行简化)。

  1. 微分与积分

    \[\frac{d}{dt}[f_1(t) \ast f_2(t)]=\frac{df_1(t)}{dt} \ast f_2(t) = f_1(t) \ast \frac{df_2(t)}{dt} \\ \int_{-\infty}^{t} [f_1(\tau) \ast f_2(\tau)]d\tau = [\int_{-\infty}^{t} f_1(\tau)d\tau] \ast f_2(\tau) = f_1(\tau) \ast [\int_{-\infty}^{t} f_2(\tau)d\tau]\]

    这一特性应用到高阶的微分和积分中同样成立。

零状态相应的卷积积分法

单位冲激信号是连续时间信号中最基本的信号之一,当系统输入单位冲激信号时,系统的零状态响应定义为系统的单位冲激响应。如果任意的连续时间信号可以分解为许多冲激信号的叠加,将这些冲激信号输入到线性时不变系统,那么它们各自在系统的输出端产生的零状态响应相叠加就是系统在输入任意信号时的零状态响应

\[y_{zs}(t) = f(t) \ast h(t)\]

求解零状态响应的卷积积分法表明,系统的零状态响应本质上是由系统的冲激响应决定的,换言之,我们可以用冲激响应表征一个系统的输入输出特性。在这个过程中,我们不妨将 $h(t)$ 视作系统的固有特性,将卷积运算 $\ast$ 视作激励信号对系统的作用,那么对于系统框图会有更进一步的理解。

参考文献

  1. 《信号与系统》第3版 郑君里等著
  2. 广义函数之狄拉克函数,原文链接:https://zhuanlan.zhihu.com/p/345809392