打印

问个数字滤波的问题

[复制链接]
1944|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

粉丝