Hackrf采集的iq二进制数据,用python和matlab打开二进制数据方法

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位数据只能显示-127127.卡了我一天不知道哪里错了
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,要剥离得到IQ
Q = data(2: 2: end);
z=I+j*Q;%生成复信号,计算角频率(相位差),就能解调了
plot(Q);

MATLAB怎么打开IQ信号的波形文件?
https://www.ilovematlab.cn/thread-564299-1-1.html
其它软件无线电设备采集数据也可以采用这种方法,就是注意保存的数据类型,是整形还是浮点的。本人喜欢用gnuradio采集信号数据,数据类型就是float32位的。

评论 11
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值