问个数字滤波的问题

[复制链接]
2970|3
 楼主| yidou 发表于 2010-6-25 20:26 | 显示全部楼层 |阅读模式
在编写滤波程序的时候,为什么要先进行AD转换呢,转换后的结果也不是直接用而是还要处理一下,
Ad_data=(Ad_data>>6)—0x136;
filter_data=Ad_data*32;
//除以1024,变成小数,再转换成q15
红色部分是一段程序里面的几句话,看不明白注释
等号右边的Ad_data是AD转换结果寄存器里面的值,这里为什么要减0x136,又为什么要乘32呢?
qfengbj 发表于 2010-6-25 22:59 | 显示全部楼层
AD转换结果寄存器里面高十位存放结果,末六位保留。别的就不知道了
aresc 发表于 2010-6-26 10:56 | 显示全部楼层
本帖最后由 aresc 于 2010-6-26 10:57 编辑

AD_data>>6表示该数据的低6位无效。 -0x136应该是去直流偏置。
*32相当与左移5位,如果AD的有效数据是10位的话,那左移5位对16位的定点DSP就是转换成Q15格式,即最高位为符号位,小数点在符号位的后面,表示的数据范围为[-1.0,1.0)。

至于那个注释写的处以1024,因为1024=2^10,可以将10位的AD数据转换成小于1.0的小数。
twlkyao 发表于 2010-8-6 19:25 | 显示全部楼层
buqingchu
您需要登录后才可以回帖 登录 | 注册

本版积分规则

0

主题

391

帖子

1

粉丝
快速回复 在线客服 返回列表 返回顶部
0