GNU Radio
文章平均质量分 81
研究生期间学习GNU Radio、软件无线电做的一些笔记、记录,供还在探索软件无线电和GNU Radio的同学参考
天一涯
希望每天都有新收获~
展开
-
GNU Radio的消息机制
在GNU Radio中,所有的模块都基于无限的“数据流”的概念。也就是说,流图中的模块只要在模块的输入端有数据传入,就会不断的被处理。以低通滤波器为例,每个输入的数据都认为是一个需要处理的采样点,而每个输出都是经过低通处理的输入数据,滤波器不会关心输入信号是有用信号还是噪声。当处理数据包或协议数据单元(PDU,protocol data unit)时,这种机制就显得无能为力,系统必须能够识别数原创 2016-07-10 16:46:46 · 3026 阅读 · 1 评论 -
使用Python+XML添加自定义模块
1、编写Python文件2、编写XML文件3、添加Python环境变量4、将编写好的Python文件和XML文件拷贝到环境变量指定的目录5、打开图形界面就可以使用了,或者是在Python中import module_name,便可以使用该模块了。原创 2016-03-20 16:42:05 · 1441 阅读 · 0 评论 -
安装gr_ieee802.11
1、安装配置好gnuradio2、安装log4cpp:sudo apt-get install liblog4cpp5-dev3、安装IT++库:sudo apt-get install libitpp-dev4、下载、编译、安装ieee802.11: git clone git://github.com/bastibl/gr-ieee802-11.git cd g原创 2016-03-23 11:20:06 · 2642 阅读 · 3 评论 -
添加自定义的Python模块方法
默认的搜索路径是安装路径:/usr/local/lib/python2.7/dist-packages/grc_gnuradio/blks2/packet.py这里便携了一个自定义的my_packet.py模块,要使其能够在流图中使用,需要将其添加到Python的环境变量中去。编辑~/.bashrc,创建环境变量PYTHONPATH,添加如下语句:export PYTHON=$PY原创 2016-03-20 16:14:08 · 1318 阅读 · 0 评论 -
Python测试驱动编写
通过gr_modtool会自动生成测试驱动程序的模板,只需要修改模板即可,模板如下:from gnuradio import gr, gr_unittestfrom gnuradio import blocksimport double_diff_swig as double_diffclass qa_translate (gr_unittest.TestCase): def原创 2016-03-16 15:33:33 · 1627 阅读 · 0 评论 -
脚本安装GNU Radio
1.opena terminal window---------打开终端ctrl+alt+t2.move to the directory you would like the source files to bestored (e.g.'cd src/')----选个文件夹3.runthis command:-------运行如下指令$wget http://www.sbrac.原创 2013-10-20 08:30:40 · 3185 阅读 · 0 评论 -
接收端的匹配滤波器设置
tutorial里的pfb定时恢复模块都是配合CMA均衡模块使用的,两个模块的SPS参数都是设置的2。但单独仿真可以发现,pfb定时恢复后的星座图并不完美,还是很松散,只有在CMA均衡之后才能恢复出比较好的星座图。通过USRP进行实际的收发也可以发现,当把CMA均衡模块去掉而其它参数不变的情况下,并不能收到数据。经过反复实验发现,若将CMA模块去掉,并将pfb定时恢复的SPS参数设置为1,这种原创 2016-01-17 21:13:01 · 3968 阅读 · 0 评论 -
PSK星座对象(constellation.cc)
BPSK:constellation_bpsk::constellation_bpsk() { d_constellation.resize(2); d_constellation[0] = gr_complex(-1, 0); d_constellation[1] = gr_complex(1, 0); d_rotational_sym原创 2016-01-17 16:38:19 · 1336 阅读 · 0 评论 -
Hier block添加参数
在GRC中生成Hier block时为了提高灵活性,往往需要在对模块添加参数,这样就可以在顶层模块中对Hier block中的某些变量进行设定了。需要在Hier block中通过parameter模块设置参数,然后在generate Hier block后就可以看到可设定的parameter了,注意不能使用variable原创 2016-01-17 10:28:22 · 839 阅读 · 0 评论 -
gnuradio中接收端的信道滤波
在benchmark_rx中在接收端使用了FFT低通滤波器来得到感兴趣的频段,以滤除带外噪声,然而机器运行benchmark_rx时总是出现“段错误”,究其原因就是使用了信道滤波,当把信道滤波去掉之后运行起来就没有什么问题了。然而滤除带外噪声也是有必要的,所以对信道滤波部分进行了研究。在软件无线电中,信道滤波实际就是低通滤波器,在benchmark_rx中是这样使用的:在filter.fird原创 2016-01-14 10:24:37 · 4754 阅读 · 0 评论 -
qt-gui的GUI hint参数
GUI hint参数可以用来指定图像的位置,其为[行,列,行间距,列间距]的格式,这里的行间距是指图像所占有的行数或列数,比如行间距是1,则表示占用1行在每个qt-gui中都要设置该参数才能有效的指定位置,否则有可能出现图像丢失。比如某个qt-gui设置的GUI hint为:[0,0,1,1],最后两个[1,1]表示占用1行1列,前两个[0,0]表示该GUI的位置坐标是[0,0]。看下面的原创 2016-01-11 17:06:55 · 1565 阅读 · 0 评论 -
gnuradio之flowgraph和top_block
一般的gnuradio开发方式是底层的信号处理模块采用C++编写,这样可以提高处理效率;而模块之间的连接使用Python,这是因为Python提供了更方便的操作接口,使用起来更方便。然而分析gnuradio的源代码可以发现,gnuradio中的流图和顶层模块top_block都是通过C++编写的:流图类:/*! * \brief Class representing a direct原创 2016-01-10 20:25:42 · 2410 阅读 · 1 评论 -
一个很有意义的GNU Radio网站
http://oshearesearch.com/原创 2015-12-02 11:13:12 · 1459 阅读 · 0 评论 -
GNU Radio message
前面介绍过GNU Radio中协议数据包的传递方式之一——消息机制。仔细研究GNU Radio的源代码会发现,其中的消息机制是很重要的。几乎在所有实际的发送、接收中都会用到消息(message):在GRC中的packet_encoder和packet_decoder、pkt.py中的pkd_mod和pkd_demod以及packet.py中的packet_encoder和packet_decode原创 2015-12-02 10:02:07 · 1883 阅读 · 0 评论 -
GNU Radio协议数据包传递方式之二——标签机制
Tagged Stream BlocksIntroductionA tagged stream block is a block that works on streamed, but packetized input data. Think of packet data transmission: A data packet consists of N bytes. Ho原创 2015-11-29 15:19:30 · 3409 阅读 · 0 评论 -
GNU Radio协议数据包传递方式之一——消息机制
Message PassingIntroductionGNU Radio was originally a streaming system with no other mechanism to pass data between blocks. Streams of data are a model that work well for samples, bits, et原创 2015-11-29 15:17:50 · 3741 阅读 · 0 评论 -
GNU Radio中协议数据包的传递方式
All the blocks presented so far operate as "infinite stream" blocks, i.e., they simply continue working as long as items are fed into their inputs. The low pass filter is a good example: Every new i原创 2015-11-29 15:16:37 · 1631 阅读 · 0 评论 -
GNU Radio中的数据元(Metadata)
A stream of samples is much more interesting when there is parsable metadata connected to that stream, such as the time of reception, centre frequency, sampling rate or even protocol-specific inform原创 2015-11-29 15:13:45 · 1652 阅读 · 0 评论 -
gnuradio调试方法
How to debug GNU Radio applicationsOnce you've started creating GNU Radio applications, you will probably stumble upon some errors sooner or later. Here is some advice on how to tackle those problem原创 2015-11-29 15:08:31 · 4315 阅读 · 2 评论 -
GNU Radio中流图的动态配置
原创:http://blog.csdn.net/yuan1164345228How can I reconfigure a flow graph? How do I use lock(), unlock()?¶A running flow graph is static, and can't be changed. There are two ways to implement rec原创 2015-11-29 10:01:25 · 2398 阅读 · 0 评论 -
GCC单独编译host/examples/ tx_waveforms.cpp
需要链接uhd库和boost_program_options库以及boost_thread库:g++ tx_waveforms.cpp -o a -luhd -lboost_program_options -lboost_thread原创 2015-06-30 16:34:01 · 975 阅读 · 0 评论 -
gnuradio中把file_sink的二进制文件转换成文本文件
http://www.swigerco.com/gnuradio/plotting.html原创 2014-09-03 09:14:45 · 4825 阅读 · 0 评论 -
[转]GNU Radio Companion - GRC
GNU Radio Companion - GRC目录1GNU Radio Companion - GRC1.1新特性 1.2要求1.2.1GRC 的要求1.2.2GNU Radio 的要求1.3GRC 安装1.3.1安装 GRC1.3.2安装文档1.3.3Icons、Mime 类型、及 Menu 的安原创 2013-10-23 19:18:54 · 6134 阅读 · 0 评论 -
通过gr-modtool在gnuradio中编写自己的C++模块
虽然gnuradio给我们提供了近百种常用的功能模块block,但是在我们自己的系统设计中,需要不同的模块完成特定的功能,这样就需要我们自己来编写C++源代码,生成新的block以供系统调用。如果源代码、编译文件都要自己编写,需要很强的专业知识,对于我这样的初学者来说费时费力。网上有很其他的方法,如利用模板、下载现成的脚本等等。自己参照的官方网站上的教程,通过gr-modtool这个脚本辅助工具完原创 2013-11-03 12:37:04 · 6760 阅读 · 0 评论 -
GNUradio tools for packet-switched transmission(message source 和message sink)
Contents[hide]1Packet-switching in GNUradio 2Message and message queue classes2.1Message 2.2Message queue 3Transmit side operations 4Receive side operations Packet-sw原创 2014-01-02 21:15:03 · 1870 阅读 · 0 评论 -
对 GNU Radio 进行 Octave 分析
Octave 是 GNU Radio 的最流行的分析工具,鉴于此 GNU Radio 软件包也包含它自身的一组脚本(scripts )用于读取和语法分析输出。安装- Installing可以从源码( source)来安装 Octave,或者在 Ubuntu 内使用如下命令: sudo apt-get install octave以便 GNU Radio 的 Octa原创 2013-12-31 09:06:23 · 1988 阅读 · 0 评论 -
gnuradio中读取vector_sink数据
#!/usr/bin/env pythonfrom gnuradio import blocksfrom gnuradio import grtb = gr.top_block()src = blocks.vector_source_f([1,2,3,4,5,6])snk = blocks.vector_sink_f()tb.connect(src, snk)tb.ru原创 2013-12-30 09:53:36 · 2442 阅读 · 0 评论 -
gnuradio 中USRP收发速率
pick_bitrate.py 中包含了计算发送或者接收数据比特率的函数,(在gnuradio3.7中没有这个文件)根据以下参数设定来求解的与AD,DA转换率 converter_rate插值/抽取率 interp / decim每符号样值数 samples_per_symbol每符号比特数 bits_per_symbol可以举一个例子 加入AD 的采样率为 conve原创 2013-12-29 20:17:31 · 4654 阅读 · 0 评论 -
USRP 问题——输 出“O”“U”"u“”a"的意义
输 出 "O" "U" "u" "a" 的意义当运行 gnu radio 程序时,会有时看见 "O" "U" "u" "a" 字符出现在屏幕上。这一般当数据从 USRP 到 PC 机数据传输停止或什么事情发生时会出现。"u" = USRP"a" = audio (声卡)"O" = overrun (PC 无法同步地接受来自 USRP 或 声卡的数据 -PC no原创 2013-12-27 16:05:39 · 3695 阅读 · 0 评论 -
【转载】第一个GNURadio应用程序心得
原文地址:我的第一个GNURadio应用程序心得作者:YEYE目录:前言一.准备学习二.针对性逐行研究代码三.构建自己的应用流图,编写程序,调试通过四、small tips 前言:学习背景:电子通信专业,相关专业课程都有学习,没学过python(大多数都没有学过)C++学习过,只学过C的话最好对面向对象编程的类,封装,重构有所了解,学习,有助于学习python转载 2013-10-23 19:14:23 · 4595 阅读 · 1 评论 -
GNU Radio 中OFDM Tunnel 详解
(在网上看到这篇文章,感觉或许会有所帮助,文章里所说的例子在gnuradio3.6和3.7都没找到,在3.4中看到有文章里的例子。)OFDM Tunnel是GNU Radio中很经典的例子。Tunnel有两个,一个是基于GMSK 调 制 的 (gnuradio-examples\python\digital) , 另 一 个 基 于 OFDM 调 制 的 (gnuradio-examples\原创 2013-12-26 15:36:47 · 8528 阅读 · 4 评论 -
安装XML 功能定义文件方法
方法1: 打开~/.grc_gnuradio/文件夹,把写好的XML文件直接拷到该文件夹下,重新打开GRC后即可使用该模块。如果文件夹不存在,需要自己建立方法2: 通过配置文件的方法。构建或者编辑~/.gnuradio/config.conf 然后添加下面内容: [grc] local_blocks_path=/path/to/原创 2013-12-06 08:52:42 · 1781 阅读 · 0 评论 -
在深入学习gnuradio之前你需要知道的
原文网站:httpradioware.nd.edu投入GNU Radio之前你要做的学习GNU Radio需要有一定电脑基础和笔记哦啊深入的通信与信号处理知识,本文列举了一些有用的资源,包括教程、网页链接和一些在线教程。笨教程的目的是帮助GNU Radio爱好者们为这个令人兴奋的工具做一些准备。 目录1、对gnuradio有一个清楚的认识2、为gnuradio编写程序3翻译 2013-11-30 13:21:59 · 8286 阅读 · 4 评论 -
使用GRC Any Blocks
GRC Any BlocksReason To enable arbitrary Python-wrapped GNU Radio blocks to be created and connected in the flow graph code generated by GNU Radio Companion (GRC). This means that you do not need原创 2013-11-29 19:20:39 · 1915 阅读 · 0 评论 -
GNU Radiuo 数据处理模块
Signal SourcesSinusoidal and constant sourcesBlock:gr.sig_source_X.gr.sig_source_c [f, i, s]( double sampling_freq, gr_waveform_t waveform,原创 2013-10-24 21:07:22 · 1845 阅读 · 0 评论 -
GNU Radio 模块
GNU Radio 涵盖了相当多的库和模块。通常使用如下句法来导入模块:from gnuradio import MODULENAME有些模块的功用略有不同,以下列表是一些最常用的模块。gr GNU Radio 主要库函数。 这是总要被用到的库。 usrp USRP “源”和“漏”及控制。原创 2013-10-24 19:51:42 · 6495 阅读 · 0 评论 -
GNURadio教程链接汇总
入门程度的讲义教程在此提请注意,尽管是作为 GNU Radio 入门者的程度,但将要进入的是一个十分复杂的软件定义无线电王国。GNU Radio 的核心概念 - 一个人人必读部分如何编写 Python 程序 - 一个如何构建 Python GNU Radio 构架的指导。需要一些 DSP 及程序基础。QTGUI 讲义教程 - 一个如何构建 Python GNU Radi原创 2013-10-23 19:34:57 · 9759 阅读 · 3 评论