针对目前通信教学和科研活动中缺乏真实现场验证这一问题,本方案基于USRP和GNU Radio组成的通信实验平台,设计并实现了一个以正交频分复用(Orthogonal Frequency Division Multiplexing,OFDM)技术为基础的视频传输实验。与软件仿真验证相比,实验测试中以真实信道为传输环境,贴近现实的通信系统,使得需要验证的信号处理算法在性能评估上更具有说服力。
1. 功能描述
视频传输系统主要实现将摄像头信号数据发射到无线电磁环境中,并在接收端将此信号数据进行恢复以及显示。
系统由两台上位机、两台USRP-LW X310、两块UBX-LW 40射频子板与天线组成。
在系统发射端,上位机通过摄像头捕获到视频信号,通过GNU Radio发送模块将视频信号进行处理后通过USRP-LW X310,UBX-LW 40以及天线发射到无线电磁环境中;
在接收端,系统通过USRP-LW X310,UBX-LW 40以及天线接收无线电磁信号,信号数据通过上位机GNU Radio接收模块进行处理,并将恢复的视频画面显示到上位机。
图1 视频传输系统框图
系统支持多种调制方式,数据包支持自定义,发送源可选择文字,图片与视频。
系统接收端可显示星座图,频谱图与时域波形图。
2. 系统实现过程
步骤一:在系统中安装gstreamer库,利用mkfifo命令分别创建发射端、接收端中gstreamer和GNU Radio之间管道;
步骤二:通过输入命令连接uvc H.264/MPEG-TS网络摄像头;
步骤三:使用gstreamer中的命令将转化为.ts格式的视频加载到发射端GRC流图中,通过OFDM调制后再使用USRP发送。
步骤四:USRP接收视频后,经过GRC流图中的OFDM解调等模块,将解码的视频经过管道与gstreamer相连,可以使用gst-launch命令播放或者使用mpv命令在mpv播放器上播放(本次实验使用的是mpv播放器实现地播放)。
图2 视频管道配置图
GStreamer:开源的多媒体框架,用于构建音视频处理和流媒体应用 GitHub - GStreamer/gstreamer: GStreamer open-source multimedia framework
3. 实物搭建图
本次仿真使用设备:性能较高的PC机两台、USRP-LW X310两台、logitech C930摄像头一个(支持UVC H264的摄像设备)。
图3 视频传输系统实物搭建及整体运行结果图
4. 软件界面图
本次仿真实验两台主机环境为:
Ubuntu 18.04系统、GNU Radio Companion 3.7.13.5、uhd 3.14.1.1。
(1)发端运行实现
图4 发送端GRC流图
图5 发送端传输结果图
(2)接收端运行实现
图6 接收端GRC流图
图7 接收端运行结果图
5. 典型应用场景
视频传输系统帮助用户快速搭建一个数据传输系统,可用于天线性能验证,智能超表面系统验证,毫米波通信系统验证,光电传输系统性能验证。