7.1.3常用信号处理算法中的定标方法 FIR滤波器的定标scaling方法 ◆在FIR滤波器中处理溢出的最好方法是设计时使滤 波器的增益小于1(设计滤波器系数全为小数),这 样就不需要对输入信号定标。这种方法和累加器的 保护位结合起来,可以有效地防止溢出。 ◆在FIR滤波器中一般不用固定定标和输入定标,因 其影响信号分辨率(基本是乘累加1次对应1位)。 在FIR滤波器中可使用动态定标,前提是由此导致 的计算时间增加可以承受。饱和处理也是某些音频 信号一种常用的方法。 18
7.1.3 常用信号处理算法中的定标方法 ⚫ FIR滤波器的定标scaling方法 ◆ 在FIR滤波器中处理溢出的最好方法是设计时使滤 波器的增益小于1(设计滤波器系数全为小数),这 样就不需要对输入信号定标。这种方法和累加器的 保护位结合起来,可以有效地防止溢出。 ◆ 在FIR滤波器中一般不用固定定标和输入定标,因 其影响信号分辨率(基本是乘累加1次对应1位)。 在FIR滤波器中可使用动态定标, 前提是由此导致 的计算时间增加可以承受。饱和处理也是某些音频 信号一种常用的方法。 18
IIR滤波器的定标scaling方法 ◆由于滤波器系数的量化引入舍入误差,用定点法实 现IIR滤波器时,推荐使用多个二阶基本节级联组 成,这样可以减小高阶滤波器对误差的频率响应灵 敏度。另外避免溢出对工IR滤波器也非常重要。 ◆可以通过把中间结果保存在处理器累加器来避免 节间数据溢出。为防止在第k阶内部发生数据溢出, 需要用增益系数对滤波器的单位脉冲响应(前馈通 道)定标。G.=∑abs(f(n),G.=∑(abs(f(m)) n 动态定标scaling方法。在每个阶段若检测到溢出, 滤波器内部状态,定标都被减半,以提高指令周期 换取为代价提高了结果的精度。 19
⚫ IIR滤波器的定标scaling方法 ◆ 由于滤波器系数的量化引入舍入误差,用定点法实 现IIR滤波器时, 推荐使用多个二阶基本节级联组 成, 这样可以减小高阶滤波器对误差的频率响应灵 敏度。另外避免溢出对IIR滤波器也非常重要。 ◆ 可以通过把中间结果保存在处理器累加器来避免 节间数据溢出。为防止在第k阶内部发生数据溢出, 需要用增益系数对滤波器的单位脉冲响应(前馈通 道)定标。 ◆ 动态定标scaling方法。在每个阶段若检测到溢出, 滤波器内部状态,定标都被减半, 以提高指令周期 换取为代价提高了结果的精度。 k n G abs(f (n)) , = 2 1/2 k n G (abs(f (n)) ) = 19
●FFT的定标方法 (右移1位即÷2,20log02=6) ◆在FFT操作里,每次蝶形运算后数据平均增加一位。 输入定标需要移位l0g2N(FFT长度为N),这会导致在 计算FFT之前就衰减6log2WdB。 ◆在固定定标中,每级蝶形运算输出除以2,这是最常用 的FFT定标方法,因为它简单而且有比较好的信噪比。 但是,对于大的FFT,这种定标可能会使信息丢失。 ◆另一种方法是动态定标,即在输出溢出时再除以2。在 这种情况下,会在这个过程中指定一个变量,每定标一 次变量的值加1,计算结束后根据变量的值把结果乘以 一个系数。动态定标的信噪比最好,但会增加FT循环 次数。 20
⚫ FFT的定标方法 ◆在FFT操作里,每次蝶形运算后数据平均增加一位。 输入定标需要移位 (FFT长度为N), 这会导致在 计算FFT之前就衰减 6 dB。 ◆在固定定标中, 每级蝶形运算输出除以2, 这是最常用 的FFT定标方法, 因为它简单而且有比较好的信噪比。 但是, 对于大的FFT, 这种定标可能会使信息丢失。 ◆另一种方法是动态定标, 即在输出溢出时再除以2。在 这种情况下, 会在这个过程中指定一个变量, 每定标一 次变量的值加1, 计算结束后根据变量的值把结果乘以 一个系数。动态定标的信噪比最好, 但会增加FFT循环 次数。 log 2 N log 2 N 20 (右移1位即÷2, log ) 10 20 2=6
第7章应用程序设计 内容提要: ■7.1定标与溢出处理 ■7.2基础算术运算 ■7.3FIR滤波器 ■7.4IIR滤波器 ■7.5快速傅里叶变换(FFT) ■7.6 DSPLIB的使用 21
第7章 应用程序设计 内容提要: ◼ 7.1 定标与溢出处理 ◼ 7.2 基础算术运算 ◼ 7.3 FIR滤波器 ◼ 7.4 IIR滤波器 ◼ 7.5 快速傅里叶变换(FFT) ◼ 7.6 DSPLIB的使用 21
7.2基础算术运算 ■7.2.1加减运算 ■7.2.2乘法运算 ■7.2.3除法运算 ■7.2.4小数乘法 22
7.2 基础算术运算 ◼ 7.2.1 加减运算 ◼ 7.2.2 乘法运算 ◼ 7.2.3 除法运算 ◼ 7.2.4 小数乘法 22