阵列是波形。当每个字节为1个样本时,我可以轻松地将二进制数组转换为int8
。使用12bit时,我可以设置仪器为每个样本发送2字节(字模式)。我一直在网上看到将2bytes / sample二进制数组转换为int16
向量,但到目前为止还没有。
这适用于每个样本1个字节
data = numpy.fromstring(dataword, dtype=numpy.int8)
使用unpack
data = numpy.array(unpack('%sb' %len(dataword) ,dataword))
无法弄清楚如何使用2bytes / sample。 感谢
答案 0 :(得分:0)
而不是像这样使用struct.unpack
:
data = numpy.array(unpack('%sb' %len(dataword) ,dataword))
您应该像这样使用它:
data = numpy.array(unpack('%sh' % len(dataword) / struct.calcsize('h'), dataword))
#----------------------------^ notice the 'h', signed short, 16 bits
您必须将len(dataword)
除以您正在读取的数字大小,在本例中为两个字节。最好使用calcsize
,但如果您已经知道,只需将其除以2。