还剩2页未读,继续阅读
文本内容:
在深入学习GNU Radio之前你需要知道的学习开源软件无线电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 UniversalSoftware RadioPeripheralv和“What Goesin theFPGA”这篇文章提供了两个例子拨号输出和FM接收机你应该做到至少理解其中的一个不能理解FM接收机?不用担心,看第二篇文章,Eric Blossom的Listen toFM Radioin Software,Step byStep并非要把每行代码都读懂,但你需要清楚信号是怎么从空气中传到声卡的寻找任何与gnuradio相关问题的答案都应该从GNURad与Wiki开始,Gnuradio协会在提供援助方面也表现的相当慷慨,它通过mailing list提供帮助However,before postinga questionthat isstumping you,do anexhaustivesearch ofthe listsarchive tomake suret hatit hasnot alreadybeenaddressed.然而,在你发表困扰你的问题之前,最好先仔细在邮件列表里搜索一番,确保你的问题没有被处理过,阅读一下发送邮件的参考以确保提供有用的信息,这对于别人解答你的问题也会有帮助Gnuradi是软件定义无线电的支柱,射频前端是另外的东西典型的,Ettus Research的USRP正是出于此目的•Ettus Research-USRP的制造商在这里您可以订购USRP及配件•USRP-Frequently AskedQuestions一概述USRP和常见问题歹(J你不必拥有USRP(或任何射频前端)使用GNU Radio,但实际的实验需要一个前端2^为gnuradio编写程序要充分利用gnuradio,你应该会自己编写代码在a ExploringGNU Radio中,你知道里gnuradio的软件结构包含两层所有的信号处理模块是用C++编写的,python用来创建网络或流图并且负责把信号处理模块粘到一起在这种方案中,python相当于一种较高层的语言Gnuradio已经提供了许多有用的经常使用的模块,所以很多情况下,你不需要用到C++使用python在应用层开发是高效的,接下来的教程python在gnuradio应用中的使用然而,要完成更复杂的任务你必须要使用C++来建立自己的模块,这种情况下,Eric Blossom的How towrite ablock正是你所需要的,在后续的教程中我们会将这些施至你可能想要知道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生成的文档也可以在线]如果你还没有机会使用Python,请学习Python在线教程这里有一些最重要的部分Section2Using thePython InterpreterSection3An InformalIntroduction toPythonSection6Modules•Section7Input andOutput•Section9Classes这些概念将在GNUradio编程中经常使用如果面向对象编程OOP听起来陌生,你应该仔细阅读Section9更多If objectoriented programmingOOP soundsunfamiliar to you,youshould readsection9more carefully.下面的链接也可以帮助您掌握面向对象的本质•LessonObject-Oriented ProgrammingConcepts•Introduction toObject-Oriented prograomingUsing C++•The ObjectOriented PrograomingWeb对于更高级的开发,C++知识是必要的For moreadvanced development,C++knowledge willbe necessary.以下文献可能对你有用•C++Language Tutorial•C++Reference在这个阶段,Python是更重要,所以一定要掌握它
3、数字信号处理DSP我们大多数人学习了信号与系统课程,在这门课中学到的东西是非常重要的然而,这是不够的请确保你不会迷路,如果把信号从模拟形式转换到数字形式、到时域或者到频域你需要知道一些概念包括抽样定理、Z变换,如何得到一个信号的频谱和有限脉冲响应FIR和无限脉冲响应HR过滤器在这里我推荐几本经典的书•Signals andSystems2nd edition一Alan V.Oppenheim,Alan S.Willsky•Discrete-Time SignalProcessing2nd edition一Alan V.Oppenheim,Ronald W.Schafer,John R.Buck•Digital SignalProcessing:Principles,Algorithms andApplications3rd edition一John G.Proakis,Dimitris Manolakis阅读关于离散时间傅里叶变换和FIR,HR滤波器的章节我知道书是昂贵的和乏味的,这里还有一些其他有用的在线资源•Digital SignalProcessing Tutorial•The Scientistand EngineersGuide toDigital SignalProcessing
4、通信系统我们知道真正发送和接收的信号不是在基带,它们需要调制和解调此时你可能在你的一些课程学习了调幅和调频收音机的概念,这两个属于模拟世界为开发更有用和有趣的方案,我们需要数字通信在这一点上,特别重要的和有趣的是数字调制,解调和同步在大三时,你可能对通信原理更感兴趣此外,我建议你读•Chapters4and5-Digital Communications4th edition-John G.Proakis这两个章节中介绍的知识正是我们需要的这里是另一本很不错的书•Digital SignalProcessing inCommunication Systems-Marvin E.Frerking这本书有一个实际工程重点,包含很多很好的例子Frerking对于一个给定的发射机或接收机的设计问题通常提供了多种解决方案,提出了实用的算法而不是纯粹的理论讨论,它甚至可以用作通信系统设计的字典
5、准备好了吗?我上面列出四个主题,并不意味着在使用GNUradio之前你需要一个接一个的完成你当然也可以在本教程学习过程中学习它们但是至少你应该阅读我在GNUradio部分提到的文章翻译李怀远。