认知无线电实验
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
武汉理工大学
现代数字信号处理在前沿学科中的应用实验
认知无线电
学院:信息工程学院
学号:1049731503279
姓名:吴志勇
班级:电子154
实验一认知无线电的开发环境与基础实验入门
一、实验目的
1、掌握Linux系统下的基本操作。
2、了解认知无线电实验平台。
3、掌握GNU Radio软件平台的搭建过程。
4、了解USRP N210设备的检测。
二、系统、硬件配备
一台配有千兆网卡的PC机,ubuntu11.10系统,GNU Radio3.5.0安装包(也可以选择其他带有UHD的GNU Radio版本)。
三、实验流程
GNU Radio的安装主要包括三个部分的安装,准备库的安装、UHD的安装、GNU Radio 的安装,下面将从这三个部分开始介绍。
1、网络连接
在ubuntu下进行网络IP设置,打开命令终端,常用的命令:使用ls命令查看当前路径下文件,使用cd命令进入文件夹。
2、准备库的安装:
在/redmine/projects/gnuradio/wiki/UbuntuInstall中,有其安装方法,对应找到我们的ubuntu11.10所需要的准备库内容,利用apt-get来安装。
安装完毕之后可以根据build-guide程序中所提到的库进行验证。
3、UHD的安装
可以到官网上看见很多uhd的版本,我们采用的版本是003.004.000,可以直接从设备所带的光盘中获得(/tmp/uhd/host):
执行:
cd /tmp/uhd/host
mkdir build
cd build
cmake ../
make
make test
sudo make install
4、GNU Radio的安装
本文以GNU Radio为例,从官网上可以下到gnuradio3.5.0的安装包,我们可以通过安装包中的version.sh文件来查看其版本,选择gnuradio3.5.0来安装。
执行:
cd /gnuradio
mkdir build
cd build
cmake ../
make
make test
make install
5、设置环境变量
按照README中指示设置环境变量,但是,其中python路径要根据我们的python版本设置,改正之后如下:
export PYTHONPATH=/usr/local/lib/python2.7/disk-packages
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$HOME/local/lib
sudoldconfig
四、实验结果
执行gnuradio-companion指令,系统输出如下界面,安装成功
实验二Dpsk数字调制实现
一、实验目的
1、熟悉Ubuntu操作系统的使用。
2、熟悉gnuradio_companion的使用。
3、熟悉DBPSK调制的基本原理,并通过gnuradio实验平台实现DBPSK调制及解调。
二、实验原理
本例是一个GNU Radio的关于余弦波信源的差分移相键控数字调制的例子。它由一个余弦波形源,经过采样流控制得到稳定的采样速率,然后经过了数据包打包、DPSK 调制、DPSK 解调和数据包解包等过程,并向PC 的Speaker输出声音信号,(此信号由产生余弦波的信源频率控制)。
差分BPSK是相移键控的非相干形式,它不需要在接收机端恢复相干参考信号。非相干接收机容易制造而且便宜,因此在无线通信系统中被广泛使用。在DBPSK系统中,输入的二进制序列先差分编码,然后再用BPSK调制器调制。差分编码后的序列﹛an﹜是通过对输入bn与an-1进行模2和运算产生的。如果输入的二进制符号bn为0,则符号an与其前一个符号保持不变,而如果bn为1,则an与其前一个符号相反。
差分编码原理为:
其实现框图如图1所示。一个典型的差分编码调制过程如2图所示:
图1 差分编码实现框图
对DBPSK的解调是通过比较接收相邻码元信号(I,Q)在星座图上的夹角,如果大于90则为1,否则为0。
即按下式进行:
)2
(
)2
(
)2
(
)2
(
)
(+
-
+
+
-
=n
Q
n
Q
n
I
n
I
n
D
如果
)
(<
n
D,则判为1,反之判为0。
)
(
)1
(
)
(n
b
n
a
n
a⊕
-
=
输入数据
载波相位(1)
(0)
0 1 1 0 0 0 1 1 1
π0 ππππ0 π0
0 π0 0 0 0 π0 π
图2差分编码与载波相位示意图
本例中需要调用11个模块,新出现的有:Throttle进行采样流控制得到稳定的采样速率。Packet Encoder进行数据包打包,进行数据比特(bit)到符号(symbol)的转换,为调制模块做好准备,如下一个模块是二进制调制,每1个符号占1个比特(bits/symbol),四进制调制就是2 bits/symbol,以此类推。DPSK Mod采用差分相移键控数字调制。DPSK Demod差分相移键控数字解调。Packet Decoder是Packet Encoder的反过程。WX GUI Scope Sink相当于示波器。
三、实验设备
需要安装过Ubuntu 系统和GNU Radio的PC机
四、实验步骤
1、开启一个终端输入命令
sudognuradio-companion
2、从开启界面右边的库中添加并连接必要的block 如图3所示。
3、匹配每个block 的数据类型,参考图dpsk_loopback。(注意所有的模块需要根据图
dpsk_loopback所示按颜色指示修改其数据类型。int为浅绿色,short 为黄色,complex 为蓝色,float 为橙色,紫红色为调制后数据char型) 。
4、单击标签上的"in""out"在合适的模块间进行连线。
5、如图dpsk_loopback设置每个模块属性(注意属性value 值设置为带有m 的,为小数,
比如5m 就是0.005,200m 就是0.2) 。
其中不能直接设置的属性如下列出:
a)在Signal Source 模块中的Sample Rate 属性设置为samp_rate,Frequency 属
性设置为freq。
b)在Throttle 模块中的Sample Rate 属性设置为samp_rate
c)在WX GUI Scope Sink 模块中的Sample Rate 属性设置为samp_rate,T Scale 属
性设置为1/freq。
d)在Audio Sink模块中的Sample Rate属性设置为samp _rate ,Device Name属性
设置为plughw:0,0 。
6、按键F5 来编译程序,或者单击图标。如果有错误双击检查所有连接模块的属性、数据
类型。
7、按键F6来执行程序,或者单击图标。将会出现如图4 所示界面。
8、使用Frequency 滑条来调整你的系统中的输入信源频率的大小。从而改
9、变向外输出的声音。