HackRF采集的iq数据,python3和matlab打开数据文件方法代码
代码如下,使用的是网上找的hackrf采集的无人机遥控信号,
所用信号数据GitHub地址
https://github.com/a232319779/PHANTOM-3-STANDARD/tree/master/data
import numpy as np
import matplotlib as mpl
import matplotlib.pyplot as plt
fileName=("4M_5743_recive_0.5_11_29.iq")
arr= np.fromfile(fileName, dtype=np.int8)#按8位数据读取iq数据
real=arr[126500:128000:2]#取部分i数据
imag=arr[126501:128000:2]#取部分q数据
d_real=real.astype(np.float32)#数据类型转化,不然8位数据只能显示-127到127.卡了我一天不知道哪里错了
d_imag=imag.astype(np.float32)
comx=d_real+d_imag*1j#组成复数
plt.plot(real)#绘制实部数据
plt.show()
从图可以看出hackrf采样顶部失真严重
matlab参考之前我在论坛上的问答
clc;
clear;
fs=4e6;
filename = '4M_5743_recive_aa_03.iq';
fid = fopen(filename, 'r');
[data] = fread(fid,inf,'int8');%hackrf 是8位采样
fclose(fid);
I = data(1: 2: end);%IQ交替采样得到data,要剥离得到I和Q
Q = data(2: 2: end);
z=I+j*Q;%生成复信号,计算角频率(相位差),就能解调了
plot(Q);
MATLAB怎么打开IQ信号的波形文件?
https://www.ilovematlab.cn/thread-564299-1-1.html
其它软件无线电设备采集数据也可以采用这种方法,就是注意保存的数据类型,是整形还是浮点的。本人喜欢用gnuradio采集信号数据,数据类型就是float32位的。