前面介绍了matlab的一些常用操作与函数,但matlab还是用来仿真计算的,这就需要将AD采集的数字数据导入matlab进行计算,一般将AD数据存储为文本文件(内容为二进制存储),通过matlab的fopen()打开文件,然后通过fread()读取数据内容,注意选择数据长度,如下图所示,图中的数据为8bit无符号数的形式读取。
而实际我们采集的无符号8bit数中,只有6bit有效,并且还是有符号数的,那么直接通过上图的方法读取数据将会将数据范围变成0~63,而没有负数的情况。那么6bit的最高为符号位,而这与我们通过的8bit表示有符号的二进制形式不一样,感兴趣的童鞋可以通过Windows计算器查看一下有什么不同。那么怎么将6bit无符号数转换有符号8bit数据呢?
我通过查表法进行转换,因为位数比较少,表的内容也就64个,好理解也好实现,再多的话就需要想其他办法转换了。
上面是查表值的内容,对应0~63值的有符号8bit数值。因为matlab数组的下标从1开始,所以转换的时候,需要将addata+1后再进行查表。形式与OrignDataIdx(addata+1)所示。
PS:这里的查找表问题已经更正,增加了连接符。