GNU Radio入门之旅
2019-01-17
今天拿到了通用软件无线电外设USRP N210,便开始着手在自己实验室电脑Ubuntu 18.04上安装软件无线电软件GNU Radio,以开发无线设备。
GNU Radio是什么?
GNU Radio 是一个通过最小程度地结合硬件(主要是 USRP),用软件来定义无线电波发射和接收的方式,搭建无线电通信系统的开源软件系统 。
GNU Radio 应用程序用 Python 语言来编写,真实的信息处理过程是由 C++浮点扩展库来实现的。因此开发者可以获得实时高效的可复用的应用开发环境。虽然 GNU Radio 并不是主要用于仿真,但也可以不用真实硬件,而使用预先记录或生成的数据来开发信号处理算法。
GNU Radio 提供一个信号处理模块(blocks)的库,并且通过建立一个流向图(flow graph)把单个的处理模块连接在一起形成一个无线电系统。
Python 用来构造流图,应用程序的图形化接口。C++用于编写各种block。
信号处理块的属性包括输入和输出的端口数,流过它们的数据的类型。经常使用的数据流的类型是短整型(short),浮点型(float),和复数 (complex)类型。
一些处理模块仅仅有输出端口或者输入端口,它们分别成为信号源(data source)和信号接收器(sink)。
GNU Radio 包含丰富的block,包括各种滤波器、FFT 变换、调制/解调模块、信道编译码模块、时频同步模块等等,其中一些利用了 CPU 的增强指令集(如:MMX、SSE、3D Now!)进行了优化,以提高性能。
USRP是什么?
USRP(Universal Software Radio Peripheral,通用软件无线电外设)是 Matt Ettus 的杰作,旨在使普通计算机能像高带宽的软件无线电设备一样工作。从本质上讲,它充当了一个无线电通讯系统的数字基带和中频部分。
USRP 背后的基本设计理念是在主机 CPU 上完成所有波形相关方面的处理,比如调制和解调 。所有诸如数字上下变频、抽样和内插等高速通用操作都在FPGA 上完成。USRP 把你的 PC 连接到 RF 世界。
USRP 本身不含有 ROM,仅仅有一个存储 VendorID 和 productID 和版本号信息的 EEPROM。
FPGA 是一个通用硬件,它的行为完全由配置的 bitstream 来决定,你可以把bitstream 看作是一个目标码。这个 bitsteam 是由一个高级硬件描述语言编译得到的,在 USRP 里面这是由 verilog 硬件描述语言来实现的。
FPGA所做的基本是执行高带宽下的数学运算,并减少数据传输速率。
USRP2 针对 DSP 应用优化了的大型现场可编程门阵列( FPGA )可以在高采样率下处理复杂波形。千兆以太网接口,使应用程序可以使用 USRP2 同时发送或接受 50 MHz 的射频带宽。在 USRP2 中,FPGA 出现了诸如数字上变频器和下变频器等高采样率处理器。较低采样率的操作可在主机电脑上,甚至可以在具有 32 位 RISC 微处理器和有很大用户设计自由空间的 FPGA 上做。更大的 FPGA 使得 USRP2 可以在没有电脑主机的情况下作为一个独立的系统运行。 USRP2 的配置和固件被存储在一个 SD 闪存卡里,无需特别的硬件就可以轻松编程。
USRP2 母板有四个插槽,可以插入 2 个基本接收子板和 2 个基本发送子板,或者 2 个RFX 板子。子板是用来装载 RF 接收接口或者调谐器和射频发射机的。有 2 个标注为 TXA 和 TXB 的插槽用于连接 2 个发送子板,相应的,有 2 个标注为RXA 和 RXB 的接收子板插槽 。每个子板插槽 可以访问 4 个高速 AD/DA 转换器其中的 2 个( DAC 输出用于发送, ADC 输入用于接收) 。
安装 GNU Radio
Method 1:
本人ubuntu系统是18.04,采用命令行输入
sudo apt-get gnuradio
Method 2:
对于ubuntu系统介于11.xx -- 16.xx (如16.04)的小伙伴(in fact it does not work)
sudo wget http://www.sbrac.org/files/build-gnuradio && chmod a+x ./build-gnuradio && ./build-gnuradio
Method3:
# install uhd(USRP Hardware Driver)sudo add-apt-repository ppa:ettusresearch/uhdsudo apt-get updatesudo apt-get install libuhd-dev libuhd003 uhd-host
refer to thses two passages:Ubuntu16.04 安装UHD GNU Radio教程
手把手教你搭建USRP在Linux GNU Radio下的开发环境
缺少安装模块 setuptools
Could NOT find MPLIB: https://github.com/gnuradio/gnuradio/issues/2105 ----sudo apt-get install libgmp-dev
Error: sh: latex: not found Problems running latex. Check your installation or look for typos in _formulas.tex and check _formulas.log! dvips: DVI file can’t be opened: _formulas.dvi: No such file or directory
https://www.ruby-forum.com/t/gnuradio-3-3-0-build-error-sh-latex-not-found/200552 : apt-get install texlive-latex-recommended
notice: https://blog.csdn.net/sinat_37870152/article/details/78067379
use http://billie66.github.io/TLCL/book/chap24.html to compile this file and download gnuradio
tar xzf gnuradio-3.7.2.tar.gzmd gr-buildcd gr-buildcmake ../gnuradio-3.7.2
when configure:
./configure --with-boost-libdir=/usr/lib/x86_64-linux-gnu
Method 4:PyBomb
https://www.jianshu.com/p/6763c46608fd
https://www.gnuradio.org/blog/2016-06-19-pybombs-the-what-the-how-and-the-why/
将映像文件装入板上闪存中 (仅对 USRP-N 系列)
http://www.cnblogs.com/moon1992/p/5843668.html
安装完后查看自己GNU Radio版本
gnuradio-config-info -vdpkg --status gnuradio
查看哪个软件包安装了usrp_spectrum_sense.py 这个文件 and where this file is
dpkg --search usrp_spectrum_sense.py
运行一个输出正弦波声音的例程
dial_tone
或者运行 图形化信号处理的开发部件:GNU Radio Companion (GRC)
gnuradio-companion
/usr/share/gnuradio下有大量例程源码,/usr/bin 也有大量可运行例程如uhd_fft
参考文献
GNU Radio 入门(Version 0.99)——黄琳 等 https://xmsg.org/wordpress/wp-content/uploads/2015/11/GNU-Radio%E4%B8%AD%E6%96%87%E5%85%A5%E9%97%A8%E6%95%99%E7%A8%8B.pdf
GNURadio 中文社区—— http://gnuradio.microembedded.com/
GNU Radio安装教程: https://www.cnblogs.com/moon1992/p/5781166.html#_label1
GNU Radio 安装 —— http://gnuradio.microembedded.com/installinggr
如何着手 GNU Radio? —— http://gnuradio.microembedded.com/howtouse
GNU Radio建议读物 —— http://gnuradio.microembedded.com/suggestedreading
GNU Radio Companion (GRC) —— http://gnuradio.microembedded.com/gnuradiocompanion
GNURadio mannal_zh: https://gnuradio-manual-zh.readthedocs.io/zh/latest/chapter1/index.html
GVU Radio原版主页 —— https://wiki.gnuradio.org/index.php/What_is_GNU_Radio%3F
GNU Radio 英文论坛 —— https://www.ruby-forum.com/c/gnu-radio
GNU Radio API —— https://www.gnuradio.org/doc/doxygen/hierarchy.html, https://www.gnuradio.org/doc/sphinx/index.html
通用软件无线电平台 USRP N210 —— http://ettus.com.cn/product/N210kit.html、https://www.ettus.com/content/files/Ettus_N200-210_DS_Flyer_HR_2.pdf
USRP技术文档整理
USRP2 手册 —— http://files.ettus.com/manual/page_usrp2.html
Setup USRP N210: https://sites.google.com/site/byungchulweb/setup-usrp2
usrp N210 牛刀小试: http://blog.chinaunix.net/uid-8048969-id-3298307.html
GNU Radio: USRP2 and N2x0 Series Setup Networking 配置网络: http://www.cnblogs.com/moon1992/p/5843668.html
转载于:https://www.cnblogs.com/WindyZ/p/10284473.html
GNU Radio入门之旅相关推荐
- GNU radio入门学习(2)GNU radio简介
GNU Radio简介 GNU Radio是什么 基本思想 定义 主要思想 软件架构(GNU Radio的"hello world") Python编写"hello wo ...
- gnu radio linux,GNU Radio入门
GNU Radio入门 海曼无限 WWW.OPEN-MESH.COM.CN / GNURADIO 中国WWW.GNURADIO.CC GNU Radio 入门 GNU Radio / USRP / O ...
- GNU Radio入门
相关资料记录 https://www.cnblogs.com/WindyZ/p/10284473.html https://www.cnblogs.com/WindyZ/p/10403342.html ...
- PLUTO SDR入门系列之八:LimeSDR公司荣誉出品”PothosSDR”-内置“gqrx”,GNU radio以及CubicSDR
LimeSDR公司荣誉出品- 开源SDR集成软件"PothosSDR"-内置"gqrx"(包括windows版本),GNU radio以及CubicSDR. 请 ...
- UHD+GNU Radio Ubuntu环境搭建
UHD+GNU Radio Ubuntu环境搭建 最近引文项目需要,需要进行频谱感知,特地学习了一下SDR 和GNURadio ,现在首先是入门的开发环境搭建以及部分测试. 本次教程采用ubuntu1 ...
- Tkinter 入门之旅
Tkinter 作为 Python 的标准库,是非常流行的 Python GUI 工具,同时也是非常容易学习的,今天我们就来开启 Tkinter 的入门之旅 图形用户界面 (GUI) 图形用户界面 ( ...
- WCF 入门之旅(4): 怎样用客户端调用WCF服务
WCF 入门之旅(4): 怎样用客户端调用WCF服务 前面的demo已经能够跑起来,现在开始考虑用客户端来测试所写的应用了,首先用个普通的应用程序来调用所写的wcf服务吧.其实最后运行wcf服务后的页 ...
- GNU Radio的hello world(转)
运行GNU Radio 需要注意的是,如果您的项目不需要用到硬件源和硬件池的话,直接使用Shell运行GRC是没有问题的.但是需要用到硬件源和硬件池的话,请记得使用管理员权限运行GRC,否则项目在执行 ...
- GNU Radio ieee802-15-4、ZigBee 实现
GNU Radio ieee802-15-4 实现 ieee802-15-4 物理层最开始在GNU Radio的实现是由UCLA的Department of Electrical Engineerin ...
最新文章
- The practice program of C on point
- 你的 Redis 为什么变慢了?
- 364. Nested List Weight Sum II
- 3.10 触发字检测-深度学习第五课《序列模型》-Stanford吴恩达教授
- 桌面虚拟化最佳实践4—存储规划(下)
- java jbutton 禁用_java – 如何禁用JButton在禁用时变灰?
- OpenCV学习笔记之OpenCV安装
- 一些IOS开发中的小技巧
- IE8给你选择的理由
- 从物联网发展历程看区块链挑战
- ubuntu18.04安装mysql8
- 券商结算VS托管行结算
- 计算机化验中红细胞的测量程序,血液常规检查检验程序.doc
- TCP SYN握手报文可以传输数据吗
- 嵌入式Linux系统优化的那些事儿
- Liunx(一)VMware虚拟机安装学习--Liunx学习的准备
- JavaWeb宿舍管理系统环境搭建运行教程
- 捣鼓nsq - 安装和运行
- 计算机如何寻址硬盘,再来理解一下硬盘
- Java实现 LeetCode 790 多米诺和托米诺平铺(递推)
热门文章
- EXE4J_JAVA_HOME错误
- 如有回忆,我情愿和你化作一团火焰!
- Axure 9 实战案例,中继器的应用 3,按条件筛选中继器列表
- 阿里巴巴逆向js,request模块获取数据
- 软件工程国考总结——判断题
- 山东工商学院 计算机 银行,山东工商学院与中国工商银行成为战略合作伙伴
- 计算机专业考农业工程与信息技术,中国农业大学农业工程与信息技术2021考研经验指导...
- canvas导出图片python_python的reportlab库介绍、制作pdf和作图
- RDMA入门——RDMA学习笔记(一)
- 树莓派4B 连接及配置