王 辉, 张 晨, 于立君, 胡羽坤
(哈尔滨工程大学 自动化学院, 黑龙江 哈尔滨 150001)
软件无线电(sofware defined radio, SDR)是一种使用软件实现物理层连接的无线通信设计,能够在不改变硬件的情况下实现不同通信功能。软件无线电技术有巨大的研究和实用空间[1-4]。笔者为实验课程设计了基于HackRF的无线通信收发系统创新性实验[5-6]。该实验可以使学生中深入学习无线通信收发过程以及数字调制/解调方法,提高对无线通信收发系统的使用能力。在分析计算与实际编程调试的过程中,学生能够深入理解课程的理论知识,实现从理论知识到实践能力的全面提高[5]。
软件无线电系统可以分为3类:基于FPGA的SDR系统、基于DSP平台的SDR系统和基于通用处理器的SDR系统。为了实验室调试方便,选择基于通用处理器的SDR系统,搭建的基于HackRF的SDR系统模型框架如图1所示。
由图1可以看出,无线通信收发系统由硬件外设HackRF和主机2部分组成。主机配置了GNU Radio编程环境,作为实现各种通信功能的软件平台。
图1 系统模型框架图
HackRF是一款软件无线电通用平台,由于其硬件设计可以与各种通信方式进行匹配[6-7],因此选用HackRF作为实验的硬件平台。HackRF的硬件架构如图2所示,采用正交低通采样方式进行采样量化,通过USB2.0与主机通信。
图2 HackRF硬件架构图
(1) 接收信号。当天线收到无线信号后,编程控制是否放大该信号,然后将信号利用RFFC5072和MAX2837进行2次下变频,得到模拟基带信号,量化并抽取,最后得到基带数字信号,然后送入主机进行处理。
(2) 发送过程。与接收过程类似,是一个与接收信号大致相反的过程。HackRF是一个半双工器件,收发过程不能同时完成,需要软件切换。
GNU Radio是一个开源软件平台,但它不是必要的,控制HackRF的程序可以由学生自行编写。软件无线电的核心理念就是通用化,硬件平台使用了通用的硬件外设,为避免重复的信号处理以及与外设通信过程,GNU Radio集成了方便调用的模块。此外,GNU Radio还包含一种图形编程工具(GNU radio company),可以将模块以流图的形式连接并自动生成Python代码,配合GRC和代码编程,就可以在主机上实现所需的通信过程[8-10]。
FM是一种模拟体制的无线通信,工作频段在80~108 MHz,至今仍然有广泛的应用。传统的FM接收机大多指调频收音机,所需硬件固定、功能固定,而且调试复杂[11-12];而配合通用硬件外设HackRF与软件GNU Radio实现FM通信更具优势。
首先,搭建FM接收机模型。系统模型的接收机部分,利用HackRF接收指定频段的FM信号,下变频并数字化得到基带未解调FM信号,送入主机进行信息处理,得到解调后的原始音频信息并送入声卡播放,配合其他功能模块实现调频、调音量等功能。将此过程通过GRC搭建流图并自动生成实际运行的Python代码。FM接收机的软件架构如图3所示。
图3 FM接收机软件架构图
根据该架构图,调用相应的模块搭建流图(见图4),实现FM接收。由于FM发送需实现立体声调制,多数学生会遇到困难,因此不作为本实验的必做部分,可以作为课外拓展实验。
图4 FM接收机GRC流图
无线通信收发系统实验的软件架构如图5所示。接收机是在FM接收机的基础上,根据GMSK解调理论修改而成;发送机根据调制理论搭建。
图5 GMSK无线通信系统软件架构图
根据该架构图,调用相关模块搭建收发系统,实现文本信息的无线收发。绘制无线通信收发系统的完整工作流程如图6所示。
无线通信收发系统的工作流程如下:
图6 工作流程示意图
(1) 利用File Source模块从指定位置读取文本文件,利用Packet Encoder模块对信息进行编码处理,加入默认的header code、access code和preamble code,将编码后的数据流送入下一个模块处理;
(2) 进行数据流的GMSK调制:经过高阶模块GMSK Mod中的底层模块“packed_to_unpacked_bb”将数据流拆分成二进制序列,然后经“chunks_to_symbols_bf”底层模块变为双极性非归零码元序列送入下一个模块;
(3) 将双极性非归零码元序列送入高斯滤波器进行预调制,并将预调制后的码元序列送入频率调制底层模块,完成频率调制,获得两路同相、正交信号,也就是所谓的基带复信号;
(4) 通过Osmocom Sink模块与HackRF One通信,将基带已调制信号经USB2.0送入HackRF One板卡,并且上变频到指定频带,送入无线通信信道,完成GMSK调制过程;
(5) 通过Osmocom Source模块与HackRF One通信,接收机驱动板卡接收指定频带的信号,经过下变频、低通采样、量化、抽取等一系列操作,获取基带正交同相两路信号,经USB2.0送入PC进行处理;
(6) 信号流送入GMSK Demod高阶模块,首先通过其中的正交解调底层模块,计算出相应的相位差值(频率值),经过增益调整变为正负数字序列,经过时钟同步底层模块恢复时序,再经过抽样判决模块“binary_slicer_fb”对信号流按判决值0进行判决,获得二进制数字序列,送入下一个模块;
(7) 将已解调的二进制数字序列码元流送入解码模块Packet Decoder,去除数据中添加的内容,还原出原本的数据流;将原本的数据送入File Sink模块,将数据流写进指定位置文档并存储。
通过Osmocom Source与HackRF通信,将基带未解调信号送入流图,Signal Source和Multiply模块组合,利用余弦信号频谱以及时域相乘频域卷积的特性,移动信号频谱,实现信号的软件调频过程。通过Low Pass Filter选择频道,并利用Rational Resampler平整波形和调整采样率。利用WBFM Receive高级模块进行FM解调,得到原始音频信号,并利用Multiply Const调整音频信号音量,最后送入声卡播放。
该过程的核心模块WBFM Receive使用的是正交解调,也是一种通用频率解调方式。其他模块则旨在设置参数以及构建图形界面,方便观看频谱、调整频道和音量。
能实现文本信息无线收发的通信系统包含发送机和接收机两部分。系统模型包含一个发送机和一个接收机。需要注意的是,搭建FM接收机时选择的是FM解调方式,传输文本信息是数字通信,故对数字调制/解调方法进行对比和选择。利用Matlab对数字频率调制/解调进行仿真研究和对比,最终选定了GMSK调制/解调为实现技术,仿真结果对比如图7所示。
图7 MSK和GMSK频谱对比图
至此,可以实现文本信息收发的无线通信收发系统实验成功实现。
基于HackRF的无线通信收发系统实验项目,能够利用同一套硬件系统搭载不同的软件,分别实现FM接收和文本信息收发。学生可以对实验项目进行创新和拓展。此实验所需硬件简单,可以节约实验室资源,增添实验课程的趣味性,同时能够加深学生对无线通信收发过程的理解,提高学生对无线通信收发系统实验的兴趣和实践能力,激发学生在无线通信方面的创造性,提升学生的科研能力和综合素质。