博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

原文: https://learning.oreilly.com/library/view/digital-signal-processing/9780750674447/xhtml/B9780750674447500443.htm#cesectitle4

摘录:

本章在几个方面对卷积的特性和使用进行了扩展。
首先,讨论了几个常见的脉冲响应。
第二,介绍了处理线性系统的级联和平行组合的方法。
第三,介绍了相关的技术。
第四,研究了卷积的一个讨厌的问题;使用传统的算法和计算机,计算时间可能长得令人无法接受。

常见的脉冲响应

delta函数

输入的脉冲在输出上产生一个相同的脉冲

类似于零是加法的标识(a+0=a),而1是乘法的标识(a×1=a)。乍一看,这种类型的系统可能看起来微不足道,毫无意义。并非如此! 这种系统是数据存储、通信和测量的理想选择。DSP的大部分内容是关于通过系统传递信息而不改变或退化。

delta函数加上一个移位和缩放的delta函数组成的脉冲响应。通过叠加,这个系统的输出是输入信号加上输入信号的延迟版本,也就是回声。回声在许多DSP应用中是很重要的。回声的加入是使音频记录听起来自然和悦耳的关键部分。雷达和声纳通过分析回声来探测飞机和潜艇。地球物理学家利用回声来寻找石油。回声在电话网络中也非常重要,因为你想避免它们。

类似微积分的运算

卷积可以以类似积分和微分的方式改变离散信号。由于 "导数 "和 "积分 "这两个术语具体指的是对连续信号的操作,所以它们的离散对应物被赋予其他名称。模仿一阶导数的离散操作被称为一阶差分。同样地,积分的离散形式被称为running sum。也经常听到有人把这些运算称为离散导数和离散积分,尽管数学家在听到这些非正式术语时都会皱眉头。

低通和高通滤波器

数字滤波器的设计将在后面的章节中详细介绍。现在,只要能理解低通和高通滤波器内核(滤波器脉冲响应的另一个名称)的一般形状就可以了。图7-4显示了几种常见的低通滤波器的内核。一般来说,低通滤波器的内核是由一组相邻的正点组成的。这导致输出信号中的每个样本是输入信号中许多相邻点的加权平均。这种平均法可以平滑信号,从而去除高频成分。如(c)中的sinc函数所示,一些低通滤波器的内核在尾部包括一些负值的样本。就像在模拟电子学中一样,数字低通滤波器被用于降噪、信号分离、塑波等。

图7-4 典型的低通滤波器核。低通滤波器核是由一组相邻的正点组成的,对信号进行平均化(平滑化)。正如后面几章所讨论的,这些滤波器核中的每一个都最适合于某种特定的目的。指数,(a),是最简单的递归滤波器。矩形脉冲,(b),最能减少噪音,同时保持边缘的清晰度。(c)中的sinc函数,是一条形式为:sin(x)/(x)的曲线,用于将一个频段与另一个频段分开。

滤波器的截止频率是通过使滤波器内核变宽或变窄来改变的。如果一个低通滤波器在直流(零频率)处的增益为1,那么脉冲响应中所有的点之和必须等于1。如(a)和(c)所示,一些滤波器的内核理论上可以延伸到无穷大而不降到零值。在实际操作中,尾部在一定数量的样本后被截断,使得它可以用有限的点来表示。否则怎么能把它储存在计算机中呢?

图7-5显示了三种常见的高通滤波器核,由图7-4中相应的低通滤波器核派生。这是滤波器设计中常见的策略:首先设计一个低通滤波器,然后将其转化为你需要的东西:高通、带通、带阻等。要理解低通到高通的转换,请记住,三角函数的脉冲响应会通过整个信号,而低通脉冲响应只通过低频成分。通过叠加,一个由delta函数减去低通滤波器内核组成的滤波器内核将通过整个信号,减去低频成分。一个高通滤波器就诞生了! 如图7-5所示,delta函数通常加在对称中心,如果滤波器核不对称,则加在采样零点。高通滤波器在直流(零频率)处的增益为零,通过使滤波器内核中所有点的总和等于零来实现。

因果和非因果信号

想象一下一个简单的模拟电子电路。如果你在输入端施加一个短脉冲,你会在输出端看到一个反应。这就是我们的宇宙所基于的那种因果关系。有一件事我们肯定知道:任何效果都必须发生在原因之后。这是我们所说的时间的一个基本特征。现在将其与一个将输入信号变为输出信号的DSP系统相比较,两者都存储在计算机的阵列中。如果这模仿的是真实世界的系统,它必须遵循与真实世界相同的因果关系原则。例如,输入信号中第8个样本的数值只能影响输出信号中第8个或更大的样本。以这种方式运作的系统被说成是因果关系。当然,数字处理不一定要以这种方式运作。由于输入和输出信号都是存储在计算机中的数字数组,任何一个输入信号值都可以影响任何一个输出信号值。

如图7-6中的例子所示,因果系统的脉冲响应对于所有负数的样本必须有一个零的值。从卷积的输入侧角度来考虑这个问题。要成为因果系统,输入信号中样本数为n的脉冲必须只影响输出信号中样本数为n或更大的那些点。在通常的用法中,术语因果适用于所有负数样本的值为零的任何信号,无论它是否是脉冲响应。

零相位、线性相位和非线性相位

如图7-7所示,如果一个信号在零号周围具有左右对称性,则称其为零相位。如果一个信号具有左右对称性,但围绕零以外的某个点,则被称为线性相位。这意味着任何线性相位信号都可以通过左移或右移而变成零相位信号。最后,如果一个信号不具有左右对称性,则被称为非线性相位。

图7-7 相位线性的例子。具有左右对称性的信号被称为线性相位。如果对称轴发生在采样数为零的地方,则另外说它们是零相位。任何线性相位信号都可以通过移位转化为零相位信号。不具有左右对称性的信号被称为非线性相位。不要将这些术语与线性系统中的线性混淆。它们是完全不同的概念。

你可能在想,这些名称似乎并不符合它们的定义。相位与对称性有什么关系?答案在于频谱,在以后的章节中会有更详细的讨论。简而言之,任何信号的频谱都是由两部分组成,即幅度和相位。一个围绕零对称的信号的频谱,其相位是零。同样地,围绕某个非零点对称的信号的频谱,其相位是一条直线,即线性相位。最后,一个不对称的信号的频谱有一个不是直线的相位,即它有一个非线性相位。

关于可能会引起混淆的术语:线性和非线性相位,要特别注意。这与前几章中讨论的系统线性概念有什么关系?完全没有关系! 系统线性是一个广泛的概念,几乎所有的DSP都是基于这个概念(叠加性、同质性、可加性等等)。线性和非线性相位意味着相位是,或者不是一条直线。事实上,一个系统甚至必须是线性的,才能说相位是零、线性或非线性。

数学属性

交换律

这说明信号卷积的顺序是可以交换的。

结合律

分配律

输入和输出之间的转移

对输入信号进行的线性改变会导致对输出信号进行同样的线性改变。

中心极限定理

中心极限定理是概率论中的一个重要工具,因为它从数学上解释了为什么高斯概率分布在自然界中观察得如此普遍。例如:电子电路中的热噪声的振幅遵循高斯分布;激光束的横截面强度是高斯的;甚至镖靶靶心周围的孔的图案也是高斯的。在其最简单的形式中,中心极限定理指出,当观察到的变量是许多随机过程的总和时,会出现高斯分布。即使组成过程不具有高斯分布,它们的总和也会具有高斯分布。

中心极限定理对卷积有一个有趣的含义。如果一个脉冲状信号与自身多次卷积,就会产生一个高斯

相关性

相关性是一种数学运算,与卷积非常相似。正如卷积一样,相关使用两个信号来产生第三个信号。这第三个信号被称为两个输入信号的交叉相关。如果一个信号与自身相关,产生的信号反而被称为自相关。

交叉相关信号中每个样本的振幅是衡量接收信号与目标信号在该位置上的相似程度。这意味着每一个目标信号出现在接收信号中,交叉相关信号就会出现一个峰值。换句话说,当目标信号与接收信号中的相同特征对齐时,交叉相关的值就会达到最大。

如果目标信号包含负值的样本怎么办?没有什么变化。想象一下,相关机的定位是,目标信号与接收信号中的匹配波形完全一致。当来自接收信号的样本落入相关机时,它们被目标信号中的匹配样本所乘。忽略噪音,一个正的样本将被乘以它自己,从而得到一个正数。同样地,一个负的样本将被乘以自身,也会产生一个正数。即使目标信号完全是负的,交叉相关的峰值仍将是正的。

如果接收的信号有噪声,交叉相关信号也会有噪声。这是一个不可避免的事实,随机噪声看起来与你可以选择的任何目标信号有一定程度的相似。交叉相关信号上的噪声只是测量这种相似性。除了这个噪声,交叉相关信号中产生的峰值在其左右两边是对称的。即使目标信号不是对称的,也是如此。此外,峰值的宽度是目标信号宽度的两倍。请记住,交叉相关正试图检测目标信号,而不是重现它。没有理由期望峰值会看起来像目标信号。

相关性是检测随机噪声中已知波形的最佳技术。也就是说,使用相关技术的峰值比任何其他线性系统所能产生的峰值都要高。(完全正确地说,它只对随机白噪声是最佳的)。使用相关性来检测一个已知的波形,经常被称为匹配滤波。在第17章中会有更多这方面的内容。

相关机和卷积机是相同的,除了一个小区别。卷积机内部的信号被从左到右翻转。这意味着,样本数。1,2,3的图像从右边跑到左边。在相关机中,这种翻转并不发生,样本按正常方向运行。

由于这种信号反转是两种操作之间的唯一区别,因此可以用与卷积相同的数学方法来表示相关。这需要对被关联的两个信号中的一个进行预翻转,这样卷积中固有的左右翻转就被取消了。例如,当a[n]和b[n]被卷积以产生c[n]时,方程式被写成:a[n]* b[n]=c[n]。相比之下,a[n]和b[n]的交叉相关可以写成:a[n]*b[-n]=c[n]。也就是说,将b[n]左右翻转是通过颠倒指数的符号来完成的,即b[-n]。

不要被卷积和相关之间的数学相似性所迷惑,它们代表了非常不同的DSP程序。卷积是一个系统的输入信号、输出信号和脉冲响应之间的关系。相关性是一种在噪声背景中检测已知波形的方法。类似的数学只是一种方便的巧合。

速度

编写一个程序使一个信号与另一个信号相融合是一个简单的任务,只需要几行代码。执行该程序可能会更痛苦。问题是该算法需要大量的加法和乘法,导致执行时间很长。正如上一章中的程序所示,耗时的操作是由两个数字相乘并将结果加到累加器中组成。算法的其他部分,如对数组进行索引,是非常快的。乘法-累加是DSP的一个基本构件,我们将看到它在其他几个重要的算法中重复出现。事实上,DSP计算机的速度通常是由执行乘法-累加操作所需的时间来决定的。

如果一个由N个样本组成的信号与一个由M个样本组成的信号进行卷积,必须预先进行N×M的乘积。这可以从上一章的程序中看出。90年代中期的个人计算机每次乘积需要大约1微秒(100-MHz奔腾,使用单精度浮点,见表4-6)。因此,将一个一万点的信号与一个一百点的信号进行卷积需要大约一秒钟。处理一个100万点的信号与一个3000点的脉冲响应需要将近一个小时。在十年前(80286在12兆赫),这种计算需要三天的时间!而在十年后的今天,这种计算则需要更长的时间。

执行时间过长的问题通常以三种方式之一来处理。首先,简单地保持信号尽可能短,使用整数而不是浮点。如果你只需要运行几次卷积,这可能是执行时间和编程努力之间的最佳权衡。第二,使用为DSP设计的计算机。DSP微处理器的乘积时间只有几十纳秒。如果你打算多次进行卷积,例如在商业产品的设计中,这是一条途径。

第三种解决方案是使用更好的算法来实现卷积。第17章介绍了一种非常复杂的算法,叫做FFT卷积。FFT卷积产生的结果与上一章介绍的卷积算法完全相同;但是,执行时间却大大缩短。对于有成千上万个样本的信号,FFT卷积可以快几百倍。其缺点是程序复杂。即使你熟悉这种技术,也要花几个小时才能使程序运行。