一起玩转GNU Radio:LoRa实验

从LoRa信号采集出发:手把手教你用 GNU Radio + USRP 搭建无线通信实验平台 本文详细介绍了如何利用GNU Radio与USRP硬件搭建LoRa无线通信实验平台,涵盖开发环境配置、信号采集与数据分析全流程。通过实战案例和参数优化建议,帮助读者快速掌握LoRa信号处理技术,适用于物联网和低功耗广域网络研究。 阅读详情
AI摘要

本文详细介绍了基于GNURadio实现LoRa通信的论文及其技术报告,包括LoRa的物理层原理和gr-lora_sdr的安装过程。作者探讨了采样时间和载波频率偏差的影响,并提供了常见问题的解决方案。文章还提供了源码安装步骤,包括解决ModuleNotFoundError和liborc-0.4.so缺失的问题。

本文内容、开发板及配件仅限用于学校或科研院所开展科研实验!

本文介绍一篇关于用GNU Radio实现LoRa通信的论文,论文第一作者是Joachim Tapparel。LoRa是LoRaWAN的私有物理层协议,且LoRa由于其独特的低功耗特点,已经广泛应用在物联网场景中。为了深入研究LoRa的通信机制,最近几年已经有大量关于LoRa协议逆向的相关工作。在论文中,作者介绍了如何基于GNU Radio来实现LoRa物理层通信,并探讨了采样时间偏差和载波频率偏差对通信的影响效果,以及如何估计和消除这些偏差。利用USRP NI2920来做实验,测试了LoRa在无编码和编码情况下的误码率,展示了所构建的LoRa通信系统的可行性和可靠性。

目录

一、论文原文和相关技术报告

二、LoRa 物理层简介

三、gr-lora_sdr安装与使用

四、常见问题与解决方法

1、ModuleNotFoundError: No module named 'lora_sdr'

2、No rule to make target '/usr/lib/x86_64-linux-gnu/liborc-0.4.so'

五、有用链接


一、论文原文和相关技术报告

该工作介绍网址

LoRa PHY based on GNU Radio ‒ TCL ‐ EPFL

论文原文下载地址

https://arxiv.org/abs/2002.08208

LoRa逆向分析技术报告下载地址

https://www.epfl.ch/labs/tcl/wp-content/uploads/2020/02/Reverse_Eng_Report.pdf

二、LoRa 物理层简介

LoRa使用带宽为125KHz、250KHz或500KHz的扩频调制方法,扩频因子SF为7、8、9、10、11或12。每个LoRa符号扩频成7、8、9、10、11或12比特,具有N=2^SF个码片。LoRa的发射和接收过程,包括whitening、信道编码、交织、格雷映射。其中,

whitening是将有效载荷比特与一个伪随机序列进行异或操作。

信道编码实现纠错编码,LoRa使用汉明编码。

交织,LoRa使用对角交织器(diagonal interleaver)。

格雷映射,LoRa采用反格雷码实现从比特到符号的映射。

LoRa的数据包包括从Preamble upchirps、Network identifiers、Downchirps、Header、Payload和CRC。

 关于什么是upchirps和downchirps,可以参见LoRa重要知识 - 简书

三、gr-lora_sdr安装与使用

我的电脑环境是,Ubuntu 20.04虚拟机,GNU Radio 3.8.1.0 (Python 3.8.10)。

 代码安装过程如下,如果碰到问题,请参见《六、常见问题与解决方法》。不同人的电脑可能会碰到不同的问题,在cmake或make过程中,提示缺少什么库或者找不到什么库,依次解决即可。

git clone https://github.com/tapparelj/gr-lora_sdr.git
cd gr-lora_sdr
mkdir build
cd build
cmake ..
make
sudo make install
sudo ldconfig

需要注意的是,在安装gr-lora_sdr代码之前,你电脑中需要已安装GNU Radio 3.8,否则无法正常安装使用。

在我们安装gr-lora_sdr之前,在GNU Radio的GRC中,当你在模块搜索栏输入“lora”后,你会发现无法搜索到任何模块。

 当你成功安装了r-lora_sdr代码之后,你会发现可以搜索到lora相关模块。

 gr-lora_sdr的GRC基本实例文件在《apps/single_user》文件夹中,用GNU Radio的GRC打开tx_rx_simulation.grc文件并运行结果如下图所示。该GRC文件是纯仿真程序。在运行程序时,可能会提示“ImportError: No module named lora_sdr”错误,具体解决方法见《六、常见问题与解决方法》。

终端的信息如下图所示:

 在《apps/single_user》文件夹中还有用USRP来进行发射和接收的流图程序,可以将UHD模块替换成osmocom Source/Sink模块,LimeSDR Source(Rx)/LimeSDR Sink(Tx)模块后用HackRF或LimeSDR来实现发送和接收。

四、常见问题与解决方法

1、ModuleNotFoundError: No module named 'lora_sdr'

根据GitHub - tapparelj/gr-lora_sdr: This is the fully-functional GNU Radio software-defined radio (SDR) implementation of a LoRa transceiver with all the necessary receiver components to operate correctly even at very low SNRs. This work has been conducted at the Telecommunication Circuits Laboratory, EPFL.的“Frequent errors”和ModuleNotFoundError - GNU Radio相关内容,得知解决方法如下:

在终端中输入:

export PYTHONPATH=/usr/local/lib/python3/dist-packages:$PYTHONPATH
export LD_LIBRARY_PATH=/usr/local/lib:$LD_LIBRARY_PATH

上述命令是适合我电脑的命令,不同人的电脑可能略有不同,具体可以参见ModuleNotFoundError - GNU Radio的方法。

2、No rule to make target '/usr/lib/x86_64-linux-gnu/liborc-0.4.so'

在运行make后,提示,

make[2]: *** No rule to make target '/usr/lib/x86_64-linux-gnu/liborc-0.4.so', needed by 'lib/libgnuradio-lora_sdr.so.ca195cb1'.  Stop.
make[1]: *** [CMakeFiles/Makefile2:251: lib/CMakeFiles/gnuradio-lora_sdr.dir/all] Error 2
make: *** [Makefile:141: all] Error 2

原因是缺少liborc-0.4。

根据https://ubuntu.pkgs.org/21.04/ubuntu-main-amd64/liborc-0.4-dev_0.4.32-1_amd64.deb.html

通过如下命令来安装相关库。

sudo apt-get install liborc-0.4-dev
sudo ldconfig

以下是我编译安装的全过程记录,

opensourcesdr@opensourcesdr-20:~/Downloads$ git clone https://gith
GNU radio入门学习(2)GNU radio简介 GNU Radio简介GNU Radio是什么基本思想定义主要思想软件架构(GNU Radio的"hello world")Python编写"hello wolrd"案例GNU Radio图形界面实现"hello wolrd"硬件架构小结参考文献: GNU Radio是什么 基本思想 定义 GNU Radio是一个完全开源的软件无线电结构平台,它可以用来设计和仿真,也可以用来链接真实的无线电系统。... 阅读详情

相关推荐

超详细版GNU Radio与SDR集成指南:无线链路构建实践

深入讲解GNU Radio与sdr的协同工作原理,手把手实现无线链路构建。涵盖环境配置、模块连接与实机测试,帮助掌握sdr在实际通信系统中的应用技巧。

weixin_32747681的博客 1056

SDR在LoRa通信中的实验应用:低成本物联网实现方案

利用软件定义无线电(SDR)技术搭建LoRa通信系统,探索低功耗广域网的灵活构建方式。通过SDR实现信号调制解调与频段分析,显著降低物联网部署成本,提升网络适应性。

weixin_34268462的博客 1128

LoRa-SDR:用于研发的SDR LoRa实现

LoRa SDR项目 该项目将利用SDR硬件来接收和解码Lora。 博客: : 仓库布局 LoRa * .cpp-Pothos处理块和单元测试 RN2483.py-用于控制RN2483的python实用程序 示例/-使用LoRa块保存的Pothos拓扑 噪声模拟 本示例演示了在存在噪声的情况下使用回溯路径的LoRa PHY模块。 examples / lora_simulation.pth-调制解调器仿真 RN2483接收器 本示例使用逻辑分析仪图来接收和解调原始符号,以查看符号,并通过触发波形图来查看输入。 激活示例后,只需运行RN2483.py脚本即可生成单个波形以触发图。 RN2483.py --freq = 863.1e6 --bw = 0.5e6 --sf = 11 --tx =“ hello” 示例/rx_RN2483.pth 简单继电器 此示例包括一个简单的客户端

LoRa系统仿真_modulationlora_lora_系统仿真_matlablora调制_LoRA仿真

LoRa调制方式,关于整个系统的一个简单仿真,有利于加深对整个流程的理解。

基于GNU Radio 和USRP 的无线通信系统建模仿真

摘要:针对无线通信环境的复杂特性,为了实现无线通信系统快速准确的建模仿真,应用GNU Radio和USRP组成的软件无线电系统作为新的建模仿真方法。   本文介绍并分析该方法的软件特性和硬件架构,进行MPSK调制系统在仿真信道和实际信道下链路模型的误码率对比实验,并在包含实际无线信道的链路模型基础上,设计并实现了一套无线视频流传输原型系统。分析和实验结果表明,新方法能够快速实现无线通信系统原型,将实际无线信道纳入系统模型中,从而获得更准确的仿真和分析结果。该方法适用于对通信协议标准及系统有定制化需求、针对传输环境复杂的无线通信系统研究开发。   0 引言   无线通信技术正处在飞速发展的

从零到一:Livox Mid-360 激光雷达的硬件集成与避坑实战

本文详细介绍了Livox Mid-360激光雷达的硬件集成全流程,包括硬件准备、网络配置、驱动编译和常见问题解决方案。通过实战经验,帮助开发者高效完成从设备拆箱到数据输出的完整链路,避免在IP设置、驱动编译和固件兼容性等环节踩坑。

salt的博客 1030

[cadence]Allegro STEP-3D模型导入、匹配、导出的方法及注意事项

如果 Avaliable里面没有和symbols对应的文件,说明没有对应的3D模型,这时候需要在你的step路径下创建y与 .dra 封装文件相同名称的。选择好 Output file 和 name 之后呢,点击 Export。首先打开Setup - Step Package Mapping。注意:路径中不能有中文名称,有的话你会发现不能导出,也不会报错。在路径下将下载或者自己做的 3D模型文件改名之后,重新打开。可在View -> 3D View。

LuDvei的博客 2万+

python调用海康工业相机并用opencv显示(整体实现)

python语言调用海康机器人(hikrobotics)工业相机 第一章 Python 语言下连接海康工业相机,并获取数据 文章目录 系列文章目录 前言 目录 python语言调用海康机器人(hikrobotics)工业相机 文章目录 前言 一、底层接口的准备 二、使用步骤 1.引入库 2.枚举设备 3.判断设备类型 4.输入连接设备 5.创建相机实例并创建句柄 6.打开设备 7.获取相关参数 8.主动获取图像 9.开启取流并获取每张.

qq_39570716的博客 5万+

一觉醒后ChatGPT 被淘汰了

近日,AI 界貌似出现了一种新的趋势:自主人工智能。这不是空穴来风,最近一个名为 AutoGPT 的研究开始走进大众视野。特斯拉前 AI 总监、刚刚回归 OpenAI 的 Andrej Karpathy 也为其大力宣传,并在推特赞扬:「AutoGPT 是 prompt 工程的下一个前沿。」

Rocky006的博客 13万+

SAP Single Sign-On 全景指南:从传统 SAP SSO 到 SAP Secure Login Service for SAP GUI 的架构、场景与迁移实践

本文系统梳理了SAP生态下的单点登录技术方案,重点分析了SAP GUI的云化替代方案SAP Secure Login Service(SLS)。内容涵盖SNC、Kerberos/SPNEGO、SAML 2.0等核心协议的技术实现,对比了传统SAP SSO与新型SLS for SAP GUI的架构差异,并给出AS ABAP系统的具体实施路径。针对SAP GUI访问、浏览器访问Fiori/移动端等不同场景,提供了详细的协议选型建议和配置指南,帮助团队构建安全可靠且适应云时代的统一认证体系。

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 273

LVGL core theme主题管理(lv_theme.c)

如果打开宏,主题的初始化是在显示设备注册时完成的。整个themes的实现放在目录下面。这里一共有三套主题(basic、default和mono)可供选择或者参考。源码中默认对接的是 default 主题,所以在中,看到的是调用default主题的接口。也就是说,如果需要更换主题,把这里面的接口换掉就可以了。或者要重新做一套主题,参考这些实现修改也就可以了。虽说有三套主题,但逻辑流程是一样的。主要完成两个工作:构造lv_theme_t结构体和初始化默认样多备用(style_init函数内实现)。构造。....

Bigan(安)的博客 3411

066、AR 应用中虚拟物体漂移抖动?IMU 融合 + 光流追踪的视觉里程计优化方案

AR应用中虚拟物体漂移抖动优化方案 摘要:针对AR应用中虚拟物体漂移抖动问题,提出一种IMU融合与光流追踪的视觉里程计优化方案。关键点包括:1) 采用IMU预积分技术处理高频噪声,通过中值积分计算帧间相对运动约束;2) 使用金字塔LK光流追踪像素运动,通过中值偏差法剔除异常值;3) 构建10帧滑动窗口的紧耦合优化框架,将IMU预积分约束和光流重投影约束联合优化。实验表明,该方法有效解决了时间戳未对齐导致的"跳舞箭头"现象,在手机端实现稳定30fps的AR定位精度,漂移误差降低至厘米级。特别提醒:IMU与视觉

ai技术增长的博客 161

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

上一篇: OpenRAN 与 O-RAN 和 vRAN 的对比
下一篇: 一起玩转bladeRF:Windows Matlab基本使用
无线通信实验室
博客等级 码龄11年 2704粉丝 77原创
评论 9
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值