读取采集的特定格式数据

44 篇文章 0 订阅
12 篇文章 0 订阅

Target: arm上实际采集的数据,byte输出,读取数据并输出来;

格式为

意义格式大小
PPDU_ID1个int324B
mac_id1个int324B
mac_addr1个6字节 hex6B
data 1 dim数组256长度复数,先实部后虚部都是float16256x4B
import numpy as np
import binascii
import matplotlib.pyplot as plt

f = open(r'./phone_2020_08_22__16_26_57.dat','rb')
buf = f.read()
#####4B ppduID, 4B MPDUid, 6B mac Addr, 256*4B data,
x1 = np.frombuffer(buf[0:4],dtype=np.uint32)
print(x1)
x2 = np.frombuffer(buf[4:8],dtype=np.uint32)
print(x2)
mac0 = np.frombuffer(buf[8:14],dtype=np.uint8)
mac = '-'.join([np.base_repr(i,16) if m>15 else '0'+str(m) for i in mac0 ])
mac_secondWay = binascii.hexlify(buf[8:14]).decode('utf-8')
print('Mac 1st way:', type(mac0[0]),mac, 'mac second way\n', mac_secondWay)
dt = np.dtype(np.float16)
dt = dt.newbyteorder('<') #arm核上所采数据,通常是小端
dataCsi = np.frombuffer(buf[14:14+256*4],dtype=dt)
print('Data is :\n', dataCsi)

plt.figure()
plt.plot(range(len(dataCsi)),dataCsi)


st = 14+256*4
id1 = np.frombuffer(buf[st:st+4],dtype=np.uint32)
id2 = np.frombuffer(buf[st+4:st+8],dtype=np.uint32)
mac_raw = np.frombuffer(buf[st+8:st+14],dtype= np.uint8)
mac2 = [np.base_repr(m,16) if m>15 else '0'+str(m) for m in mac_raw]
print('Second ppdu is :', id1,id2, mac2)
dataCsi2 = np.frombuffer(buf[st+14:st+14+256*4],dtype=dt)
print('4 of Data is:\n',dataCsi2[0:4])

plt.figure()
plt.plot(dataCsi2[0::2],dataCsi2[1::2],'b.')
plt.show()



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值