版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、大连理工大学实验预习报告学院(系): 信通学院 专业: 电子信息工程 班级: 电子1201班 姓 名: 陈 宇 学号: 201244201 组: _ 实验时间: 实验室: 创新园大厦C221 实验台: 指导教师签字: 成绩: 实验七 GNU Radio实验一、 实验目的和要求(1)了解python语言程序。(2)了解傅里叶变换,掌握usrp观测无线信号频谱图和时域图的方法(3)了解如何生成和发送一个信号数据包,了解benchmark之间的通信机制,了解benchmark如何传输文件(4)了解GRC的信号处理模块、流程图及其使用方法,了解DPSK调制解调原理(5)了解GRC的信号处理模块、流程图
2、及其使用方法、了解GMSK调制解调原理二、 实验原理和内容(1)实验一是一个GNU Radio “Hello World”的例子。它产生两个sine波形并且把他们输出到声卡,一个输出到声卡的左声道,一个输出到右声道。 dial_tone.py 1 #!/usr/bin/env python 2 from gnuradio import gr 3 from gnuradio import audio 4 class my_top_block(gr.top_block): 5 def _init_(self): 6 gr.top_block._init_(self) 7 sample_rate =
3、 32000 8 ampl = 0.1 9 src0 = gr.sig_source_f (sample_rate, gr.GR_SIN_WAVE, 350, ampl) 10 src1 = gr.sig_source_f (sample_rate, gr.GR_SIN_WAVE, 440, ampl) 11 dst = audio.sink (sample_rate, "") 12 self.connect (src0, (dst, 0) 13 self.connect (src1, (dst, 1) 14 if _name_ = '_main_': 15
4、 try: 16 my_top_block().run() 17 except KeyboardInterrupt: 18 pass 第一行告诉我们这是一个Python文件,他利用Python编译器执行。在第2行和第3行,import命令导入GNU Radio模块的gr和audio模块。gr模块用来运行一个GNU Radio应用。Audio模块加载一个音频设备块,来从声卡里输入和输出音频和控制音频设备。第4行开始定义my_top_block类,从gr.top_block (a subclass of gr)中派生。这是一个流程图的容器。第4行到第13行是类my_top_block定义。第5行定
5、义了类my_top_block的构造函数_init_。该构造函数在第6行通过调用父类构造函数实例化。在第七行设置变量sample_rate,该变量控制信号采样率。第8行设置幅度ampl变量。dial_tone包括三个模块(如下图)和两个接口。 第9行定义了一个信号源src0,产生一个350Hz、32K采样率、幅度为0.1的正弦波。第10行定义了一个信号源src1,产生一个440Hz、32K采样率、幅度为0.1的正弦波。gr.sig_source_f的后缀f表示信号源输出信号时浮点值。第11行定义了目的dst为audio sink可以用来发送/接收音频信号到声卡并且控制声卡。第12行和第13行连
6、接模块。第15行和第17行的try和except的意思是如果用户按下Ctrl+C则停止运行程序。第14行表明如果该代码是python编译器执行的唯一模块则执行my_top_block。 下面的两个表示方法是一样的: fg.connect(src1, 0), (dst, 1) fg.connect (src1, (dst, 1) 一旦流向图被建立了,我们调用start生成一个或者多个线程去运行它,按下任意键程序控制权就会返回给调用者。(2)本实验应用到GNURadio_SRCgnuradio-3.2.2gr-utilssrcpython目录底下的usrp_fft.py。本程序的功能是实时给出空间
7、无线信号的频谱占用情况。相当于一个频谱仪。(3)本实验用到/GNURadio_SRC/gnuradio-3.2.2/gnuradio-examples/python/digital底下的benchmark_tx.py和benchmark_rx.py,前者用来发送,后者用来接收。benchmark_tx.py生成数据包和帧结构如下图所示,帧的大小可以由用户设定。PC中运行的GNU Radio软件生成数据包和帧,通过USB传输给USRP。发送端每发送5个包就等待1秒再发送下5个包。下图是发送端可选项。(4)在本实验和下一个实验中,将通过软件无线电平台实现这两种技术的数据传输。DPSK调制原理:(5
8、)在CPFSK中,如果频偏指数h如果取1/2,那么此种CPFSK则成为MSK(最小频移键控),它是一种优良的调制方式,MSK在各种频移键控中占用带宽最小。但是由于无线通信对信号功率谱特性要求很高,特别是限制带外辐射低到-60到-80DB,在码元转换时刻以±相位突跳的MSK信号仍需进一步优化,GMSK(高斯最小频移键控)是其优化技术的一种。基本技术是在基带码流入VCO之前,先以与调制高斯滤波器进行处理使基带方波的棱角加以圆滑。三、实验步骤(1)拨号音的产生1打开一个Terminal,输入cd /GNURadio_SRC/gnuradio-3.2.2/gnuradio-examples/
9、python/audio。进入到dial_tone.py所在路径。2输入ls,显示当前路径所含文件。3输入gedit dial_tone.py。打开dial_tone.py文件。4键入sudo ./dial_tone.py运行dial_tone.py。通过耳机(或音响)听PC声卡所发出的声音。5、Ctrl+C停止运行dial_tone.py。更改dial_tone.py中ampl的大小以及频率大小,保存后重新进行第4步操作,感受声音变化。(2)快速傅里叶变换FFT1连接好USRP2打开一个Terminal,输入sudo usrp_fft.py h,将会得到帮助菜单。-h表示显示帮助菜单-w表示
10、选择USRP,一般默认值-R选择USRP子板,一般默认值-A选择天线,一般默认值-d表示decimation rate,默认值16。相当于设置一个抽取滤波器宽度。USRP的ADC以64MSPS的复采样率采进64MHz带宽的信号,经过抽取滤波器后,带宽变为原来的1/decim,数据速率变为原来的1/decim。-f设置采样信号的中心频率,在显示屏上的中间位置。默认2.5GHz,如果使用RFX2400子板,则只能设置2.3G到2.9G之间。-waterfall表示以瀑布图形式显示-S表示查看时域图,也可以用sudo usrp_oscope.py方式得到。-fft-size表示fft点数,默认102
11、4点。3输入sudo usrp_fft.py,得到频谱显示窗口(3)Simplex数据传输1、打开一个Terminal,输入cd/GNURadio_SRC/gnuradio-3.2.2/gnuradio-examples/python/digital。进入到benchmark_tx.py和benchmark_rx.py所在路径。2、在接收机端,键入sudo ./benchmark_rx.py f 2.4G r 200k即建立一个载频为2.4GHz、传输速率为200kbit/s的接收通道3、在发射机端,键入sudo ./benchmark_tx.py f 2.4G r 200k,发射机开始发送A
12、SCII码接收端侦听发送来得数据包并显示每个包的接收信息。检测每个包的错误。在显示的信息中,True或者False表示数据的CRC校验是否正确。pktno表示数据包编号,n_rcvd表示接收到数据包个数,n_right表示接收到的正确的数据包个数。4、接下来应用benchmark传送文件,将benchmark_tx.py和benchmark_rx.py修改成如APPIDEX 1和APPIDEX 2中所示代码。5、先启动接收端。再先启动发送端,如图s3-7所示。在载频2.4G,传输速率为200k的通道上传输READ ME文件。数据包大小为10。如果接收端误包率较大,可以通过以下方式改善:1)减小
13、包大小2)注释掉发送端的send_pkt(eof=True)3)修改一下每个包发送的间隔(在while中加上time.sleep(*)),4)把发一个包后的sleeptime改小点6、通过-tx-amplitude=NUM命令可以设置发送功率,默认NUM为12000,大概5-6mw,usrp最大发射功率为50mw,即NUM=32700;(4)基于USRP的DPSK系统1DPSK(差分相移键控)是为了解决普通PSK相位模糊问题提出来的。基于GRC的DPSK信号产生的流程图如图s6-1所示。其中Pecket Encoder模块的作用是对抽样数据进行包编码。通过GNU Radio平台可以实现DBPS
14、K、DQPSK、D8PSK。其流程图都是一样的,只需改变调制模块中的调制方式参数即可(如图s6-2)。图s6-1 DPSK信号调制流程图2在接收机端调用usrp_fft.py和usrp_oscope.py,观测DPSK调制产生的射频信号的时域图、频谱图、以及星座图等。3DPSK解调及验证DPSK的GRC解调流程图如下:该流程图中以USRP作为信号源,以接收空间中的无线调制信号。设计解调流程图应该注意的是其参数如samp_rate、Samples/Symbol、Type等都要与调制流程图中的参数设置对应,并且要符合个参数具体要求。此外最值得注意的是USRP Source的Decimation要设
15、置为调制流程图中USRP Sink 的Interpolation的一半。否则不能正确解调出信号源数据。DPSK调制流程图如图s6-1,解调流程图如图s6-3,接下来分别以500Hz的正弦信号、0 0 1的向量以及文件作为信源,通过比较解调数据与信源是否一致来验证整个调制解调过程的正确性。(5)GMSK1基于GRC的GMSK信号产生的流程图如图s7-1所示。由另外一台USRP设备接收到的GMSK信号时域图和频谱图如图s7-2和图s7-3所示。可以看出我们得到了期望中的GMSK调制信号。2GMSK解调及验证GMSK的GRC解调流程图如下:该流程图中同样以USRP作为信号源,以接收空间中的无线调制信
16、号。设计解调流程图应该注意的参数设置与DPSK相同。否则不能正确解调出信号源数据。4接下来分别以1KHz的正弦信号以及文件作为信源,通过比较解调数据与信源是否一致来验证整个调制解调过程的正确性。四、实验数据记录表格大连理工大学实验报告学院(系): 信通学院 专业: 电子信息工程 班级: 电子1201班 姓 名: 陈宇 学号: 201244201 组: _ 实验时间: 实验室: 创新园大厦C221 实验台: 指导教师签字: 成绩: 实验七 GNU Radio实验一、 实验目的和要求(1)了解python语言程序。(2)了解傅里叶变换,掌握usrp观测无线信号频谱图和时域图的方法(3) 了解如何生
17、成和发送一个信号数据包,了解benchmark之间的通信机制,了解benchmark如何传输文件(4)了解GRC的信号处理模块、流程图及其使用方法,了解DPSK调制解调原理(5)了解GRC的信号处理模块、流程图及其使用方法、了解GMSK调制解调原理二、 实验原理和内容(1)实验一是一个GNU Radio “Hello World”的例子。它产生两个sine波形并且把他们输出到声卡,一个输出到声卡的左声道,一个输出到右声道。 dial_tone.py 1 #!/usr/bin/env python 2 from gnuradio import gr 3 from gnuradio import
18、audio 4 class my_top_block(gr.top_block): 5 def _init_(self): 6 gr.top_block._init_(self) 7 sample_rate = 32000 8 ampl = 0.1 9 src0 = gr.sig_source_f (sample_rate, gr.GR_SIN_WAVE, 350, ampl) 10 src1 = gr.sig_source_f (sample_rate, gr.GR_SIN_WAVE, 440, ampl) 11 dst = audio.sink (sample_rate, "&q
19、uot;) 12 self.connect (src0, (dst, 0) 13 self.connect (src1, (dst, 1) 14 if _name_ = '_main_': 15 try: 16 my_top_block().run() 17 except KeyboardInterrupt: 18 pass 第一行告诉我们这是一个Python文件,他利用Python编译器执行。在第2行和第3行,import命令导入GNU Radio模块的gr和audio模块。gr模块用来运行一个GNU Radio应用。Audio模块加载一个音频设备块,来从声卡里输入和输出音频
20、和控制音频设备。第4行开始定义my_top_block类,从gr.top_block (a subclass of gr)中派生。这是一个流程图的容器。第4行到第13行是类my_top_block定义。第5行定义了类my_top_block的构造函数_init_。该构造函数在第6行通过调用父类构造函数实例化。在第七行设置变量sample_rate,该变量控制信号采样率。第8行设置幅度ampl变量。dial_tone包括三个模块(如下图)和两个接口。 第9行定义了一个信号源src0,产生一个350Hz、32K采样率、幅度为0.1的正弦波。第10行定义了一个信号源src1,产生一个440Hz、32
21、K采样率、幅度为0.1的正弦波。gr.sig_source_f的后缀f表示信号源输出信号时浮点值。第11行定义了目的dst为audio sink可以用来发送/接收音频信号到声卡并且控制声卡。第12行和第13行连接模块。第15行和第17行的try和except的意思是如果用户按下Ctrl+C则停止运行程序。第14行表明如果该代码是python编译器执行的唯一模块则执行my_top_block。 下面的两个表示方法是一样的: fg.connect(src1, 0), (dst, 1) fg.connect (src1, (dst, 1) 一旦流向图被建立了,我们调用start生成一个或者多个线程去
22、运行它,按下任意键程序控制权就会返回给调用者。(2)本实验应用到GNURadio_SRCgnuradio-3.2.2gr-utilssrcpython目录底下的usrp_fft.py。本程序的功能是实时给出空间无线信号的频谱占用情况。相当于一个频谱仪。(3)本实验用到/GNURadio_SRC/gnuradio-3.2.2/gnuradio-examples/python/digital底下的benchmark_tx.py和benchmark_rx.py,前者用来发送,后者用来接收。benchmark_tx.py生成数据包和帧结构如下图所示,帧的大小可以由用户设定。PC中运行的GNU Radi
23、o软件生成数据包和帧,通过USB传输给USRP。发送端每发送5个包就等待1秒再发送下5个包。下图是发送端可选项。(4)在本实验和下一个实验中,将通过软件无线电平台实现这两种技术的数据传输。DPSK调制原理:(5)在CPFSK中,如果频偏指数h如果取1/2,那么此种CPFSK则成为MSK(最小频移键控),它是一种优良的调制方式,MSK在各种频移键控中占用带宽最小。但是由于无线通信对信号功率谱特性要求很高,特别是限制带外辐射低到-60到-80DB,在码元转换时刻以±相位突跳的MSK信号仍需进一步优化,GMSK(高斯最小频移键控)是其优化技术的一种。基本技术是在基带码流入VCO之前,先以与
24、调制高斯滤波器进行处理使基带方波的棱角加以圆滑。三、主要仪器设备计算机、USRP四、实验步骤与操作方法(1)拨号音的产生1打开一个Terminal,输入cd /GNURadio_SRC/gnuradio-3.2.2/gnuradio-examples/python/audio。进入到dial_tone.py所在路径。2输入ls,显示当前路径所含文件。3输入gedit dial_tone.py。打开dial_tone.py文件。4键入sudo ./dial_tone.py运行dial_tone.py。通过耳机(或音响)听PC声卡所发出的声音。5、Ctrl+C停止运行dial_tone.py。更改
25、dial_tone.py中ampl的大小以及频率大小,保存后重新进行第4步操作,感受声音变化。(2)快速傅里叶变换FFT1连接好USRP2打开一个Terminal,输入sudo usrp_fft.py h,将会得到帮助菜单。-h表示显示帮助菜单-w表示选择USRP,一般默认值-R选择USRP子板,一般默认值-A选择天线,一般默认值-d表示decimation rate,默认值16。相当于设置一个抽取滤波器宽度。USRP的ADC以64MSPS的复采样率采进64MHz带宽的信号,经过抽取滤波器后,带宽变为原来的1/decim,数据速率变为原来的1/decim。-f设置采样信号的中心频率,在显示屏上
26、的中间位置。默认2.5GHz,如果使用RFX2400子板,则只能设置2.3G到2.9G之间。-waterfall表示以瀑布图形式显示-S表示查看时域图,也可以用sudo usrp_oscope.py方式得到。-fft-size表示fft点数,默认1024点。3输入sudo usrp_fft.py,得到频谱显示窗口(3)Simplex数据传输1、打开一个Terminal,输入cd/GNURadio_SRC/gnuradio-3.2.2/gnuradio-examples/python/digital。进入到benchmark_tx.py和benchmark_rx.py所在路径。2、在接收机端,键
27、入sudo ./benchmark_rx.py f 2.4G r 200k即建立一个载频为2.4GHz、传输速率为200kbit/s的接收通道3、在发射机端,键入sudo ./benchmark_tx.py f 2.4G r 200k,发射机开始发送ASCII码接收端侦听发送来得数据包并显示每个包的接收信息。检测每个包的错误。在显示的信息中,True或者False表示数据的CRC校验是否正确。pktno表示数据包编号,n_rcvd表示接收到数据包个数,n_right表示接收到的正确的数据包个数。4、接下来应用benchmark传送文件,将benchmark_tx.py和benchmark_rx
28、.py修改成如APPIDEX 1和APPIDEX 2中所示代码。5、先启动接收端。再先启动发送端,如图s3-7所示。在载频2.4G,传输速率为200k的通道上传输READ ME文件。数据包大小为10。如果接收端误包率较大,可以通过以下方式改善:1)减小包大小2)注释掉发送端的send_pkt(eof=True)3)修改一下每个包发送的间隔(在while中加上time.sleep(*)),4)把发一个包后的sleeptime改小点6、通过-tx-amplitude=NUM命令可以设置发送功率,默认NUM为12000,大概5-6mw,usrp最大发射功率为50mw,即NUM=32700;(4)基于
29、USRP的DPSK系统1 DPSK(差分相移键控)是为了解决普通PSK相位模糊问题提出来的。基于GRC的DPSK信号产生的流程图如图s6-1所示。其中Pecket Encoder模块的作用是对抽样数据进行包编码。通过GNU Radio平台可以实现DBPSK、DQPSK、D8PSK。其流程图都是一样的,只需改变调制模块中的调制方式参数即可(如图s6-2)。2在接收机端调用usrp_fft.py和usrp_oscope.py,观测DPSK调制产生的射频信号的时域图、频谱图、以及星座图等。3DPSK解调及验证DPSK的GRC解调流程图如下:该流程图中以USRP作为信号源,以接收空间中的无线调制信号。
30、设计解调流程图应该注意的是其参数如samp_rate、Samples/Symbol、Type等都要与调制流程图中的参数设置对应,并且要符合个参数具体要求。此外最值得注意的是USRP Source的Decimation要设置为调制流程图中USRP Sink 的Interpolation的一半。否则不能正确解调出信号源数据。DPSK调制流程图如图s6-1,解调流程图如图s6-3,接下来分别以500Hz的正弦信号、0 0 1的向量以及文件作为信源,通过比较解调数据与信源是否一致来验证整个调制解调过程的正确性。(5)GMSK1基于GRC的GMSK信号产生的流程图如图s7-1所示。由另外一台USRP设备接收到的GMSK信号时域图和频谱图如图s7-2和图s7-3所示。可以看出我们得到了期望中的GMSK调制信号。2GMSK解调及验证GMSK的GRC解调流程图如下:该流程图中同样以USRP作为信号源,以接收空间中的无线调制
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 保险业务合规操作与风险防范手册
- 辽宁汽贸人事制度改模板
- 2025年智能交通行业数据报告
- 2026年影视娱乐流媒体内容创新报告及未来五至十年商业模式报告
- 长沙银行运营面试题目及答案
- 机关纪检委员培训课件
- 2026年玉林市公安局玉州分局从辅警招聘候录库中补录人员10人备考题库及参考答案详解1套
- 2026年招商局汽车贸易有限责任公司招聘备考题库附答案详解
- 2025至2030中国智能晾衣架行业市场运行分析及发展前景与投资研究报告
- 2026年许昌市公安局交通管理支队招聘备考题库含答案详解
- 化工厂班组安全培训课件
- 2025四川成都农商银行招聘10人笔试备考题库及答案解析
- 营业执照借用协议合同
- 2025年秋苏教版(新教材)初中生物八年级上册期末知识点复习卷及答案(共三套)
- 2025年小升初学校家长面试题库及答案
- 2025年法考客观题真题回忆版(含答案)
- WB/T 1019-2002菱镁制品用轻烧氧化镁
- GB/T 6003.2-1997金属穿孔板试验筛
- GB/T 4074.21-2018绕组线试验方法第21部分:耐高频脉冲电压性能
- 完整word版毛泽东思想和中国特色社会主义理论体系概论知识点归纳
- GB/T 13350-2008绝热用玻璃棉及其制品
评论
0/150
提交评论