DaweiShen∗
May21,2005
Abstract
GNURadiorequiresbothstrongcomputerskillsandextensiveknowledgeoncommunicationsanddigitalsignalprocessing.Thisarticlelistssomeusefulresourcesincludingtextbooks,weblinks,on-linetutorials.ThepurposeofthissheetistohelptheGNURadiofanstogetpreparedforthisexcitingtool.
IdefinitelybelieveyouhavefoundGNURadiointerestingandareeagertoplayaroundwithit.Unfortunately,itcontainsmorechallengethanfun.Youneedextensiveknowledgeonawiderangeofareas,includingcommunication(wireless)systems,digitalsignalprocessing,basichardwareandcircuitdesign,OOPprogramming,etc.However,yourinterestandpassioncouldmakethemmucheasier.Inthispage,Ilistsomeusefularticlesandresources,whichmightbeimportanttoyoubeforeyoudiveintotheGNURadio.
1HavingaclearerpictureofGNURadio...
Ifyouhaven’t,pleasereadthison-linearticlefirst.EricBlossom,”ExploringGNURadio”.Averybriefandexcellentintroductiontosoftwareradio.EricisthefounderofthewholeGNURadioproject.MakesureyouunderstandhowADCworksandwhyweneedanRFfrontend.RecallthesamplingtheorylearntfromyourSignalandSystemsclass.Thentakeacloselookatthetwoparts”TheUniversalSoftwareRadioPeripheral”and”WhatGoesintheFPGA”.Thisarticlealsoprovidestwoexamples,asimpledialtoneoutputandanFMreceiver.Atleastyoushouldunderstandthefirstone.Can’tunderstandtheFMreceiver?Nevermind,readthesecondarticle:EricBlossom,”ListentoFMRadioinSoftware,StepbyStep”.Youdon’tneedtounderstandthecodelinebyline,butyoushouldknowhowthesignalflowsfromtheairtothesoundcard.Thenit’sbetterforyoutoknowmoreaboutwhatUSRPdoes,thetwopages”USRPwiki”and”USRPUser’sGuide”wouldbeveryvaluable.Assumingyouhavegonethourghthearticlesabove,youmaygotothe”GNURadiowiki”pagestolookformoreinformation.
2ProgrammingonGNURadio...
Toreally”play”withGNURadio,youshouldbeabletowriteyourowncode.Fromthearticle”ExploringGNURadio”,youshouldhaveknownthatthesoftwarestructureofGNURadiocontainstwolevels.AllthesignalprocessingblocksarewritteninC++andPythonisusedtocreateanetworkorgraphandgluetheseblockstogether.Sointhisparticularscenario,Pythonisahigherlevellanguage.ManyusefulandfrequenctlyusedblockshavebeenprovidedbytheGNURadioproject,soinmanycasesyoudon’tneedtotouchC++,justusingPythontofinishyourtask.However,todomoresophisticatedwork,youhavetouseC++tocreateyourownblock.Insuchcases,anon-line
authorisaffiliatedwithNetworkingCommunicationsandInformationProcessing(NCIP)Laboratory,
DepartmentofElectricalEngineering,UniversityofNotreDame.Welcometosendmeyourcommentsorinquiries.Email:dshen@nd.edu
∗The
1
2Tutorial2-StartwithGNURadio
articleEricBlossom,”howtowriteablock”iswhatyouneed.Youmaywanttoknow,whatblockshavebeenprovidedtous?Unfortunately,unlikesomeotherdevelopingtools,suchasTinyOS,GNURadioisbadlydocumentedatthispoint.ButyoustillhavetwoveryusefuldocumentsgeneratedusingDoxygen.Afterinstallingthe”gnuradio-core”and”usrp”modules,youcanfindtwohtmlpackageslocatedat
•/usr/local/share/doc/gnuradio-core-x.xcvs/html/index.html•/usr/local/share/doc/usrp-x.xcvs/html/index.html
Ibookmarktheminmybrower.Althoughtheyarenotclearenough,theycantellyouquitemuchinformation.Thefirstoneisalsoavailableon-linehere.
Ifyouhaven’thadachancetousePython,pleasegothoughthePythonon-linetutorials.Themostimportantsectionsare:
•Section2:UsingthePythonInterpreter•Section3AnInformalIntroductiontoPython•Section6:Modules
•Section7:InputandOutput•Section9:Classes
TheywillbefrequentlyusedinGNURadioprogramming.IfObject-OrientedProgramming(OOP)soundsunfamiliartoyou,youshouldreadsection9morecarefully.ThefollowinglinksalsomayhelpyoutograsptheessenceofOOP.
•Lesson:Object-OrientedProgrammingConcepts
•IntroductiontoObject-OrientedProgrammingUsingC++•TheObjectOrientedProgrammingWeb
Anyway,Pythonseemstobecrucialatthisstage,somakesureyoumasteritwell.
3DigitalSignalProcessing(DSP)
Mostofushavetakenthe”SignalsandSystems”class,Iguess.Whatwelearntinthiscourseisextremelyimportanthere.However,that’snotenough.Makesureyouwon’tgetlostifIchangethesignaltoanalogortodigitalworld;tothetimedomainortothefrequencydomain.Thebottomlineis,youneedtoknowwhatissamplingtheorem,whatisz-transform,howtogetthespectrumofasignal,andtheconceptsofFIRandIIRfilters.Irecommendseveralbookshere,whicharefamousandclassical.
•”SignalsandSystems(2ndedition)”-AlanV.Oppenheim,AlanS.Willsky
•”Discrete-TimeSingalProcessing(2ndedition)”-AlanV.Oppenheim,RonaldW.Schafer,JohnR.Buck•”DigitalSignalProcessing:Principles,AlgorithmsandApplications(3rdedition)”-JohnG.Proakis,DimitrisManolakisReadthechaptersaboutdiscrete-timeFouriertranformandFIR,IIRfilters.Iknowthebooksareexpensiveandtedious,therearesomeotherusefulon-lineresources:•DigitalSignalProcessingTutorial
•TheScientistandEngineer’sGuidetoDigitalSignalProcessing
D.Shen3
4Communications
Weknowtherealsignalswesendandreceivecan’tbeinbaseband.Theyneedtomodulatedanddemodulated.IbelieveyouhavestudiedtheconceptsofAMandFMradiosinsomecourses.Bothofthembelongtoanalogworld.Todevelopmoreusefulandinterestingschemes,weneeddigitalcommunications.Ofparticularimportanceandinterestatthispoint,isdigitalmodulationanddemodulation,synchronization.Thecourseinyoursenioryear,”CommunicationSystems”maybeofinteresttoyou.Furthermore,Irecommendyouread:
•Chapters4and5,”DigitalCommunications(4thedition)”-JohnG.ProakisTheknowledgeintroducedinthesetwochaptersisexactlywhatwearegoingtotryoutrecently.
5Readytostart?
Ilistfourtopicsabove.Itdoesn’tmeanyoushouldcompletethemonebyonebeforeyoucandosomethingwithGNURadio.Youcertainlycanlearnthemthroughthisstudyprocess.ButatleastyoushouldreadthearticlesImentionedaboveinsection1andsection2.Thenyoucantrythis”homework”:
Inthemodule”gnuradio-examples”,youcanfindmanysamplecodesinthefoldergnuradio-example/python/usrp/.Canyoureadthefollowingtwoprogramsandunderstandthecodelinebyline?•gnuradio-examples/python/usrp/amrcv.py•gnuradio-examples/python/usrp/wfmrcvgui.pyIfso,Iwouldsayyouhavemovedahugestep.
References
Allthebookchapters,on-lineresourcesmentionedinthisarticle.
因篇幅问题不能全部显示,请点此查看更多更全内容