GNU Radio
文章平均质量分 88
须尽欢~~
阿里云开发者社区专家博主、技术博主、星级博主。
座右铭:Stay hungry. Stay foolish.
面包多平台作品网址:https://mbd.pub/o/author-amaWnG5pZA==/work
展开
-
GNU Radio创建qt time plot python OOT块
官方提供的绘制时域波形的 block 名字叫做 QT GUI Time Sink,其底层实现是用 C++ 写的,但是我发现如果要是对收到的信号做一些其他的显示,例如在实现雷达测距的时候将 x 轴改为距离轴,y 轴改为主副瓣比,那么直接对 QT GUI Time Sink 这个模块做一些修改还是比较难的,因此就想通过 python OOT 实现一个简单的绘制时域波形的 block,并且这个 block 方便后面做自定义修改,例如修改成显示距离或者速度等等。原创 2024-06-01 19:49:05 · 1104 阅读 · 0 评论 -
GNU Radio实现OFDM Radar
本文使用 GNU Radio 搭建 OFDM Radar,实现雷达测距和测速功能。原创 2024-05-31 18:01:09 · 620 阅读 · 0 评论 -
GNU Radio之OFDM Divide和Matrix Transpose底层C++实现
gr-radar 中的模块是GNU Radio中的一个组件,专门用于处理正交频分复用(OFDM)信号。这个模块主要执行复数信号的除法操作,通常用于雷达和通信系统中的信号处理。下面对这个模块进行介绍并详细分析其底层 C++ 代码实现。这个模块执行复杂的复数除法,用in0/in1进行计算。如果 vlen_out 大于 vlen_in,则额外的空间将填充为零。这可以用于零填充。下面是引自一篇硕士论文(车联网背景下的雷达通信一体化感知方法研究与平台实现。原创 2024-05-23 11:36:52 · 873 阅读 · 0 评论 -
GNU Radio之static Target simulator底层C++实现
gr-radar 中的模块用于在雷达系统中模拟静态目标。这种模拟在雷达信号处理、算法开发和系统验证中非常有用。通过模拟静态目标,可以测试雷达系统的目标检测、定位和追踪能力。这个模块允许用户设置多个目标的属性,如距离、速度、雷达截面等,从而生成对应的回波信号。下面对这个模块进行介绍并详细分析其底层 C++ 代码实现。的主要作用是生成雷达回波信号,以模拟不同静态目标的存在。这对于验证和测试雷达系统的性能至关重要,特别是在缺乏实际目标或实验条件受限的情况下。原创 2024-05-22 21:30:12 · 1090 阅读 · 0 评论 -
GNU Radio FFT模块窗函数对比
GNU Radio 中 FFT 模块的窗函数包括以下几种:矩形窗(Rectangular Window)、汉明窗(Hamming Window)、汉宁窗(Hann Window)、黑曼窗(Blackman Window)、黑曼-哈里斯窗(Blackman-Harris Window)、凯泽窗(Kaiser Window)、巴特利特窗(Bartlett Window)、平顶窗(Flattop Window),本文对窗函数实现的结果做一个记录对比。原创 2024-05-08 20:53:25 · 1261 阅读 · 0 评论 -
GNU Radio FFT模块结合stream to vector应用及Rotator频偏模块使用
写个博客记录一下自己的蠢劲儿,之前我想用 FFT 模块做一些信号分析的东西,官方的 FFT 模块必须输入与 FFT 大小一致的数据,然后我也想到了使用 stream to vector 将流数据转换为固定长度的向量数据,然后再一次性喂给 FFT 模块,但是,stream to vector 模块我用的不对,导致 stream to vector 的输出连接 FFT 模块的那条线就一直是红色,我就以为官方的 FFT模块不好用,因此自己就做了 C++ OOT FFT 模块方便自己使用,今天突发奇想,官方做的应原创 2024-05-07 19:25:57 · 1172 阅读 · 0 评论 -
GNU Radio创建时间戳 C++ OOT块
目前有这么样一个需求,我想在 GNU Radio 中计算从一个模块到其他模块执行所花费的时间,我的做法是将获取的时间戳信息作为标签添加到数据流中,然后传入到待计算时间的那个模块后再获取当前时间并与流标签中的时间戳信息进行相减,即可得到所耗费的时间,也就达到了计算时间间隔的目的。因此本文将创建红框内的三个 C++ OOT块,实现时间测量。参考官方教程创建自定义的 OOT块。原创 2024-05-07 13:39:59 · 1013 阅读 · 1 评论 -
GNU Radio创建FFT、IFFT C++ OOT块
GNU Radio 自带的 FFT 模块使用起来不是很方便,这个模块要求输入和输出数据长度预先设定,且一旦设定后就要求前后的 block 与其具有相同长度的输入输出,并不满足我目前的需求,因此需要有必要重新自己做一个 FFT 和 IFFT OOT块。参考官方教程创建自定义的 OOT块。原创 2024-05-04 11:33:29 · 1525 阅读 · 0 评论 -
GNU Radio之OFDM Serializer底层C++实现
GNU Radio 中 OFDM Serializer 模块是 OFDM Carrier Allocator 逆块,其功能为将 OFDM 子载波的复杂调制符号序列化(并串转换模块),输出复数数据符号作为一个带标签的流,并丢弃导频符号。输入与输出输入:复数长度向量输出:复数标量,其顺序与占用的载波中指定的顺序相同。参数FFT length:FFT 长度Occupied Carriers:占据的子载波Length Tag Key:标识输入帧长度(以OFDM符号计)的标签键。原创 2024-04-30 14:41:16 · 922 阅读 · 0 评论 -
GNU Radio之OFDM Frame Equalizer底层C++实现
OFDM Frame Equalizer 的功能是对标记的 OFDM 帧执行一维或二维均衡,本文对 OFDM Frame Equalizer 模块的底层 C++ 源码进行剖析。输入与输出:输入:一系列带标签的 OFDM 符号输出:与输入相同,但经过均衡和频率校正。参数:FFT length:用于设置输入和输出向量大小CP length:样本中循环前缀的长度(校正频率偏移所需)Equalizer:将执行实际工作的均衡器对象Length Tag Key:TSB密钥。原创 2024-04-30 10:48:04 · 597 阅读 · 0 评论 -
GNU Radio之OFDM Channel Estimation底层C++实现
OFDM Channel Estimation 模块的功能是根据前导码(同步字)估计 OFDM 的信道和粗略频率偏移,本文对 OFDM Channel Estimation 模块的底层 C++ 源码进行剖析。OFDM Channel Estimation模块的主要目的是从接收的OFDM符号中恢复出发送时的信道条件。信道估计:这个模块核心的功能是估计 OFDM 系统中的信道特性。这包括计算信道的频率响应,以便可以对接收到的信号进行适当的校正,以恢复原始发送的数据。原创 2024-04-29 16:26:47 · 1262 阅读 · 0 评论 -
GNU Radio之Frequency Mod底层C++实现
频率调制(Frequency Modulation, FM)是一种重要的调制技术,广泛应用于无线广播和通信,本文对 GNU Radio 中的 Frequency Mod 模块进行深入剖析。原创 2024-04-28 12:38:51 · 1017 阅读 · 0 评论 -
GNU Radio之Schmidl & Cox OFDM synch.底层C++实现
在 GNU Radio OFDM 系统中,一个非常重要的环节是在接收端准确地同步和检测发送端发出的信号。这就是 Schmidl & Cox 同步算法发挥作用的地方。Schmidl & Cox 算法是一种用于 OFDM 信号的时间同步的技术。本文对其底层 C++ 源码进行学习记录。原创 2024-04-26 14:48:38 · 931 阅读 · 0 评论 -
GNU Radio创建Zadoff-Chu序列C++ OOT块
本文实现在 GNU Radio 中创建 Zadoff-Chu 序列 C++ OOT 块,仅做代码调试记录。参考官方教程创建自定义的 OOT块。原创 2024-04-14 22:15:32 · 864 阅读 · 0 评论 -
GNU Radio Radar Toolbox编译及安装
GNU Radio Radar Toolbox(gr-radar)是一个开放源码的工具箱,用于 GNU Radio 生态系统,主要目的是为雷达信号处理提供必要的工具和函数。本文记录在 GNU Radio Radar Toolbox 的编译及安装。安装前必须先安装 GNU RadioGNU Radio Radar Toolbox(gr-radar)是一个开源的雷达工具箱,用于 GNU Radio 平台,专为实现和测试各种雷达技术设计。原创 2024-04-11 21:27:33 · 1135 阅读 · 0 评论 -
gr::log :INFO: packet_headerparser_b0 - Detected an invalid packet at item问题记录
在使用 GNU Radio 对 OFDM 进行帧结构设计时,出现了如下的警告信息:按照需求需要将 Zadoff-Chu 序列调制到 OFDM 子载波上,所以我所设计的一帧 OFDM组成如下:修改底层代码:新增:修改:运行时会有这样的警告信息,当我用实验室电脑时会一直打印,引起该问题的原因有可能是接收信号解调失败,导致头信息(header_data)解析失败,进而无法知道帧长度等信息。但是我更换自己笔记本电脑后只打印了这两条后就不会再打印,网上有解决办法是减小发送端的乘数因子,但是我修改后无原创 2024-04-10 12:25:06 · 561 阅读 · 0 评论 -
解决GNU Radio+USRP实现OFDM收发在接收端存在误码问题
在使用 GNU Radio 时使用官方例程搭建 GNU Radio + USRP 实现 OFDM 收发测试时,发现误码情况很严重,明明都是理想信道的情况下,即时在仿真情况下不接 USRP 硬件设备进行收发也会出现误码,这就不得不怀疑是官方的底层 C++ 源码存在的问题了。GNURadio+USRP+OFDM实现文件传输,但是还是想从根本上解决这个误码问题。首先声明一下我的环境:(Ubuntu20.04LTS + GNURadio 3.8 + UHD 3.15),一台电脑 + 一台 USRP 自收自发。原创 2024-04-01 21:46:40 · 1405 阅读 · 2 评论 -
解决GNU Radio+USRP实现OFDM收发在接收端QPSK星座图映射无“抖动”问题
本文记录在 GNU Radio+USRP 实现 OFDM 收发时,在接收端 QPSK 星座图映射无“抖动”问题的解决方法,原创 2024-03-29 12:48:29 · 1346 阅读 · 0 评论 -
Ubuntu20.04LTS+uhd3.15+gnuradio3.8.1源码编译及安装
本地 Ubuntu 环境的 gnuradio 是按照官方指导使用 ppa 的方式安装 uhd 和 gnuradio的,也是最方便的方法,但是存在着一个问题,就是我无法修改底层 C++ 实现代码并修改自己想要的功能,我现在的需求就是对部分 block 的底层代码进行修改,因此需要源码编译及安装,并在每次修改完相关文件后重新对源码进行编译再安装即可。原创 2024-03-29 10:49:46 · 1923 阅读 · 0 评论 -
GNU Radio之OFDM Carrier Allocator底层C++实现
OFDM Carrier Allocator 是 OFDM 子载波分配模块,也即串并转换模块。该模块的作用是给每个子载波分配相应的值,数据相应地实现串并转换。本文记录其底层 C++ 代码实现。OFDM Carrier Allocator:OFDM 子载波分配模块,也即串并转换模块。该模块的作用是给每个子载波分配相应的值,数据相应地实现串并转换。原创 2024-03-27 16:02:19 · 1234 阅读 · 0 评论 -
解决GNURadio自定义C++ OOT块-导入块时报错问题
本文记录在 GNURadio 自定义 C++ OOT 块后导入块时报错。原创 2024-03-21 21:02:12 · 892 阅读 · 0 评论 -
GNU Radio创建Zadoff-Chu序列python OOT块
本文实现在 GNU Radio 中创建 Zadoff-Chu 序列 python OOT 块,仅做代码调试记录。参考官方教程创建自定义的 OOT块。原创 2024-03-20 18:36:24 · 738 阅读 · 3 评论 -
GNURadio+USRP+OFDM实现文件传输
使用 GNU Radio Companion 驱动 USRP N320 实现 OFDM 自收自发测试。原创 2024-03-07 13:24:58 · 5166 阅读 · 23 评论 -
GNU Radio简介及流程图搭建
初步接触 GNU Radio,对学习进行一个记录。原创 2024-01-18 14:33:45 · 2208 阅读 · 0 评论 -
解决GNURadio自定义Python OOT块-导入块时报错问题
本文记录在 GNURadio 自定义Python OOT 块后导入块时报错。原创 2024-03-20 10:22:04 · 716 阅读 · 0 评论