当前位置: 首页 > java >正文

USRP采集的WiFi信号绘制星座图为方形

一、方形星座图现象

采集2.4G频段的WiFi信号绘制星座图,意外发现是方形:

我一开始猜测是不是和OFDM、CSMA/CA有关,后来想到信号采集时,USRP天线是紧挨着路由器和电脑的,可能和信号幅度截断有关。

二、实验测试

2.1 关闭WiFi

于是我把路由器和天线拿开1米远,同时断开手机热点、路由器WiFi, 再次采集2.4G频段信号。

结果还是同样的:

说明问题不出在接收信号强度上,而是别的地方。

2.2 频点

切换到2.5GHz再采集信号绘图:

% 打开文件
% fid = fopen('real_data_show.txt', 'rb'); % 'rb'表示以二进制读取模式打开文件
fid = fopen('2.5g.txt', 'rb'); % 'rb'表示以二进制读取模式打开文件% 读取数据
raw = fread(fid, Inf, 'float32', 0, 'l'); % 假设数据是16位整数,'b'表示小端% 关闭文件
fclose(fid);data = raw(1:2:end) + 1i * raw(2:2:end);  % 复数数组samp_rate = 61.44e6;  % 采样率 250 kHz
% signal_duration = 10;  % 每个信号的时长 1秒
% samples_per_signal = samp_rate * signal_duration;
% num_signals = floor(length(data) / samples_per_signal);
% signals = reshape(data(1:num_signals * samples_per_signal), samples_per_signal, num_signals);
% data = signals(:,5);
data = data(1:round(samp_rate*3));% 绘制星座图
figure;
% data(abs(data)<0.6)=0;
scatter(real(data), imag(data), 1, 'b', 'filled'); % 绘制复数点
title('Constellation Diagram');
xlim([-2,2])
ylim([-2,2])
xlabel('In-phase');
ylabel('Quadrature');
grid on;
axis equal;

还是一个正方形:

2.3 接收增益

接收增益原本是76dB:

是按照B210最大增益设置的:

降低为60dB试试:

出现圆环了:

降低为50dB试试:

调整为55dB:

三、结果分析

现在已经确定了,方形的IQ图就是和接收信号增益有关,但是为什么会这样呢?

我突然想明白了!这种方形截断是正交采样导致的!

3.1 IQ采样

这是USRP B210的官网:

USRP B210 USB Software Defined Radio (SDR) - Ettus Research | Ettus Research, a National Instruments Brand | The leader in Software Defined Radio (SDR)

翻译:

概述

USRP B210 提供了一个完全集成的单板通用软件无线电外设(USRP™)平台,具有从 70 MHz 到 6 GHz 的连续频率覆盖范围。它旨在低成本实验,结合了 AD9361 RFIC 直接转换收发器,提供最高 56 MHz 的实时带宽,开放且可重新编程的 Spartan6 FPGA,以及高速 SuperSpeed USB 3.0 连接,且支持便捷的总线供电。USRP 硬件驱动程序(UHD)软件的全面支持使您可以立即开始使用 GNU Radio 开发、用 OpenBTS 原型化自己的 GSM 基站,并能够将代码无缝过渡到更高性能、工业级的 USRP 平台。提供给绿色 PCB 设备(6 版或更高版本)用户的外壳附件套件可帮助用户组装一个保护钢壳。

低成本 SDR 实验

通过 USRP B210,您可以在广泛的应用场景中进行实验,包括:FM 和电视广播、蜂窝通信、GPS、WiFi、ISM 等。用户可以立即在 GNURadio 中开始原型开发,并参与开源 SDR 社区。UHD 软件的全面支持使得现有设计的代码可以无缝重用,兼容开源应用程序,如 HDSDR 和 OpenBTS,并为满足应用需求提供升级路径,过渡到工业级的 USRP 系统。以下是您可以使用 USRP B210 实现的一些应用示例。

关键词:

it combines the AD9361 RFIC direct-conversion transceiver

3.2 AD9361

在官网找到了AD9361的手册:

手册中是这样描述AD9361的:

翻译:

AD9361 是一款高性能、高度集成的射频(RF)敏捷收发器™,设计用于 3G 和 4G 基站应用。其可编程性和宽带能力使其非常适合多种收发器应用。该设备结合了一个射频前端和灵活的混合信号基带部分,以及集成的频率合成器,通过提供可配置的数字接口简化了设计过程,方便与处理器连接。AD9361 的工作频率范围为 70 MHz 到 6.0 GHz,涵盖了大多数授权和非授权频段,支持的信道带宽从不到 200 kHz 到 56 MHz。

这两个独立的直接转换接收器具有最先进的噪声系数和线性度。每个接收(RX)子系统包括独立的自动增益控制(AGC)、直流偏移校正、正交误差校正和数字滤波,从而消除了在数字基带中执行这些功能的需要。AD9361 还具有灵活的手动增益模式,可以外部控制。每个通道包含两个高动态范围的 ADC,数字化接收到的 I 和 Q 信号,并通过可配置的去伪滤波和 128-阶有限脉冲响应(FIR)滤波器进行处理,以适应适当的采样率。

发送器采用直接转换架构,实现了高调制精度,具有超低噪声。该发送器设计的TX EVM最佳性能为<-40 dB,从而为外部 PA 的选择提供了显著的系统裕度。板载的传输(TX)功率监视器可作为功率检测器,提供高精度的 TX 功率测量。

全面集成的锁相环(PLL)为所有接收和发送通道提供低功耗分数-N 频率合成。频分双工(FDD)系统要求的通道隔离已集成到设计中,所有 VCO 和环路滤波器组件也已集成。

AD9361 的核心可以通过 1.3 V 稳压器直接供电。该 IC 通过标准的 4 引脚串行端口和四个实时 I/O 控制引脚进行控制。设计包括全面的省电模式,以最小化在正常使用期间的功耗。AD9361 封装在一个 10 mm × 10 mm,144 引脚芯片规模封装的球栅阵列(CSP_BGA)中。

3.3 结论

以方形星座图其中一个角进行分析,右上角红色轨迹表示I路已经截断而Q路还未截断;黄色轨迹表示Q路已经截断而I路还未截断。

IQ两路同时截断,就是正方形的四个角:

采集信号时,I路Q路都不能截断。

不然采集的信号会以一种奇怪的方式失真。

http://www.xdnf.cn/news/18545.html

相关文章:

  • 新手向:异步编程入门asyncio最佳实践
  • K8s 实战:Pod 版本更新回滚 + 生命周期管控
  • 嵌入式学习日记(33)TCP
  • 【UnityAS】Unity Android Studio 联合开发快速入门:环境配置、AAR 集成与双向调用教程
  • CMake link_directories()详细介绍与使用指南
  • STM32F1 GPIO介绍及应用
  • C/C++三方库移植到HarmonyOS平台详细教程(补充版so库和头文件形式)
  • 凌霄飞控开发日志兼新手教程——基础篇:认识基本的文件内容和相关函数作用(25电赛备赛版)
  • 【序列晋升】12 Spring Boot 约定优于配置
  • Spring发布订阅模式详解
  • Python 调用 sora_image模型 API 实现图片生成与垫图
  • 【论文】Zotero文献管理
  • 为什么应用会突然耗尽所有数据库连接
  • 轮廓检测技术不仅能精确计算图像中的轮廓数量,还能完整记录每个轮廓包含的所有像素点坐标
  • 【0基础3ds Max】捕捉工具详解
  • 宋红康 JVM 笔记 Day06|虚拟机栈
  • [激光原理与应用-318]:结构设计 - Solidworks - 草图
  • 损耗源:导线电阻与趋肤效应
  • 深度学习②【优化算法(重点!)、数据获取与模型训练全解析】
  • 线上日志排查问题
  • MCP 与 Function Calling 打开真实世界的两种“母体”方式
  • Spring 框架深度解析:从核心原理到实战应用
  • GitLab CI :深入剖析 gl-sbom-report.cdx.json 解码“数字身份证”
  • linux下的网络编程
  • 快速入门Vue3——初体验
  • 6020角度双环控制一种用于电机控制的策略
  • 智能合约漏洞检测技术综述:守护区块链世界的“自动售货机”
  • 在通义灵码中配置MCP服务
  • uniapp使用map打包app后自定义气泡不显示解决方法customCallout
  • JavaWeb前端05(Vue工程化,Vue组件两种风格:组合式API 和 选项式API)及简单案例)