USRP/GNU Radio/通信
文章平均质量分 91
记录
地球被支点撬走啦
这个作者很懒,什么都没留下…
展开
-
IEEE 802.11a协议
在调制时,速率位、保留位、长度位、奇偶位以及值为0的6位尾比特构成一个单独的OFDM符号,用SIGNAL段表示。信号段采用的是BPSK调制,1/2的编码速率。其中,信号段的速率位以及长度位决定着数据的比特率,进而决定其调制方式,编码速率等一系列的参数值。OFDM 的前导训练序列(Preamble training symbol)包括10个短训练符号(STS,用于自动增益控制、分集选择、定时捕获、粗频偏估计)和2个长训练符号(LTS,用于信道估计和细频偏估计),如图2。GR-OFDM算是一个简化版的协议。原创 2024-03-02 18:10:46 · 1223 阅读 · 0 评论 -
GNURadio3.9.4创建OOT模块实例
目录1、创建自己的block(注意 module 与 block 的区别)2、修改相应的代码3、编译安装4、有关bug的解决本教程是以实验室真实环境下的经历为原型的记录。在实际应用中,我们修改了 gnuradio 的 Header/Payload Demux 模块的源码,但又不想直接覆盖原始代码,因此就需要创建一个名为 myHeader/Payload Demux 的自定义模块,在此记录下创建流程以供以后参考。之前写过如何在 GR3.8 中创建 OOT 模块,其实 GR3.9 .原创 2021-11-11 18:48:14 · 3260 阅读 · 0 评论 -
GNURadio 运行报错:ERROR thread[thread-per-block[12]: <block ofdm_cyclic_prefixer(8)>]: Buffer too small
在修改 GR 的 OFDM 例程时,将 OFDM 子载波数从原来的 64 调整为 128 后运行出现了这个问题,更全的错误提示如下:gr::log :ERROR: thread_body_wrapper - ERROR thread[thread-per-block[12]: <block ofdm_cyclic_prefixer(8)>]: Buffer too small for min_noutput_items解决办法:可以参考这个 GNURadio 的邮件列表:R原创 2021-11-01 19:03:47 · 891 阅读 · 0 评论 -
GNURadio 3.9 使用 OOT 自定义模块问题记录
最近由于 GR3.8 里的卷积编码模块有问题就换用了GR3.9 ,发现GR3.9 可以正常使用,关于 GR3.8 里的卷积编码模块为什么不能用就先不深究了,之前写过GR3.8 编写 OOT 的流程,GR3.9 编写 OOT 跟 3.8 差别不大,但是有些修改需要注意下。目录1、依赖版本的问题2、每次修改公共头文件后要重新 bind 绑定3、编译啥的都通过了,用的时候有问题了1、依赖版本的问题GR3.9 与GR3.8 一个很重要的区别就是 python 与 C++ 接口的方...原创 2021-10-28 11:28:16 · 2010 阅读 · 8 评论 -
GNURadio 传输视频并使用 VLC 实时显示
最近需要参加一个比赛,主要就是使用 FPGA 获取视频发送给USRP RX进行发送,最终在接收端进行实时显示。本次记录一下在接收端进行视频的实时显示的方法与测试过程。主要流程图如下:图 1实现视频通过 USRP 发送并在接收端进行实时显示,这个过程用两个通俗的词来总结就是——直播。一般来说,由于信道带宽的限制,如果将原始视频解码为一帧帧的图像再进行发送然后在接受段显示的话就需要很大的传输带宽,一般的无线传输很难达到如此大的带宽,尤其是水声通信。因此必须传输编码后的视频流(比如mp4格式的视频)。原创 2021-10-19 22:54:03 · 3455 阅读 · 5 评论 -
关于 GNURadio-OFDM 运行时掉帧问题的解决
最近在运行 GNURadio 中的 OFDM 例程时发现了丢帧的问题。当使用原始的例程(一次发送10帧960个字节的数据)进行测试时还没有丢帧现象出现,但当我们把要发送的数据换成图片数据进行发送时却无法进行正确的接收,即使是在仿真中将信道条件改为理想无噪无畸变信道时也仍然会在同一位置丢同样数量的数据帧。在调试中发现,当定时信息的两个触发信号之间的间隔一般有 4 种情况,分别为958、959、960、961。但是只有当差为958(一个完整 OFDM 数据帧为960个 QPSK 数据)时才会出现丢帧现象原创 2021-09-25 10:36:00 · 1879 阅读 · 7 评论 -
关于 USRP 如何将采样频率设置到硬件达到的最低采样频率以下的问题
做什么通信不好非要做水声通信。。。你资料少就少吧还一堆问题。。。得,说正事:最近在尝试将水声 OFDM 在 X310 中运行,首先遇到的地一个问题就是:虽然 X310 支持DC-6GHz的频率,但其采样频率最低却只能为 195.31 KHz,如下:诶你说气不气,如果按照这样的最低采样频率来发送数据,那我的载波频率必须得大于195.31 KHz 才行!这对于水声信道来说频率是真TM高。。。看有些使用 X310 来做水声通信的相关的文章也没有说明到底是怎么使用 85KHz 级的载波发送的数据。。。.原创 2021-09-04 18:07:18 · 1850 阅读 · 1 评论 -
GNURadio中运行ofdm_rx报错:gr::log :INFO: packet_headerparser_b0 - Detected an invalid packet at item ××
修改方法:减小发送端的乘数因子。但是本着知其然还要知其所以然的学习态度,下面就解释下出现这种现象的原因:最近在尝试运行并修改 GNU Radio 中的 OFDM 例程,先尝试做一个文本传输的demo。(位置 gnuradio/gr-digital/examples/ofdm)。首先将官方例程 ofdm_tx 中的 OFDM_Receiver 用 UHD:USRP Sink 来替代。将 ofdm_rx 中的 OFDM_Transmitter 用 UHD:USRP Source 来替代。并修改数原创 2021-09-04 16:23:19 · 1616 阅读 · 9 评论 -
GNU Radio3.8:创建自定义的QPSK块(C++)
GNU Radio 学习使用 OOT 系列(持续更新中):GNU Radio3.8创建OOT的详细过程(基础/C++)GNU Radio3.8创建OOT的详细过程(进阶/C++)GNU Radio3.8创建OOT的详细过程(python)GNU Radio自定义模块:Embedded Python Block的使用GNU Radio3.8:编辑yaml文件的方法GNU Radio3.8:创建自定义的QPSK块(C++)-------------------------------原创 2021-07-15 16:50:10 · 2813 阅读 · 9 评论 -
GNU Radio3.8创建OOT的详细过程(python)
GNU Radio 学习使用 OOT 系列(持续更新中):GNU Radio3.8创建OOT的详细过程(基础/C++)GNU Radio3.8创建OOT的详细过程(进阶/C++)GNU Radio3.8创建OOT的详细过程(python)GNU Radio自定义模块:Embedded Python Block的使用GNU Radio3.8:编辑yaml文件的方法--------------------------------------------------------------原创 2021-07-13 19:18:23 · 2422 阅读 · 2 评论 -
GNU Radio3.8创建OOT的详细过程(进阶/C++)
在上篇文章《GNU 3.8创建OOT的详细过程(基础/C++) 》我们创建了一个 general 类型的 block ,文章的结尾我们提到,对于输入输出数据比固定的情况下,我们可以对 “general” 类型的 block 的代码进行进行简化,这样就引出了本文要讲的 sync 类型的 block 。一、sync block 的创建及与 general block 间的区别syncblock 的创建过程与 general block 的创建方法类似。我们还在 mymod 模块的基础上 添加一个名为 .原创 2021-07-12 20:39:32 · 2226 阅读 · 12 评论 -
GNU Radio3.8创建OOT的详细过程(基础/C++)
目录一、什么是Out of Tree(OOT)二、工具软件的准备1、gr_modtool2、代码格式3、CMake及Make等三、创建一个OOT模块(module)的过程1、创建module2、为module添加block3、编写block的测试代码4、编写block的C++代码5、使用CMake编译并测试代码6、使自定义的block在GRC中生效7、最后一步:安装并加载8、卸载已安装的block9、module 创建流程总结一、什么是Out原创 2021-07-08 22:24:15 · 7570 阅读 · 20 评论 -
GNU Radio3.8:编辑yaml文件的方法
一、为什么要用YAML文件从GR的3.8 版本开始,GNU Radio Companion 的文件格式变为 YAML 文件而不是 XML 文件,简单那点说就是因为 v3.8 之前的版本不支持python3。YAML 相比 XML 文件最显著的变化之一是没有 XML 的尖括号,取而代之的是 YAML 的由冒号分隔的键值对,另外一个是文件的命名方式。而后者对于 GRC 识别文件很重要。即,block描述文件的“.xml”后缀已变为“.block.yml”,block树文件中的下划线“_”已替换为点"....原创 2021-07-05 20:07:48 · 2374 阅读 · 4 评论 -
GNU Radio中的消息传递机制(Message Passing)
1、定义理解原创 2021-06-18 23:06:44 · 2685 阅读 · 11 评论 -
GNU Radio中的流标签(Stream Tags)
流标签(Stream Tags)是用来解决GNU Radio中数据流(streams)传输过程中的同步性问题的。原创 2021-06-18 10:09:57 · 2015 阅读 · 3 评论 -
GNURadio中的PMTs(Polymorphic Types)数据类型
PMT在GNURadio中代表多态数据类型原创 2021-06-16 12:06:50 · 1522 阅读 · 0 评论 -
GNU Radio自定义模块:Embedded Python Block的使用
Embedded Python Block模块是gnu radio中的一个用Python定义的自定义块,可以使用Python来编程实现一些简单的功能。位置:Misc->Python Block原创 2021-06-11 17:36:25 · 5574 阅读 · 24 评论 -
Ubuntu20.04安装UHD及GUN Radio3.9
cmake时的bug:-- Python checking for Python version 3.5 or greater-- Python checking for Python version 3.5 or greater - found-- -- Python checking for Mako templates 0.4.2 or greater-- Python checking for Mako templates 0.4.2 or greater - "import mako原创 2021-03-29 12:04:11 · 2875 阅读 · 1 评论