1 线性系统
信号描述了一个参数如何随另一个参数变化。例如,电子电路中的电压随时间变化,或图像中随距离变化的亮度。系统是响应输入信号而产生输出信号的任何过程。如图中的框图所示。
有几个规则用于命名信号:
- 连续信号使用圆括号,例如:x(t) 和 y(t),而离散信号使用中括号,例如:x[n] 和 y[n]。
- 信号使用小写字母。大写字母保留用于频域。
- 信号的名称通常用于描述它所代表的参数。例如,取决于时间的电压可以称为:v(t),或者每天测量的股票市场价格可以称为:p[d]。
2 线性要求
如果一个系统具有两个数学性质:均匀性(homogeneity)和可加性(additivity),则称为线性(linear)。如果能证明一个系统同时具有这两个属性,那么就证明了这个系统是线性的。同样,如果能证明一个系统没有一个或两个属性,就证明了它不是线性的。
第三个属性,即移位不变性(shift invariance),不是线性度的严格要求,但它是大多数DSP技术的强制性属性。这三个属性构成了如何定义和使用线性系统理论的数学。
如图所示,均匀性是指输入信号幅度的变化导致输出信号幅度的相应变化。在数学术语中,如果 x[n] 的输入信号导致 y[n] 的输出信号,则 kx[n] 的输入导致 ky[n] 的输出,对于任何输入信号和常数 k。
可加性的性质如图所示。考虑一个系统,其中 x 1 [ n ] x_1[n] x1[n] 的输入产生 y 1 [ n ] y_1[n] y1[n] 的输出。进一步假设不同的输入 x 2 [ n ] x_2[n] x2[n] 产生另一个输出 y 2 [ n ] y_2[n] y2[n]。对于所有可能的输入信号,如果输入 x 1 [ n ] + x 2 [ n ] x_1[n] + x_{2}[n] x1[n]+x2[n] 导致输出为 y 1 [ n ] + y 2 [ n ] y_1[n] + y_{2}[n] y1[n]+y2[n],则称该系统是加法的。换言之,在输入端添加的信号会产生在输出端添加的信号。
如图所示,移位不变性意味着输入信号的移位只会导致输出信号的相同移位。如果输入信号 x[n] 导致输出 y[n],则输入信号 x[n+s] 输出输出 y[n+s],对于任何输入信号和任何常数 s。通过在自变量 n 上添加常数 s,波形可以在水平方向上前进或延迟。例如,当 s=2 时,信号向左移动两个样本;当 s=-2 时,信号向右移动两个样本。
移位不变性很重要,因为它意味着系统的特征不会随时间(或自变量的任何变化)而变化。如果输入中的某个点导致输出中出现块状,则可以放心,另一个点将导致相同的块状块。
3 静态线性度和正弦保真度
静态线性(Static linearity)定义了线性系统在信号不变时(即直流或静态信号)的反应。线性系统的静态响应非常简单:输出是输入乘以一个常数。也就是说,根据相应的输出值绘制的可能输入值的图形是一条穿过原点的直线。下图显示了两种常见的线性系统:电阻器的欧姆定律和弹簧的胡克定律。
为了进行比较,下图显示了两个非线性系统的静态关系:pn结二极管和铁的磁性。
所有线性系统都具有静态线性特性,但并非总是如此。有些系统显示静态线性,但相对于变化的信号不是线性的。在这些系统中,输入信号是静态的还是变化的并不重要。这些称为无内存系统,因为输出仅取决于输入的当前状态,而不取决于其历史记录。例如,电阻器中的瞬时电流仅取决于其两端的瞬时电压,而不取决于信号如何成为它们的值。如果系统具有静态线性,并且是无记忆的,则系统必须是线性的。
线性系统的一个重要特征是它们在正弦曲线上的表现,我们将这一特性称为正弦保真度(sinusoidal fidelity):如果线性系统的输入是正弦波,则输出也将是正弦波,并且频率与输入完全相同。正弦波是唯一具有此属性的波形。
4 线性的特殊属性
线性是可交换的(commutative),是一种涉及两个或多个系统组合的属性。下图显示了大致思路。个系统以级联方式组合在一起,也就是说,一个系统的输出是下一个系统的输入。如果每个系统都是线性的,那么整体组合也将是线性的。
交换特性表明,级联中系统的顺序可以重新排列,而不会影响整体组合的特征。例如,假设一个电路由两级组成,一级用于放大,一级用于滤波。放大后过滤,还是过滤后放大,哪个最好?如果两个阶段都是线性的,则顺序没有任何区别,总体结果是相同的。实际的电子器件具有非线性效应,可能会使阶次变得重要,例如:干扰、直流偏移、内部噪声、压摆率失真等。
下图显示了线性系统理论的下一步:多个输入和输出。如果具有多个输入和/或输出的系统由线性子系统和信号相加组成,则该系统将是线性的。复杂性无关紧要,只是系统内部不允许任何非线性内容。
乘法在线性系统中的使用经常被误解。因为乘法可以是线性的,也可以是非线性的,这取决于信号的乘法。下图说明了这两种情况。将输入信号乘以常数的系统是线性的。该系统是放大器或衰减器,分别取决于常数是大于还是小于 1。相反,将一个信号乘以另一个信号是非线性的。想象一个正弦曲线乘以另一个正弦曲线;由此产生的波形显然不是正弦波。
另一种经常被误解的情况与电子产品中添加的寄生信号有关,例如直流偏移和热噪声。这些外来信号的添加是线性的还是非线性的?答案取决于污染信号的来源。如果它们被视为来自系统内部,则该过程是非线性的。这是因为正弦输入不会产生纯正弦输出。相反,外来信号可以看作是在多输入系统的单独输入上从外部进入系统。这使得过程是线性的,因为系统内只需要添加信号。
5 叠加:DSP的基础
当我们处理线性系统时,组合信号的唯一方法是缩放(信号乘以常数),然后加法。例如,一个信号不能乘以另一个信号。下图显示了一个示例:将三个信号相加: x 0 [ n ] x_0[n] x0[n]、 x 1 [ n ] x_1[n] x1[n] 和 x 2 [ n ] x_2[n] x2[n] 形成第四个信号 x[n]。这种通过缩放和加法组合信号的过程称为合成(synthesis)。
分解(Decomposition)是合成的逆运算,其中单个信号被分解成两个或多个加性分量。这比合成更复杂,因为任何给定信号都有无限可能的分解。例如,数字 15 和 25 只能合成(加)成数字 40。相比之下,数字 40 可以分解为:1+39 或 2+38 或 -30.5+60+10.5 等。
现在来谈谈DSP的核心:叠加(superposition),即理解如何分析信号和系统的整体策略。考虑输入信号,称为 x[n],通过线性系统,产生输出信号 y[n]。如下图所示,输入信号可以分解为一组更简单的信号: x 0 [ n ] x_0[n] x0[n]、 x 1 [ n ] x_1[n] x1[n]、 x 2 [ n ] x_2[n] x2[n] 等,将这些称为输入信号分量。接下来,每个输入信号分量单独通过系统,产生一组输出信号分量: y 0 [ n ] y_0[n] y0[n]、 y 1 [ n ] y_1[n] y1[n]、 y 2 [ n ] y_2[n] y2[n] 等。然后将这些输出信号分量合成为输出信号 y[n]。
这里是重要的部分:通过这种方法获得的输出信号与直接通过系统传递输入信号产生的信号相同。这是一个非常强大的想法。我们需要知道的不是试图理解系统如何改变复杂的信号,而是知道简单的信号是如何被修改的。在信号处理的术语中,输入和输出信号被视为简单波形的叠加(总和)。这是几乎所有信号处理技术的基础。
作为如何使用叠加的简单示例,在脑海中将数字 2041 乘以数字 4。怎么做到?可能已经想象过 2041 根火柴棒在你的脑海中飘荡,将心理形象翻了两番,然后开始数数。更有可能的是,使用了叠加来简化问题。数字 2041 可以分解为:2000 + 40 + 1。这些分量中的每一个都可以乘以 4,然后合成以找到最终答案,即 8000 + 160 + 4 = 8164。
6 常见分解
记住,这种方法的目标是用几个简单的问题代替一个复杂的问题。如果分解不能以某种方式简化情况,那么就一无所获。在信号处理中,对信号进行分解的方法主要有两种:脉冲分解和傅里叶分解(impulse decomposition and Fourier decomposition)。
脉冲分解
如图 5-12 所示,脉冲分解将 N 个样本信号分解为 N 个分量信号,每个分量信号包含 N 个样本。每个分量信号都包含原始信号的一个点,其余值为零。零字符串中的单个非零点称为脉冲。脉冲分解很重要,因为它允许一次检查一个样本的信号。同样,系统的特征在于它们如何响应脉冲。通过了解系统如何响应脉冲,可以计算出任何给定输入的系统输出,这种方法称为卷积。
如图 5-13 所示,阶跃分解还将 N 个样本信号分解为 N 个分量信号,每个分量信号由 N 个样本组成。每个分量信号都是一个阶跃,也就是说,第一个样本的值为零,而最后一个样本是某个常数值。考虑将 N 点信号 x[n] 分解为以下分量: x 0 [ n ] x_0[n] x0[n]、 x 1 [ n ] x_1[n] x1[n]、 x 2 [ n ] x_2[n] x2[n]、…、 x N − 1 [ n ] x_{N-1}[n] xN−1[n]。第 k 分量信号 x k [ n ] x_k[n] xk[n] 由点 0 到 k - 1 的零组成,而其余点的值为:x[k] - x[k-1]。例如,第 5 分量信号 x 5 [ n ] x_5[n] x5[n] 由点 0 到 4 的零组成,而其余样本的值为:x[5] - x[4](原始信号的样本 4 和 5之间的差值)。
偶数/奇数分解
如图 5-14 所示,偶数/奇数分解将信号分解为两个分量信号,一个具有偶数对称性,另一个具有奇数对称性。如果 N 点信号是围绕点 N/2 的镜像,则称其具有偶数对称性。也就是说,样本 x[N/2 + 1] 必须等于 x[N/2 - 1],样本 x[N/2 + 2] 必须等于 x[N/2 - 2],依此类推。同样,当匹配点的大小相等但符号相反时,就会发生奇对称,例如:x[N/2 + 1] = -x[N/2 - 1]、x[N/2 + 2] = -x[N/2 - 2] 等。这些定义假定信号由偶数个样本组成,并且索引从 0 到 N-1。分解的计算公式为:
隔行分解
如图5-15所示,隔行分解将信号分解为两个分量信号,偶数采样信号和奇数采样信号(不要与偶数和奇数对称信号混淆)。要找到偶数样本信号,请从原始信号开始,并将所有奇数样本设置为零。要找到奇数样本信号,请从原始信号开始,并将所有偶数样本设置为零。就是这么简单。
傅里叶分解
任何 N 点信号都可以分解为N+2个信号,其中一半是正弦波,一半是余弦波。最低频率的余弦波(在本图中称为 x C 0 [ n ] x_{C0} [n] xC0[n])在 N 个样本上的完整周期为零,即它是一个直流信号。接下来的余弦分量: x C 1 [ n ] x_{C1}[n] xC1[n]、 x C 2 [ n ] x_{C2}[n] xC2[n]和 x C 3 [ n ] x_{C3}[n] xC3[n],分别在 N 个样本上完成 1、2 和 3 个完整循环。这种模式适用于余弦波的其余部分,以及正弦波分量。由于每个分量的频率是固定的,因此对于被分解的不同信号,唯一变化的是每个正弦波和余弦波的振幅。
要理解线性系统的重要性,请考虑分析非线性系统的主要策略。该策略是使非线性系统类似于线性系统。有三种常见的方法可以做到这一点:
- 首先,忽略非线性。如果非线性足够小,则系统可以近似为线性。由原始假设产生的错误可以容忍为噪声或干脆忽略。
- 其次,保持信号非常小。如果信号的幅度非常小,许多非线性系统看起来是线性的。
- 第三,应用线性化变换。例如,假设将两个信号相乘以产生第三个信号:a[n]=b[n]×c[n]。取信号的对数将非线性乘法过程变为线性加法过程:log(a[n])= log(b[n])+log(c[n])