当前位置:首页 > 消费电子 > 消费电子
[导读]开源软件无线电(Gnuradio)或 开源软件定义无线电 是一个对学习,构建和部署软件定义无线电系统的免费软件工具包。发起于2001年,Gnuradio成为 GNU 的正式项目之一。

开源软件无线电(Gnuradio)或 开源软件定义无线电 是一个对学习,构建和部署软件定义无线电系统的免费软件工具包。发起于2001年,Gnuradio成为 GNU 的正式项目之一。慈善家 John Gilmore 发起并捐助 $320,000.00 (US) 给 Eric Blossom用来构建代码和维护。

Gnuradio [1] 是一个无线电信号处理方案,它遵循 GNU 的 GPL 的条款分发。它的目的是给普通的软件编制者提供探索电磁波的机会,并激发他们聪明的利用射频电波的能力。正如所有软件定义无线电系统的定义, 可重构性是其最重要的功能。再也不需购买一大堆发射接收设备,只要一台可以装载信号处理软件(这里:Gnuradio )通用的设备。它虽然只定义几个有限的无线电功能,但是只要理解无线发射系统的机理(算法),你便可以任意的配置去接受它。Gnuradio 起源于美国的麻省理工学院的 SpectrumWare 项目小组开发的 Pspectra 代码的分支。2004年被完全重写。所以今天的 Gnuradio 已不包含原 Pspectra 任何代码。

另外值得一提的是 Pspectra 已被用作创立商业化的 Vanu Software Radio.Gnuradio 开发了通用软件无线电外设 (USRP ),它是一个包含4个64 MS/s 的12位 ADC,4 个 128 MS/s 的 14 位的 DAC,以及其它支持线路包括高速的 USB 2.0 接口。该USRP能够处理的信号频率高达16 MHz宽。一些发射器和接收器的插件子板,可覆盖0至5.9MHz 频段。 它是Ettus研发的。

GNU Radio 是一个免费的开源软件开发工具包,它提供信号处理模块来实现软件无线电。它可以与现成的低成本外部 RF 硬件一起使用来创建软件定义的无线电,或者用于纯仿真环境。它广泛用于业余爱好者、学术和商业环境,以支持无线通信研究和现实世界的无线电系统。在Windows上安装GNU Radio可以采用软件安装包直接安装或采用conda安装.目前软件安装包只支持3.7和3.8版本, 最新的3.9无法采用此安装方式.使用conda安装的详细过程参见conda install guide.

本文使用conda进行安装.安装步骤如下:

首先,请确保你的电脑上安装了anaconda.

为了提升包的下载速度,请切换国内的anaconda镜像源, 方法参见:Anaconda 镜像使用帮助.

从开始菜单中找到Anaconda Powershell Prompt (anaconda3)并打开.

在powershell中运行如下命令, 添加conda-forge仓库:

目前类似的sdr软件非常多,最主要的几个功能就是瀑布图,频率带宽调节,和一些解码方式的选择。limesdr在windows下,比较方便的类似软件是HDSDR,直接下载解压,都不需要安装,并把limesdr对应的ExtIO_LimeSDR_1.05.dll驱动文件拷贝到安装目录下,就可以使用啦。

此外,windows下也提供傻瓜式安装包,安装过程确定到底,没啥可说的,而且就我的使用感觉来说,非常不稳定,所以这里直接略去。想玩gnuradio,一个linux系统还是要装的,无论是处于开发的方便,稳定,还是以后结合嵌入式来说,都是必须的。

首先说一下几点注意事项,按照官网的说法,limesdr的工具链目前完整支持了16.04,18.04,18.8和一些其他的比较知名的linux发行版,20.04的ubuntu发行不久,相关工具正在开发中。而16.04在20.04版本开始开发后停止支持了。

我个人建议使用vmware安装ubuntu18.04版本,如果就是用的VMware,那么安装过程中或安装后,一定注意要把USB口改成usb3.0。无论windows下,还是linux下,limesdr都只支持usb3.0,只支持usb3.0,只支持usb3.0,重要的事说三遍。不是用usb3.0更好,而是只能用usb3.0,包括电脑接口,虚拟机设置,和使用的USB转接线。否则,电脑是无法正常发现设备的。如果确实是用虚拟机的话,分配的资源不要太吝啬,CPU内核和内存,尤其是前者不妨多给一点,SDR某些计算的时候还是比较耗费CPU的。

然后就可以开始换进安装之旅啦。目前网上其他limesdr的各种linux环境搭建方法,包括代理商提供的,大都过时,或者有问题,也有因为墙的原因,很难安装成功,即便勉强能跑通,也容易出一些奇奇怪怪的问题,又或者会安装上一堆没用的其他软件,再就是gunradio安装的是3.7版本的。当然gnuradio似乎也已经出到了3.9版本,但是limesdr的插件暂时还没跟上,后续出来了,按照我同样的思路,也应该很容易修改。

我的安装思路很简单,全部编译安装。

0,安装limesdr提供的linux驱动和测试软件——LimeSuite.

1,安装gnuradio 3.8版本。

2,安装gnuradio 3.8版的limesdr插件——grlime 3.8版。

这个目前还没有出到3.9版本,所以这是限制我们暂时还不能用gnuradio3.9版本的唯一原因。

如果你还没有一个比较清楚地认识,请读Eric Blossom的Exploring GNU Radio,这是一个对于软件无线电的一个简短介绍。Eric是整个gnuradio工程的创建人。请确保你对ADC怎么工作以及为什么需要射频前端有一定的理解,回顾一下在信号与系统课程中学习的抽样定理,然后阅读一下这两篇文章:“The Universal Software Radio Peripheral”和“What Goes in the FPGA”。这篇文章提供了两个例子:拨号输出和FM接收机。你应该做到至少理解其中的一个。不能理解FM接收机?不用担心,看第二篇文章,Eric Blossom的 Listen to FM Radio in Software, Step by Step。并非要把每行代码都读懂,但你需要清楚信号是怎么从空气中传到声卡的。

寻找任何与gnuradio相关问题的答案都应该从 GNU Radio Wiki开始, Gnuradio协会在提供援助方面也表现的相当慷慨,它通过mailing list提供帮助。However, before posting a question that is stumping you, do an exhaustive search of the list's archive to make sure that it has not already been addressed. 然而,在你发表困扰你的问题之前,最好先仔细在邮件列表里搜索一番,确保你的问题没有被处理过,阅读一下发送邮件的参考以确保提供有用的信息,这对于别人解答你的问题也会有帮助。Gnuradio是软件定义无线电的支柱,射频前端是另外的东西。典型的,Ettus Research的USRP正是出于此目的。

§ Ettus Research - USRP的制造商。在这里您可以订购USRP及配件。

§ USRP - Frequently Asked Questions - 概述USRP和常见问题列表。

你不必拥有USRP(或任何射频前端)使用GNU Radio,但实际的实验需要一个前端。

2、为gnuradio编写程序

要充分利用gnuradio,你应该会自己编写代码。在“Exploring GNU Radio'”中,你知道里gnuradio的软件结构包含两层:所有的信号处理模块是用C++编写的,python用来创建网络或流图并且负责把信号处理模块粘到一起。在这种方案中,python相当于一种较高层的语言。Gnuradio已经提供了许多有用的经常使用的模块,所以很多情况下,你不需要用到C++。使用python在应用层开发是高效的,接下来的教程python在gnuradio应用中的使用。然而,要完成更复杂的任务你必须要使用C++来建立自己的模块,这种情况下,Eric Blossom的How to write a block 正是你所需要的,在后续的教程中我们会将这些内容。

你可能想要知道gnuradio中实现了哪些模块,不幸的是,不幸的是,GNUradio很多地方还没有很好的文档记录,但你仍然使用Doxygen生成有两个非常有用的资源。安装gnuradio-core和usrp模块之后,您可以找到两个html包位于

/usr/local/share/doc/gnuradio-core-x.xcvs/html/index.html

/usr/local/share/doc/usrp-x.xcvs/html/index.html

我已经在我的浏览器中添加了书签。虽然他们不够清晰,他们可以提供你很多信息。GNUradio Doxygen生成的文档也可以在线here。如果你还没有机会使用Python,请学习Python在线教程。

声明:该篇文章为本站原创,未经授权不予转载,侵权必究。
换一批
延伸阅读

LED驱动电源的输入包括高压工频交流(即市电)、低压直流、高压直流、低压高频交流(如电子变压器的输出)等。

关键字: 驱动电源

在工业自动化蓬勃发展的当下,工业电机作为核心动力设备,其驱动电源的性能直接关系到整个系统的稳定性和可靠性。其中,反电动势抑制与过流保护是驱动电源设计中至关重要的两个环节,集成化方案的设计成为提升电机驱动性能的关键。

关键字: 工业电机 驱动电源

LED 驱动电源作为 LED 照明系统的 “心脏”,其稳定性直接决定了整个照明设备的使用寿命。然而,在实际应用中,LED 驱动电源易损坏的问题却十分常见,不仅增加了维护成本,还影响了用户体验。要解决这一问题,需从设计、生...

关键字: 驱动电源 照明系统 散热

根据LED驱动电源的公式,电感内电流波动大小和电感值成反比,输出纹波和输出电容值成反比。所以加大电感值和输出电容值可以减小纹波。

关键字: LED 设计 驱动电源

电动汽车(EV)作为新能源汽车的重要代表,正逐渐成为全球汽车产业的重要发展方向。电动汽车的核心技术之一是电机驱动控制系统,而绝缘栅双极型晶体管(IGBT)作为电机驱动系统中的关键元件,其性能直接影响到电动汽车的动力性能和...

关键字: 电动汽车 新能源 驱动电源

在现代城市建设中,街道及停车场照明作为基础设施的重要组成部分,其质量和效率直接关系到城市的公共安全、居民生活质量和能源利用效率。随着科技的进步,高亮度白光发光二极管(LED)因其独特的优势逐渐取代传统光源,成为大功率区域...

关键字: 发光二极管 驱动电源 LED

LED通用照明设计工程师会遇到许多挑战,如功率密度、功率因数校正(PFC)、空间受限和可靠性等。

关键字: LED 驱动电源 功率因数校正

在LED照明技术日益普及的今天,LED驱动电源的电磁干扰(EMI)问题成为了一个不可忽视的挑战。电磁干扰不仅会影响LED灯具的正常工作,还可能对周围电子设备造成不利影响,甚至引发系统故障。因此,采取有效的硬件措施来解决L...

关键字: LED照明技术 电磁干扰 驱动电源

开关电源具有效率高的特性,而且开关电源的变压器体积比串联稳压型电源的要小得多,电源电路比较整洁,整机重量也有所下降,所以,现在的LED驱动电源

关键字: LED 驱动电源 开关电源

LED驱动电源是把电源供应转换为特定的电压电流以驱动LED发光的电压转换器,通常情况下:LED驱动电源的输入包括高压工频交流(即市电)、低压直流、高压直流、低压高频交流(如电子变压器的输出)等。

关键字: LED 隧道灯 驱动电源
关闭