开源软件无线电(GNU Radio)基础教程

开源软件无线电(GNU Radio)基础教程,第1张

学习开源软件无线电(GNU Radio)需要有一定电脑基础和深入的通信与信号处理知识,本文列举了一些有用的资源,包括教程、网页链接和一些在线教程。本教程的目的是帮助GNU Radio爱好者们为这个令人兴奋的工具做一些准备。 

目录

1、对GNU Radio有一个清楚的认识

2、为GNU Radio编写程序

3、数字信号处理(DSP)

4、通信系统

5、准备好了吗?

相信你已经发现gnuradio中的乐趣,并且已经开始急切的想要使用它了。 不幸的是,除了无穷的乐趣外,这其中也包含许多挑战。 依据你使用gnuradio的目的,你需要广泛的知识,包括(无线)通信系统、数字信号处理、基本的硬件和电路设计、面向对象的编程等等。不管怎样,你的兴趣和激情都能让那些东西学起来容易得多。本文列举了一些有用的文章和资源,它们或许在你投入gnuradio之前是很重要的。这里也有一些gnuradio 社区推荐的文章,在这里你也能发现一些有用的信息。 记住,在你开始学习gnuradio之前,那些基础并不是你必须要掌握的,但在接下来的教程中你很可能会去回顾这些知识。

1、对gnuradio有一个清楚的认识

如果你还没有一个比较清楚地认识,请读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在线教程。这里有一些最重要的部分:

•  Section 2: Using the Python Interpreter

•  Section 3: An Informal Introduction to Python

•  Section 6: Modules

•  Section 7: Input and Output

•  Section 9: Classes

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/dianzi/2576197.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-08-07
下一篇 2022-08-07

发表评论

登录后才能评论

评论列表(0条)

保存