这是一篇持续更新的翻译文,由于是自己阅读翻译,有些不重要的就没有翻译出来,可能会有不准确的地方,见谅。原书作者Michael M.Richer, Sheuli Paul Veton Kepuska, Marius Silaghi
导论
本书需要引出的关于信号处理的第一个问题就是:什么是信号?关于这个“信号“词语,目前有许多不同的解释,主要是根据信号所在的数域来定义,例如数字信号(布尔值,整数)或者实数
这些信号以两种形式得出:其一,通过有限次的观察可以分析出的概率分布;其二,已给的概率分布。信号通常包含了信息,然而这些信息无法通过直接测量得出。
信号的性质会导致信号本身比较抽象。更抽象的是,我们可以定义使用中关注的属性。在进化中,生物体随着时间的推移已经发展出这样的层次和抽象。当然,人类无法重复这种进化。然而,它仍然可以被研究,因为许多原始生物今天仍然活着。这里我们不考虑进化,但我们仍然可以利用我们的观察结果。
第一部分 信号处理部分
第一部分由7个章节组成,提供了读者应该了解的一些数学以及工业的基础。虽然这部分可以被描述为简明的摘要,并提供了相关的教科书的参考,但它仍然提供了一些示例和问题,可以作为课堂上预备知识复习部分的内容,或者可以帮助工程师调整自己的知识水平,以适应后续应用所需的知识水平。
第一部分主要包含有:
- 基于数字的信号表示
- 信号的量化
- 常见的信号测量与特征
- 中心极限定理
- 连续与离散信号的拉普拉斯、傅里叶、Z、余弦与小波变换
- 线性滤波与窗口选择
- 信号变换与处理、数字滤波与自适应滤波
- 维纳滤波、卡尔曼滤波、粒子滤波以及采样
- 估计、检测与谱分析
第一章 数字信号表示
本章将介绍离散时间信号的数字表示,以代替书中提出的抽象离散时间信号符号——x[n]及其在数字处理器(更具体地说是数字信号处理器)中的表示。
1.1 简介
连续信号必须由离散的时间间隔进行采样,并通过有限的数字以离散幅值的形式表示。由于数字信号处理器处理数据时,使用离散时间间隔,所以连续信号的采样也必须是在离散时间间隔上。现实表明,在离散时间间隔对许多连续信号进行采样是可能的,而产生离散时间信号,与原始模拟信号相比,没有任何损失或退化。如果满足一定的条件,将连续信号转换成离散时间表示与它是相同的。而这些需要满足的一定条件,在采样定理中有描述。
数字处理设备的另一个限制(其程度由其体系结构决定)是,数据必须由有限数量的数字表示。通常,数字处理器被设计用来存储和处理为每个表示分配了特定的最小和最大位数的数据。这些限制使表示具有有限的精度。用离散表示表示连续实际值的过程称为量化。当使用有限精度来表示实际值时,以下步骤控制对输出的量化效果:
- 对信号的连续输入值
进行时间和幅度量化,得到离散时间序列
- 将系数的实际值从
量化为有限精度表示:
- 考虑使用有限精度表示的算术运算对输出的影响,并根据需要修改实现,以获得最佳结果。
量化对连续信号和有限精度操作的影响已经得到了深入研究和理解。因此,可以将连续信号转换为数字形式,对其进行处理,并以所需的质量将其重建为连续表示。重建的信号通常具有满足某些质量标准的特性,这些标准优于其模拟对应物。在接下来的几个部分中,将讨论与有限精度数据表示相关的三个编号列举的问题。然而,同样重要的是要了解抽象数字概念的发展和此类表示的历史根源。从历史角度讨论数字和数字系统,相信这将有助于阐明塑造当前对数字及其表示的理解的基本概念和数字系统。
1.2 数字
人类文明的发展与数字的表示方式的发展紧密相关。在英语中,数字用数字符号表示。在过去,有几种不同的数字符号系统。在早期,一堆物品被认为与另一堆不同数量或不同类型的物品等值。这种价值体系用于商品交易。随着“价值”的标准化,即固定数量的同一种类物品被放在一个特殊的对应位置,并被认为与另一个特殊位置上的一件物品等值,这一发展得以实现。这种对应关系也导致了早期数字的书面表示方式。从那时起,我们进行算术运算的方式与我们表示数字的方式密切相关。
1.2.1 数字与数字符号
正如前面所述,人类文明的发展与数字的表示方式的发展紧密相关。数字用数字符号表示。
1.2.1.1 数字系统
早期数字系统使用文明/文化来命名,如下:
- 巴比伦数系
- 埃及数系
- 玛雅数系
- 希腊数系
- 罗马数系
- 印度-阿拉伯数系
1.2.1.2 巴比伦数系
最早的数字记录出现在公元前三千年前半期的苏美尔泥板上。苏美尔系统后来被巴比伦人接管。相对较小的数字的日常系统是基于从美索不达米亚文明继承的以十、百等为单位的分组。很少使用大数。更困难的数学问题是用六十进制(基数60)位置记数法来考虑的。早在公元前1750年,六十进位记数法就得到了高度发展。这种符号的独特之处在于,它实际上是一种省略指数的浮点表示形式。适当的比例因子或六十的幂由上下文提供。巴比伦楔形文字是通过在泥板上刻下楔形记号而形成的。正是因为古人以60为基数进行天文计算,所以我们现在仍然用这个系统来测量时间。1小时由60分钟组成,1分钟由60秒组成。
这个圆是360度的,因为地球大约360天绕太阳一圈。根据巴比伦计数法,每度分为60分钟(')每分钟60秒(''),把每一秒分成60 thirds(‘’‘)。巴比伦符号是位置符号(例如,数值记号)。根据位置不同,同一符号可能表示1、60、60*60。因为他们没有零的概念,这个符号可能会因为模棱两可而令人困惑。
1.2.1.3 埃及数系
埃及数系使用”|“表示1,”|||||“表示5,∩表示10,∩∩∩∩∩表示50,等等。因为他们使用不同的符号来表示一、十、百、千等,所以可以表示的数字范围是有限的。后来的罗马人采用这个系统来表示他们的数字。
1.2.1.4 玛雅印第安数系
从古代文明来看,只有玛雅印第安人在公元200年左右使用“零”作为数量的概念。他们也早在公元一世纪就引入了定点记数法。
1.2.1.5 希腊数系:算盘
大约公元前5世纪的希腊数字使用字母字符(24个字符)来表示数字。因为需要27个符号,所以采用了闪米特语的三个字母。希腊算盘大约起源于公元前60世纪,鹅卵石的行和列被组织成一个矩阵,对应于我们的十进制系统。书面形式不遵循十进制的位置符号。另一方面,希腊天文学家使用一种十六进制的位置符号来表示分数,这种符号是从巴比伦人那里改编来的。
1.2.1.6 罗马数系
因为罗马数字在欧洲使用了一千多年,我们仍然熟悉它们,并在某些情况下使用它们(钟面,书面文件中的枚举列表,纪念碑等)。罗马数字系统基于伊特鲁里亚字母符号I、V、X、L、C、D和M,分别表示1、5、10、50、100、500和1000。根据减法原理,即9和40被写成IX和XL,这在中世纪很流行,但是罗马人很少使用它。有趣的是,M(1000)的原始符号是。符号
是符号
(近似)的变形。1655年,约翰·沃利斯提议用∞这个符号来表示“无穷”。
1.2.1.7 印度-阿拉伯数系
我们现在使用的数字:0、1、2、3、4、5、6、7、8和9,通常被称为阿拉伯符号,但它起源于印度教。它由阿拉伯人传到欧洲学者。一个数字的值取决于它在系统中的位置(在数中的位置)
数字决定它的值)。因此,需要零来明确地表示数字。例如,704和74表示两个不同数字。就是这样,零的概念是强加给印度数学家的。理论上,在巴比伦系统中偶尔也需要零,但由于基数大得多,上下文通常会提供缺失的信息。因此,巴比伦人在没有零的情况下挣扎了一千多年。
除了最简单的情况外,这种早期的符号对于执行算术运算是不方便的。对这些早期数字系统的分析也揭示了两种不同的方法:符号-数值表示法(例如,罗马数字系统)现在常用的位置符号或位值符号。此外,在很长一段时间内,数字的抽象概念和被计数的对象是不可分离的,许多语言就是一个例子。在这些语言中,有许多特定对象的名称,但没有数字的概念。例如,斐济岛民用“bolo”来表示十艘船,而用“koro”来表示十个椰子。在英语中,couple指的是两个人,century表示一百年等。
1.2.2 数的类型
要了解数字(例如数字)在现代数字计算系统中是如何表示的,重要的是要知道所使用的可能的数字类型。
1.2.2.1 非负整数
非负整数为1、2、3、4、···,用集合表示,又称计数或自然数。数字0有时也包含在“整数”列表中,但似乎没有普遍的共识。一些作者还将“整数”解释为“小数部分为零的数字”。
1.2.2.2 整数
代数学科带来的数学进步迫使人们认识到负数(例如,要得到下面方程2x + 9 = 3的解就需要引入负数)。用零和负整数扩展的整数集,定义整数集
1.2.2.3 分数还是有理数
有理数的分数被定义为两个整数之比:
。所有有理数的集合用
表示,该
来源于德语单词Quotient,可翻译为比率。大多数早期的系统只使用和命名几个明显常见的分数。在著名的莱茵德纸莎草(Rhind papyrus)中,一份来自公元前1650年的埃及中王国的著名文件中,分数只使用了简单的表示:
以及
。需要时,将这些简单分数相加即可得到其他分数。例如:
。
1.2.2.4 无理数
无理数的发现是由毕达哥拉斯发现的,他发现正方形的对角线不是正方形边长的有理数倍。边长等于1的。,对角线=。换句话说,对角线与边长的比值不能用整数表示。无理数的十进制展开既不会终止也不会变成循环。无理数的例子有
1.2.2.5 实数与复数
有理数和无理数的集合定义了实数集合。实数可以通过虚数
的加法扩展成复数。复数
表示为:
1.2.3 按位计数系统
在按位计数系统中,数字的值取决于数字本身以及它在数字中的位置。通常,位置的值是10的幂。例如,数字1957表示的数字等于7个1,5个10,9个100和1个1000。根据这个概念,可以将数字所表示的值概括为:
其中:±是数字的符号,是数字集合,“.”是小数点,或者更详细的说,是基数点,B是这个数字系统的基。请注意,基数左边的数字称为整数部分,表示由n个数字表示的数字的整数部分。基数右边的数称为小数部分,表示小于1的由m个数字表示的小数。用这个计数方法,可以表示实数集合
中的数字。
由于可用的资源有限,计算机只能使用有限的数字子集来表示一个数字。因此,只能表示有限的一组数字。这个集合是由它可以表示的元素总数以及它所涵盖的值范围来定义的。在计算机中,数字最常见的本机表示形式是二进制系统或基数B = 2。在我们习惯的以10为基数的参考数制中,以2为基数(或二进制)的数值由以下表达式给出:
其中:±是数字的符号,是二进制数字集合,“.”是二进制小数点。值的范围及其精度由n和m定义,n是用来表示数字的整数部分的位数,m是用来表示数字的小数部分的位数。
1.3 信号的采样与重构
典型的系统通过模数转换器(ADC)和数模转换器(DAC)与连续世界连接,如图1.1所示。
只有当满足所谓的采样定理所规定的条件时,信号才能从离散样本中得到相同的重构。否则,重建信号与原始信号之间存在差异称为混叠。为了满足采样定理的要求,必须保证连续输入信号是有限带宽的。因此,获取ADC之前要通过一个低通滤波器。这种预滤波是任何数字处理系统的关键步骤。它确保混叠的影响被最小化到目标信号无法察觉的水平。该滤波器实现为模拟低通滤波器。然后用固定的采样率或采样频率对带限信号进行采样。采样由采样维持装置进行。将该信号量化并以数字形式表示为具有1和0值的二进制数字/位序列。然后将数据的量化表示转换为DSP的所需数字表示以方便进一步处理,如图1.1所示:
例1.1 假定一个输入的连续时间信号是完全周期性的,其表达式如下所示:
其中A是信号的幅值,是单位为弧度/秒的频率,
是信号的相位,
是单位为周期/秒的频率,记作赫兹。假设该连续时间信号
的每T秒进行采样,或者用采样率
表示,离散时间信号
在
时长上的采样为:
替换表示为:
这显示了离散时间信号的其它的特性。为标准化频率,
为数字频率,且:
DSP处理器对适当表示的输入信号执行编程操作,通常是复杂算法。结果以数字值序列的形式得到。这些值被转换成适当的数据表示(例如,24位有符号整数)后,通过数模转换器:DAC转换回连续域。过程如图1.2所示。
通过采样将连续输入信号x(t)的幅度和时间量化到离散时间信号x[n],以及数字信号处理结构的系数,还需要解决数字信号处理器如何表示这些数字。
下一节将讨论量化、数字及其表示的问题
1.3.1 标量量化
系统中将输入值x[n]转换为有限的规定值中的一个的部分称为标量量化。如图1.3所示,该函数是用理想模数转换器来表示的。该函数可以通过图1.3所示的表示进一步细化。理想的C/D转换器代表采样保持器的采样,量化器和编码器的组合代表ADC。