matlab AD数据转换(二)

2016-02-22 22:31 阅读 405 次 评论 2 条

上一日志写matlab读取AD数据并且转换,但在后续仿真过程中结果不对,排查过来发现是AD转换的问题,在写AD数据转换查找表时,没有使用连接符如下图所示。

image

这样生成的查找表其实是一个2x32的矩阵, 而不是我自己认为的1x64的行向量。导致后续查表时,对应的数据不对。

为此我写一个小程序验证一下

image

运行后生成的结果如下,这显然与我们预想的结果不一样。通过在查找表中增加连接字符,即可运算正确。

image

修改完毕后发现通过6bit的有效数据进行计算只是增加了计算量,而对计算效果,没有改进,所以想将6bit数据截取4bit,转换为有符号8bit数据进行运算。

首先需要完成截位,可以通过除法求商的方式,或通过右移位操作,然后将剩余的4bit无符号数据进行查找表,转换到8bit数据。

通过求商截取4bit数据  addata = fix(addata/4)

通过右移位截取4bit数据  addata = bitshift(int32(addata), -2);

下图所示为4bit数据查找表

image

之后的转换与6bit相同。

版权声明:本文著作权归原作者所有,欢迎分享本文,谢谢支持!
转载请注明:matlab AD数据转换(二) | 起点博客
分类:应用笔记 标签:,

发表评论


表情

  1. 名图
    名图 【农民】

    其实有时AD量化的位数选择并不是连续的,需要从中去某几位,如何实现?

  2. will
    will【站长】

    下次研究一下,毕竟FPGA中经常也是从中间位数取值的。