Open-SDR/openwifi项目中的IQ采样捕获功能详解

Open-SDR/openwifi项目中的IQ采样捕获功能详解

openwifi open-source IEEE 802.11 WiFi baseband FPGA (chip) design: driver, software openwifi 项目地址: https://gitcode.com/gh_mirrors/op/openwifi

概述

在无线通信系统中,IQ(In-phase/Quadrature)采样数据是理解信号特性的关键。Open-SDR/openwifi项目实现了一套功能强大的IQ采样捕获系统,不仅能够捕获基本的IQ数据,还集成了多种触发条件、RSSI(接收信号强度指示)、射频芯片AGC(自动增益控制)状态(锁定/解锁)和增益信息等高级功能。

功能特点

  1. 多触发条件:支持31种不同的触发条件,满足各种场景需求
  2. 全面监控:同时捕获IQ数据、AGC状态和RSSI信息
  3. 时间戳记录:精确记录每次捕获的时间点
  4. 灵活配置:可调整捕获长度、预触发长度和采样间隔
  5. 多模式支持:不仅支持监控模式,还可与AP-Client或ad-hoc模式同时运行

快速入门指南

准备工作

  1. 确保SDR开发板已上电
  2. 通过网线将计算机连接到开发板
  3. 设置计算机静态IP为192.168.10.1

操作步骤

  1. SSH连接开发板

    ssh root@192.168.10.122
    

    密码为"openwifi"

  2. 运行基础脚本

    cd openwifi
    ./wgd.sh
    
  3. 设置监控频道(以11频道为例):

    ./monitor_ch.sh sdr0 11
    
  4. 加载侧信道驱动

    insmod side_ch.ko iq_len_init=8187
    

    注意:对于小型FPGA(如7Z020),iq_len_init应小于4096

  5. 配置预触发长度(仅限zed、adrv9364z7020、zc702开发板):

    ./side_ch_ctl wh11d4094
    
  6. 启动IQ捕获

    ./side_ch_ctl g
    
  7. 在另一终端运行Python可视化工具

    cd openwifi/user_space/side_ch_ctl_src
    python3 iq_capture.py
    

技术细节解析

IQ信息架构

整个IQ捕获系统由多个模块协同工作:

  1. FPGA侧:负责实时信号处理和数据采集
  2. 驱动层:处理FPGA与操作系统间的数据传输
  3. 用户空间:提供配置接口和数据分析工具

数据格式

每个捕获的数据包包含以下64位元素:

  1. 时间戳:64位TSF计时器值
  2. IQ数据
    • 前16位:当前使用天线的I采样
    • 次16位:当前使用天线的Q采样
    • 第三16位:AD9361 AGC增益(bit7表示锁定状态,bit6-0表示增益值)
    • 第四16位:RSSI(半dB单位,未校准)

高级配置

触发条件配置

系统支持31种触发条件,主要分为以下几类:

  1. 帧校验相关:FCS校验结果、SIGNAL字段校验结果
  2. 前导检测:长前导、短前导检测
  3. 信号强度:RSSI阈值触发
  4. AGC状态:锁定/解锁状态变化、增益阈值触发
  5. 发射相关:发射开始/结束、需要ACK的发射等

配置示例:

./side_ch_ctl wh8d10  # RSSI高于阈值时触发

预触发长度配置

预触发长度决定了捕获窗口中触发点之前的数据量:

./side_ch_ctl wh11dY  # Y为预触发长度值

捕获间隔调整

默认捕获间隔为100ms,可通过以下命令调整:

side_ch_ctl gN  # N为间隔毫秒数

实际应用技巧

  1. 与WiFi数据包关联:同时运行tcpdump捕获数据包,通过时间戳关联IQ数据与具体数据包
  2. 自发射信号捕获:默认情况下接收基带在自发射时静音,可通过命令解除:
    ./sdrctl dev sdr0 set reg xpu 1 1
    
  3. 离线分析:利用提供的Matlab脚本test_iq_file_display.m进行深入分析

常见问题解答

Q:为什么捕获的数据量有限? A:受FPGA内部缓冲区大小限制,小型FPGA最大捕获长度约为4095个样本

Q:如何实现连续捕获? A:使用以下组合命令:

./side_ch_ctl wh8d0
./side_ch_ctl wh5d1

Q:如何校准RSSI值? A:需要参考xpu.v和sdr.c中的校准算法,将原始RSSI值转换为实际信号强度

总结

Open-SDR/openwifi项目的IQ捕获功能为无线信号分析提供了强大工具,其灵活的配置选项和丰富的数据输出使其适用于各种无线通信研究和开发场景。通过合理配置触发条件和捕获参数,用户可以精确捕获感兴趣的信号特征,为无线系统性能分析和优化提供有力支持。

openwifi open-source IEEE 802.11 WiFi baseband FPGA (chip) design: driver, software openwifi 项目地址: https://gitcode.com/gh_mirrors/op/openwifi

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

内容概要:本文档详细介绍了利用Google Earth Engine (GEE) 平台对指定区域(位于中国广东省某地)进行遥感影像处理的一系列操作。首先,定义了研究区边界,并选取了 Landsat 8 卫星2023年8月至10月期间的数据,通过去云处理、归一化等预处理步骤确保数据质量。接着,基于预处理后的影像计算了地表温度(LST)、归一化植被指数(NDVI)、湿度指数(WET)、建筑指数(NDBSI)四个关键指标,并进行了主成分分析(PCA),提取出最重要的信息成分。为了进一步优化结果,还应用了像素二元模型对主成分分析的第一主成分进行了条件规范化处理,生成了最终的环境状态评估指数(RSEI)。最后,利用JRC全球表面水体数据集对水体区域进行了掩膜处理,保证了非水体区域的有效性。所有处理均在GEE平台上完成,并提供了可视化展示及结果导出功能。 适合人群:具备地理信息系统基础知识,对遥感影像处理有一定了解的研究人员或技术人员。 使用场景及目标:① 对特定区域的生态环境状况进行定量评估;② 为城市规划、环境保护等领域提供科学依据;③ 掌握GEE平台下遥感影像处理流程和技术方法。 其他说明:本案例不仅展示了如何使用GEE平台进行遥感影像处理,还涵盖了多种常用遥感指标的计算方法,如LST、NDVI等,对于从事相关领域的科研工作者具有较高的参考价值。此外,文中涉及的代码可以直接在GEE代码编辑器中运行,便于读者实践操作。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

高霞坦

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值