4.4 定点算法
硬件设计中主要使用两种定点数:无符号数和二进制补码。在这两种情况下,数字都由整数位和小数位组成,由一个二进制点分隔。通常以(s,n+b,b)的形式指定格式,其中s表示格式(0为无符号,1为有符号的二进制补码)。例如,(0,8,5)表示一个具有3个整数和5个小数位数的无符号数。
4.4.1 无符号定点格式
无符号定点格式适用于信号只能取非复负值的情况,例如用于控制电路的计数器。无符号定点数由整数位和小数位组成,由一个二进制点分隔。形成数字的比特从左边的最高有效位(Most Significant Bit,MSB)排列到右边的最低有效位(Least Significant Bit,LSB),并且每个比特都具有单独的比特权重。图4.16描述了一个通用定点数的结构。
4.4.2 二进制补码格式
二进制补码格式与无符号格式相似,不同之处在于MSB具有负加权,如图4.15所示。因此二进制补码可以表示负数。MSB为0 时代表正数,为1时代表负数。图4.16总结了两种固定点格式的范围和精度。
4.4.3 字长增长
当不动点是算术运算的对象时,通常应该允许它们增长,以避免溢出。然而,较长的字长会导致运算电路的实现成本更高。作为一个简单的经验法则,当两个数字相加或相减时,该数字的整数部分应增加1位。这将使可用范围翻倍,并确保所有可能的答案都能表示出来。乘法运算会导致更大的幅度变化。为了避免上溢和下溢,应该将两个被乘数的整数部分和小数部分相加。
4.5 滤波
4.5.1 滤波器响应类型
当希望以某种方式改变信号的频率内容时,例如去除某个频带时,通常对信号进行滤波。
滤波器可分为四种响应类型,即:低通、高通、带通和带阻,如图4.17所示。
还有一类滤波器是全通滤波器,在这里不重点讨论。信号的幅度不会通过滤波而改变,相反,滤波的目的是修改信号的相位。
4.5.2 滤波器幅值响应特征
滤波器可以在模拟域和数字域中实现,滤波器响应可以用一组关键特征来描述。图4.18以低通滤波器响应为例说明了这些滤波器特性。在这里定义了响应的三个区域:通带、过渡带和阻带。通带中的信号频率分量经历大约0dB的增益。在阻带中,信号受到衰减。在通带和阻带之间存在具有滑动增益的过渡带。
在指定过滤器的要求时,通常使用以下参数:通带频率、阻带频率、通带波纹和阻带衰减。过渡带宽对应于通带和阻带边缘频率之间的差。理想的滤波器响应通带增益为0dB,阻带衰减无限,过渡带宽为0Hz,如图4.19所示。
对于带阻滤波器和带通滤波器,分别有两个通带区域和两个阻带区域,并且可以单独设置响应的这些附加特征的参数。例如,带通滤波器的两个阻带区域中的衰减不需要相等。
4.5.3 无限和有限脉冲响应滤波器
要进行的基本设计选择之一是选择有限脉冲响应(Finite Impulse Response,FIR)或无限脉冲响应(Finite Impulse Response,IIR)滤波器。顾名思义,FIR对脉冲的响应仅持续有限数量的样本。相比之下,IIR滤波器对脉冲的响应在理论上可以永远持续。图4.20中提供了比较两种滤波器响应类型的示意图。
选择IIR滤波器的主要动机是,它们可以使用更少的权重来实现与FIR滤波器相同的幅度响应,因此它们需要更少的计算,并且在硬件中实现的成本更低。然而,FIR滤波器具有两个有利的特性,这使它们成为通信应用的首选:FIR滤波器本质上是稳定的,因为它们没有反馈路径;任何由标准算法之一设计的FIR滤波器都具有对称的权重,因此具有线性相位响应的属性。这意味着通过滤波器的所有频率都被延迟相同的时间量,这对应于线性增加的相位差。
线性相位响应属性的意义在于保持不同频率分量之间的相位关系,这在通信中尤为重要,因为通信中信息由由几个不同频率组成的“脉冲”携带。脉冲形状可以被非线性相位滤波器破坏,但被线性相位滤波器保留。