第一专题 量化误差2
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
x1 x2
x1 x2
将
x2的阶码变成与 x1 一样: x2 2010 0.001001
两数相加可得:2010 0.111001
将两浮点数的阶码相加,小数部分相乘即可。 结果为
2
010
0.011011
数字运算中的有效字长效应
浮点数在FPGA IP核中的表示
最常见的浮点数格式为IEEE 754标准。IEEE 754标准有:32 位单精度浮点数、4位双精度浮点数及80位扩展双精度浮点数。
A/D变换器的统计模型
实际采样时要精确地知道所有的量化误差e(n)是很困难的, 一般情况下只要计算它的平均效应就可以了,所以用统计分析 方法来分析量化误差的效应。
输入信号经A/D变换产生的量化误差
A/D变换器的统计模型
xa (t )
x(n) xa (m) x ( n) 抽样 量化器
ˆ ( n) x
bias 2
E 1
1
E 1 E 1 (2 1) ~ 2 指数表示移位数: 浮点数字长的代数表达式为:
x (1) s 1.m 2ebias
数字运算中的有效字长效应
浮点数在FPGA IP核中的表示 例:此处以32位单精度浮点数(1,8,23)为例:
符号位 计算结果
x (1) s 1.m 2ebias (1)1 1.100100101101 2(133127) =(-1100100.101101) 2 =(100.703125)10
数字运算中的有效字长效应
小结
综上所述,在数字运算中,数据的二进制数无论是由 定点表示还是由浮点表示,由于硬件的资源及计算速率的 要求,计算结果中均有截尾误差或舍入误差,即存在有效 字长效应。除非我们以资源或速率换取高精度,否则截尾 误差及舍入误差是难免的。
[1] 程佩青.数字信号处理教程(第三版).清华大学出版社.2007 [2] 陈后金.数字信号处理(第二版).高等教育出版社.2004
实例
主要计算方法:
CORDIC算法(坐标旋转曲 线法)
分段线性逼近法
数字运算中的有效字长效应
浮点数在FPGA IP核中的表示
数字运算中的有效字长效应
浮点数在FPGA IP核中的表示
数字运算中的有效字长效应
结论
定点数:数据的二进制数采用定点表示动态范围小,有溢出,尾数 处理会带来截尾或舍入误差。由此,在数字系统的计算中会发生有
限字长效应。
浮点数:浮点表示法尾数的字长决定浮点表示的精度,因此在硬件 中(如DSP、FPGA)实现计算时,由于硬件资源的限制及计算速率的 要求对尾数的处理也会带来截尾或舍入误差。由于浮点表示的阶码 决定浮点数的动态范围,因此与定点相比,浮点有更大的动态范围, 且不易溢出。
i 1
b
数字运算中的有效字长效应
定点数在FPGA IP核中表示
x sa1a2 aB b1b2 bC
C表 式中,s为符号位;B为整数宽度,表示长度为 B 位; 示小数宽度。
十进制计算公式为
x (1) s ( ai 2i bi 2 j )
i 1 j 1
B
C
数字运算中的有效字长效应
数字运算过程中的有效字长效应
输入信号经A/D变换产生的量化误差
滤波器的系数量化误差
总
结
滤波器的系数量化误差
数字滤波器的系统函数可用下式表示: 问题的提出
H ( z) B( z ) A( z )
k 0 N
bk z
k 1
M
k
1 ak z
k
k 0 N
bk z k
M
(1 0.99 z )
滤波器的系数量化误差
由此可知,滤波器系数在硬件中实现时其长度不可能是无 限精度的,它会受到硬件资源的限制。而若对其进行量化则会 产生截尾误差或量化误差,这一点是无可避免的,为了保持系 统稳定,我们只能用有限字长来对滤波器系数以二进制表示。 滤波器系数量化效应除了与寄存器的字长有直接的关系外, 还与滤波器的结构密切相关。高阶直接型结构滤波器的极点数 目多而密集,而低阶直接型结构滤波器的极点数目少而稀疏, 因而前者对系数量化误差要敏感得多[1][2]。
输入信号本身也含有噪声n(t) 增加b,使量化噪声功率远小于信号本身携带的噪声功率即可, 即:
2 e2 n
输入信号经A/D变换产生的量化误差
小结
输入信号经A/D变换会产生量化误差。采用信噪比来估算量 化误差的大小可知,提高A/D的量化信噪比的方法有: 增大输入信号 增加字长b
主要内容
数字运算过程中的有效字长效应
输入信号经A/D变换产生的量化误差
滤波器的系数量化误差
总
结
输入信号经A/D变换产生的量化误差
A/D变换的工作原理
A/D转换器是一种将输入的模拟信号x(t)转换为b位二进制数字信号的器件。 b的数值可以是8,12或高至20。它可以分为以下两部分:
采样:时间离散,幅度连续;
滤波器的系数量化误差应
定点数的表示
定点数表示就是指小数点在数中的位臵是固定不变的。 常用表达形式为:
0 1 2 b
其中,最高位为符号位,0为正,1为负,小数点紧跟在符 号位后;数的本身只有小数部分,称为“尾数”;
十进制计算公式为:
x (1) 0 i 2 i
数字运算过程中为限制位数而进行尾数处理、防止溢出而 产生的有效字长效应。
输入信号经A/D变换产生的量化误差
即A/D变换器将模拟输入信号变为一组离散电平时产生的量 化误差。
滤波器的系数量化误差
即把系统系数用有限二进制数表示时产生的量化误差。
主要内容
数字运算过程中的有效字长效应
输入信号经A/D变换产生的量化误差
第六专题
量化误差与有限字长效应
前言
数字信号处理的实质:一组数值运算
从设计的角度来讨论:认为数字是无限精度的 从实现的角度考虑:数字的精度就是有限的
从设计时的无限精度到实现时的有限精度,会产生
相对于原设计系统的误差,严重时会导致系统崩溃。
前言
有限字长的影响,主要表现在以下三方面
数字运算过程中的有效字长效应
……
2C:指数,决定浮点 数的动态范围 C:阶码
…… bc
符号位
bm
符号位,正数小数点 往右移,负数往左移
数字运算中的有效字长效应
浮点数的表示
例1:F=0.101×2010=0.625×4=2.5
符号位 符号位
0
1
0
1
0
0
1
0
数字运算中的有效字长效应
浮点数的表示
例2:若两个二进制浮点数 x1 2010 0.1100, x2 2 000 0.1001 求 x1 x2 及 x1 x2
Px SNR Pe
其中, P 表示信号功率,P 表示噪声功率。
x
e
输入信号经A/D变换产生的量化误差
A/D变换器的误差计算
由此,可以计算误差为:
x2 x2 2 12 2 SNR 2 x x 12 22 q e q
12
b
SNR用dB表示有:
2 x 2 SNR 10 log10 2 6.02b 10.79 10 log10 x ( dB) e
定点数在FPGA IP 核中表示
数字运算中的有效字长效应
定点数在FPGA IP 核中表示
数字运算中的有效字长效应
定点数表示的缺点
结论 定点数作加减法时结果可能会 “溢出” 乘法运算不溢出,但字长要增加一倍。 数据的二进制数采用定点表示动态范围小,有溢出,尾数 例:b=3=>0.101 处理会带来截尾或舍入误差。由此,在数字系统的计算中便会
输入信号经A/D变换产生的量化误差
结论
信号功率
2 x
越大,信噪比越高;
字长越长,A/D变换的信噪比越高;
随着字长b的增加,信噪比也增大,字长b每增加一 位,则信噪比增加约6dB。
输入信号经A/D变换产生的量化误差
在实际的信号处理中,输入信号的幅值往往会大于A/D变 换器的动态范围,因此,需要将原有模拟输入信号 x ( n) 压缩 为 Ax(n), 0 A 1 ,然后对其量化。由于 Ax(n) 的实际方差 为 A2 x 2,所以信噪比为:
根据标准浮点数字长由一个符号位S、指数e和无符号(小数) 的规格化尾数 m构成。 其格式如下图所示。
数字运算中的有效字长效应
浮点数在FPGA IP核中的表示
最高位为符号位,O表示正数,1表示负数。其后是用原码表 E 示的指数e,若指数为E位,则表示范围为: 0 ~ 2 1 ,指数的
偏移量下式表示:
在满足抽样定理的前提下,模拟信号时间离散化的过程是可逆的。
量化 对抽样序列进行幅度上的离散化之后,用某种格式的数字代码来表示。
量化过程是不可逆的
必定要引入量化误差或量化噪声。 量化噪声的大小决定了A/D转换器的动态范围,是恒量A/D转换器性能 的一个最重要指标。
输入信号经A/D变换产生的量化误差
[1] 程佩青.数字信号处理教程(第三版).清华大学出版社.2007 [2] 桂志国,楼国红.数字信号处理.数字信号处理.2009
总结
浮点数具有更大的动态范围,取相同的尾数字长时,浮点运 算的误差要比定点运算的误差小,因此在数值运算时尽量采用 数字系统中的每一个数总是用有限字长的二进制数码表示, 浮点运算。 滤波器系数量化效应不仅与硬件中寄存器的字长相关,还与 运算过程中需要的数字信号的值、系统的系数和运算过程中的 滤波器的设计结构有联系。由于高阶滤波器的极点数比低阶滤 结果都是存储在有限字长的存储单元中的,此时数字的精度就 波器多,因此在滤波器设计时若能完成相同功能尽可能地采用 是有限的,这就会使数值的二进制表示存在截尾误差或舍入误 低阶滤波器结构。 为了减小A/D变换的量化误差,可以增大输入信号或增加字 差。 长,但若长到使A/D变换器的量化噪声比输入信号的噪声电平 更低则没有意义。
1 ( 1 p z ) r r 1
理想滤波器系数 ak 和bk 是无限精度的,但在硬件中实现时二 者必须用有限位的二进制数存储在有限长的寄存器中,经过量化后 的系数用 ak 和 bk 表示,则有
a k = a k a k bk =bk bk
滤波器的系数量化误差
e(n)
xa (t )
x(n)
理想ADC
ˆ ( n) x
量化器相当于抽样序 列与加性白噪声求和
输入信号经A/D变换产生的量化误差
A/D变换器的误差计算
A/D变换器可建模为一个无限精度的数字信号 x ( n)和量化 误差 e( n) 的叠加,即:
ˆ (n) x(n) e(n) x
这时,我们常采用信噪比SNR来衡量量化效应:
×0.011 发生有限字长效应。 101 成为六位数,截尾变成0.001。产生误差。 101 0.001111
数字运算中的有效字长效应
浮点数的表示
数码中小数点的位臵是浮动的,b位二进制数分成指数部分 和尾数部分。浮点数F可表示为:
F M 2c
M:尾数,决定浮点的精 度。 0.5 M 1
量化:数字编码,对采样序列作舍入或截尾处理,得有限字长数字信号 。 A/D变换器的功能原理图如下图所示。
xa (t )
x(n) xa (m) x ( n) 抽样 量化器
ˆ ( n) x
输入信号经A/D变换产生的量化误差
量化误差的来源
抽样 产生抽样序列x(n)=x(t)|t=nT=x(nT), x(n): 可看成是一个无限精度的数字信号
由滤波器系统函数的分母表达式进一步推导可知,量化误 差的表达式为 N N ak 1 ak (1 pr z 1 ) (*)
k 0 r 1
基于此,若用三个相同的一阶IIR数字滤波器的级联结构来 1 实现系统函数为 H ( z ) 的数字滤波器,由于每个一阶 1 3
极点都是相同的 z 0.99 ,为了使该系统稳定,由(*)式可 得 ak 1 0.99 102 27 ,即表示系数0.99只需用6位字长的二 进制数表示即可。
e2 由于log10 A 0 ,压缩输入信号幅度将使SNR减小。
SNR
2 A2 x
2 6.02b 10.79 10 log10 x 20 log10 A (dB)
输入信号经A/D变换产生的量化误差
思考
为了提高信噪比,是不是b越大越好呢? b越大SNR越高,但芯片的复杂度越高;