欢迎来到第壹文秘! | 帮助中心 分享价值,成长自我!
第壹文秘
全部分类
  • 幼儿/小学教育>
  • 中学教育>
  • 高等教育>
  • 研究生考试>
  • 外语学习>
  • 资格/认证考试>
  • 论文>
  • IT计算机>
  • 法律/法学>
  • 建筑/环境>
  • 通信/电子>
  • 医学/心理学>
  • ImageVerifierCode 换一换
    首页 第壹文秘 > 资源分类 > DOCX文档下载
    分享到微信 分享到微博 分享到QQ空间

    gunradio软件无线电发送接收字符程序.docx

    • 资源ID:705325       资源大小:35.81KB        全文页数:11页
    • 资源格式: DOCX        下载积分:5金币
    快捷下载 游客一键下载
    账号登录下载
    三方登录下载: 微信开放平台登录 QQ登录
    下载资源需要5金币
    邮箱/手机:
    温馨提示:
    快捷下载时,如果您不填写信息,系统将为您自动创建临时账号,适用于临时下载。
    如果您填写信息,用户名和密码都是您填写的【邮箱或者手机号】(系统自动生成),方便查询和重复下载。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP,免费下载
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    gunradio软件无线电发送接收字符程序.docx

    GNURADlO软件无线电benchmark程序发送接收文件测试笔记在GNlJRADlO软件无线电程序中,benchmark程序可以发射900MHZ,接收900MHZ的无线电信号。具体做法是,把两台装有BaSiC子板的USRPl母板分别连上两台电脑的USB端口上,接通电源,在UbUntU操作系统下,在其中一台电脑的终端提示符下键入:“Cdusrlocalsharegnuradioexampledigitalz*进入benchmark程序的目录,再键入:.benchmark-tx.py-f900Mz,这时候,和这台山脑USB端口连接的USRP母板上的LFTX子板通过电线就会发送一个900M11Z的无线电信号,电脑显示器显示:表示正在发射无线电信号。这时,在另外的一台电脑上的终端提示符下键入:“Cdusrlocaulsharegnuradioexampledigitalz"进入benchmark程序的目录,再键入:./benchmark_rx.py-f900M”这时候,和这台脑USB端口连接的USRP母板上的LFTX子板通过电线就会收到一个900MHZ的无线电信号,电脑显示器显示:ok=Truepktno=1202n_rcvd=ln_right=0表明接收信号正常。现在的问题是要从这个电脑发送一个文件到另外一个电脑,我查找了相关资料发现,benchmark具有发送文件的功能,但是开源程序里没有这项功能,需要用户根据自己的需要修改程序来达到发送接收文件的功能。我通过研究发现,修改程序后,可以把这台电脑的aa.txt文件的"hello“字符发送到另外一台电脑的tt.txt文件中。具体做法是,在发送端电脑的“usrlOCaisharegnuradioexampledigital”目录下新建aa.txt,tt.txt两个文本文件,在aa.txt中输入“hello并保存,然后在终端下输入:“vibenchmark_tx.py在vi编辑器下打开benchmark_tx.py程序,在第124行tb.start()#startflowgraph”,后输入f=open(zzusrlocalsharegnuradioexamplesdigitalaa.txt”,r),a1ines=f.readlines()”两行新程序,第一行程序是以只读方式打开aa.txt文件,第二行程序的作用是以每行阅读的方式读出aa.txt中的文本内容,然后再赋值给IineS数组,接着把第140行程序payload=struct,pack(,!H*,pktno&Oxffff)+data改为payload=str(options,num)÷Str(Iines)这步的作用是,去掉了打包发送Pkno函数的功能,而加入发送IineS函数和options,num函数的功能。现在说一下options.num函数是从哪来的。首先把程序的第95行至第100行,改为parser.add_oPtiOn-discontinuous,action=z'store-truezz,default=False,help二enablediscontinoustransmission(burstsof5packets),)parser.add_oPtiOr-from_filez,dest=z'from-file,default=None,help二USCintputfileforpacketcontents")parser.add_oPtiOn(-T,-to_file,dest=z*to-file,z,default=None,help=,zOutputfileformodulatedsamples")parser.add_oPtion(-n,一num”,type二int,dest=,znum,default=l000,help二Sendmessage")parser.add_oPtion(-e,-file”,dest=z"filename,z,help二WritereporttoFILE,z,metavar=zzFILEzz)parser,add-option(zz-p/-Pdbk,action=zzstore-true,dest=,pdcl,;default=False,help二Writepdbkdatatooracledb)ParSCr.add_oPtiOn(-z,一Zdbk,action=zzstore-truez",dest="zdcl",default=False,help二Writezdbkdatatooracledb)简单说一下,在终端输入wbenchmark_tx-f900M-111500”时,程序以900MHZ的频率发送数组options,num中的数字1500和IineS数组,因为parser.add_option(-n,一num”,type二int,dcst="nu,default=1000,help二Sendmessage")定义了一个属性是num的OPtiOrLnum函数通过提示符"-nxxx”来返回一个值给option,num数组,上面其他程序的作用是定义了在终端提示符下发送文件-W,接收文件写入给数据库-p,读取数据库-z,其他功能这里暂时不讨论。修改完成后保存文件,退出Vi编辑器。下来在接收端的电脑上的/usr1ocalshare/gnuradio/exampledigitalnarrowband”目录下新建aa.txt,tt.txt两个空白文本文件,然后在终端下输入:“vibenchmark_rx.pyz"在Vi编辑器下打开benchmark_rx.py程序,把第79行到第98行的内容改为globaln_rcvd,n_rightglobaln_datadefmain():globaln_rcvd,n_rightglobaln_datan_rcvd=0n_right=0n_data=str()defrx_calIback(ok,payload):globaln_rcvd,n_rightglobaln_data(pktno,)=struct,unpack(,!H,PayIoad0:2)n_data=payload0:4096f=open(/usrlocalsharegnuradio/examples/digital/tt.八txt,W)f.write(payload)n_rcvd+=1ifok:n_right+=1print,zok=%5spktno=%4dn_rcvd=%4dn_right-%4dn_data=%5s"%(ok,pktno,n_rcvd,n_right,n_data)其中,n_data=payload0:4096定义变量n_data用来显示接收的options.num数组和IineS数组。还有上述f=open(/usrlocalshare/gnuradio/examples/digital/narrowband/tt.txt,w)f.write(payload)两行程序实现了以写入方式打开tt.txt文本文件,然后把接收的payload数组写入tt.txt中。保存修改退出Vi编辑器后,在发送端的电脑/usrlocalshare/gnuradio/example/digitai的目录下键入.benchmark-tx.py-f900M-n1900后,电脑显示表示发送正常,然后在接收端电脑usrlocalsharegnuradioexample/digitai的目录下键入.benchmark-tx.py-f900M电脑显示Ok-Truepktno-12598n_rcvd=458n_right=458n_data-1900,hellon,表示接收正常。用“ctrl+c”键停止接收,打开接收端电脑usrlOCaIsharegnuradioexampledigital的目录下的tt.txt文件,发现原来是空文件的tt.txt,出现'he11on'显示,表示发送接收正常.说明发送端电脑上的aa.txt文件中的“hello”字符已经传送到接收端电脑的tt.txt文件中。给发送端电脑的aa.txt文件中添加字符,如把"hello”改为“hellopython,接收端点脑上的tt.txt文件中显示“'helloPythonn'表明接受正常,当aa.txt中字符的长度超过3571个字节时,接收端就会显示乱码,因为每次程序只能发送低于3571字节的文本,一旦文本超过了3571字节,发送的信息量太大就会使程序读入数据出错,接收端就会收到乱码,要传送更多字节的文本就要修改程序,这个问题还在研究,现在不做讨论。下面测试一下能不能用其他子板正常发送接收文本。把上面的两个BaSiC子板换成两个WBX子板,WBX子板上都连有天线。测试后发现接收端的tt.txt就会显示乱码和误码。例如原来发送aa.txt文本中的hc11o”,接收到的tt.txt文本却是为造成这个结果的原因是WBX子板靠天线发送信号,而LFRX子板是通过屏蔽线传输信号。WBX子板发送无线电后,由于空间中的干扰,无线电信号在传输中会产生衰减和变化,另外的WBX子板接收到的无线电信号就会和发送的无线电信号不同。要想传输的内容不发生变化,就要修改程序,使每次只发送一个数据,这样接收就不容易产生误码和乱码。修改程序后,把benchmark_tx.Py中的z/payload=data+Str(Iines)+chr(options,num&Oxff)改为z/payload=Str(Iines)”作用是只把IineS的值赋给发送函数PaIoad,相当于只发送了IineS数组。同时把发送端电脑的aa.txt文件里的“hell。”改为“h”,只发送一个字符h,减少了传送的数据量,此时运行接收.benchmark-rx.Py-f900M和发送.benchmark-tx.Py-f900M发现接收端电脑的tt.txt文本显示'h,;表明接收成功附件:bcnchmark_rx.py源码ft!usrbinpython#!/USrbinenvpython# Copyright2010,2011,2013FreeSoftwareFoundation,Inc.# ThisfileispartofGNURadio# GNURadioisfreesoftware;youcanredistributeitand/ormodify# itunderthetermsoftheGNUGeneralPublicLicenseaspublishedby# theFreeSoftwareFoundation;eitherversion3,or(atyouroption)# anylaterversion.# GNURadioisdistributedinthehopethatitwillbeuseful,# butWITHOUTANYWARRANTY;withouteventheimpliedwarrantyof# MERCHANTABILITYorFITNESSFORAPARTICULARPURPOSE.Seethe# GNU

    注意事项

    本文(gunradio软件无线电发送接收字符程序.docx)为本站会员(p**)主动上传,第壹文秘仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知第壹文秘(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

    copyright@ 2008-2023 1wenmi网站版权所有

    经营许可证编号:宁ICP备2022001189号-1

    本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。第壹文秘仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知第壹文秘网,我们立即给予删除!

    收起
    展开