Bri*_*ian 5 python arrays numpy complex-numbers
我有一个包含8位复数样本的二进制数据文件 - 即从MSB到LSB的虚数和实数(Q和I)分量的4位和4位.
如何将这些数据转换为numpy复数数组?
不支持执行 8 位复数(4 位实数,4 位虚数)。因此,以下方法是有效地将它们读入复数和虚数的单独 numpy 数组的好方法。
values = np.fromfile("filepath", dtype=int8)
real = np.bitwise_and(values, 0x0f)
imag = np.bitwise_and(values >> 4, 0x0f)
Run Code Online (Sandbox Code Playgroud)
那么如果你想要一个复杂的数组,
signal = real + 1j * imag
Run Code Online (Sandbox Code Playgroud)
这里有更多方法可以将两个真实数组转换为复杂数组:https : //stackoverflow.com/a/2598820/1131073
如果值是可能为负的 4 位整数(即适用二进制补码),则可以使用算术位移位正确分离两个通道:
real = (np.bitwise_and(values, 0x0f) << 4).astype(np.int8) >> 4
imag = np.bitwise_and(values, 0xf0).astype(int) >> 4
Run Code Online (Sandbox Code Playgroud)