MSP430单片机A/D过采样率的问题
4、 梳状滤波器的设计:梳状滤波器是一种固定形式的滤波器,它包括以下三个参数的选择:1)单
级滤波器的节数N;2)滤波器的阶数K;3)滤波器系数及运算的有限字长。
单级滤波器的节数N:等于∑-△A/D中的第一级的抽取率。
滤波器的阶数K:等于∑-△调制器的回路数。
滤波器系数及运算的有限字长:若不计归一化因子N-K,则滤波器系数均为正整数,且∑h(n)=N^K
,n=0...N-1
因此可用
b=K*log2N=Km
位的二进制码来表示滤波器的系数。同时,若∑-△调制器的输出为1bit数(仅0,1两个状态),则
滤波器输出 y(n)=∑h(m)x(n-m) ,m=0...N-1
显示有 0≤y(n)≤N^K
因此上式的滤波器运算亦可用mK位的二进制进行,不会出现截尾误差和溢出。
综上,可以选择滤波器的有效字长为mK。实际这也就是梳状滤波器输出的有效分辨率。
现在我们言归正传。
在TI的手册中我们可以知道,从∑-△调制器的1bit数据流通过SINC3梳状滤波器进行滤波。OSR是
SINC3梳状滤波器的一个参数,该滤波器的Z变换形式为: H(z)=( (1-z^-OSR)/(OSR*(1-z^-1)) )^3
对比上面的公式易知,OSR=N=2^m,K=3。
当OSR=256=28时,梳状滤波器输出的有效分辨率长度为: b=Klog2N=Km=3*8=24
当OSR=1024=210时,梳状滤波器输出的有效分辨率长度为b=3*10=30bit。
由此可见,OSR的值影响A/D采样后的输出结果的有效分辨率长度,即精度。因此,可以在不增加A/D
前端复杂程度的基础上,通过增加OSR的值达到提高输出精度的目的。
在SD16中,OSR的取值为{32,64,128,256},所以SD16的滤波器输出精度最高为24bit,最低为
15bit。
在SD16_A中,OSR的值为{32,64,128,256,512,1024},所以SD16_A的滤波器输出精度最高为
30bit。
由于SD16和SD16_A的输出寄存器均为16bit,对于滤波器输出精度高于16bit的,根据寄存器的设置,
截取滤波器输出结果的16bit;滤波器输出精度不足16bit的,根据寄存器的设置,对不足的位补0。
综上,过采样率OSR在SD16或SD16_A的A/D采样模块中,能够影响转换结果的精度,OSR值越大,输出
结果精度越高,反之,精度越低。
(由于原文是在word中编排,有很多公式复制后不能正常显示)
参考文献:梳状滤波器在∑-△ A/D中的应用
评论