姚劲松
摘 要:多码组合扩频(Multi-code combined spread spectrum , MCSS),也叫做并行组合扩频,是一种高负荷、低宽带占用率、强保密性的新型扩频模式,由于其实际应用中需要复杂的硬件电路的配合,并需要专业通信模式支持,限制了其灵活性,因此如何构建MCSS通信新模式,增强其灵活性是通信设计研究的新方向。基于GNU-Radio+USRP的平台,通过多码组合扩频通信算法设计和模拟测试等手段来调试实际需求的载波频率、扩频码周期等通信所需参数,再通过实时在线测试来验证MCSS通信设计的灵活性和设计方案的实用性,是近些年来MCSS通信设计研究方向之一。
关键词:多码组合扩频;软件无线电;通信设计
引言:
软件无线电(Software Defined Radio , SDR)技术是无线电工程中的新方法,是一种新的设计理念,也是一种新的思想体系。它是通过运用通信技术把网络软件和物理电路硬件相结合,使终端用户能够利用无线网络配置自己所需要的设计方案。目的就是为了减少模拟实验、缩短方案设计开发周期、提高设备通信性能兼容性。理论上来说软件无线电平台上所有的通信模式都是互相兼容的,由于其具备开源化、系统化和模块化的的开发环境和可重构性、可拓展性的性能,因此经常被用作通信领域的开发和验证基础平台。MCSS是一种新的直接扩频方案,是在多进制扩频基础上深化改进而来。直接扩频序列的优点包含抗多径性能好、隐蔽性强、便于码分多址,这些都被MCSS继承下来,并且还拥有了更高的扩频增益和更好的频带利用率。本文结合目前软件无线电技术的发展对GNU Radio 进行认知,通过SDR基础平台搭建一个能实现MCSS通信收发系统,验证各个模块的可行性。
一、GNU Radio简介
GNU Radio是一款开源软件无线电库,是一款完全公开的免费的,当其与USRP相结合一起后就构成了一款开发平台,可以根据自我需求轻松的灵活开发无线设备应用。由于其免费开放性,并且使用成本低等特点,已经在中国及全世界广泛应用。GNU Radio应用程序平台是以Python语言为基础语言来编写的,并且处理过程是用C++语言来实现浮点扩展。这些语言都是公共的可复用开发的语言环境,因此来说后期开发者可以根据需求获得实时高效的应用环境。GNU Radio不是主要应用于仿真的平台,但可以不需要真实电路硬件,根据原有平台数据作为基础参数来从新开发信号处理算法。GNURadio提供的通用软件无线电库含有:纠错码(维特比码、R-S 码、Turbo 码)、信号处理模块(均衡器、最优滤波器、定时恢复、FFT)、调制方式(PSK、GMSK、OFDM、QAM)、调度库。因此来说GNURadio是一个非常灵活的系统平台,终端使用客户可以用C++或者Python灵活开发应用。并且GNU Radio 提供了完美的图形界面GRC,其中包括的数字处理模块资源,为学习者提供良好的工作环境,也更方便调试测试,GRC也提供多种工具配合调试使用[1]。
二、GNU Radio和USRP平台的应用
对于广泛应用的无线电平台,专家们已经在GNU Radio和USRP平台上做过很多种研究。
如调制方式和通信系统实现手段研究包括:WIMAX、OFDM、802.11、GSM、WBAN、PSK、MIMO、TETRA、LTE、蜂窝网等。
实际应用中或教学实验用包括:断层扫描、医疗监测、专用短程通信、 无线传感、边远地区通信、雷达探测、连续视频语音等传输、RFID、灾后通信恢复重建、卫星通信、GPS定位和飞行导航、地铁和汽车等高速移动通信等[2]。
通信可靠性及安全性研究包括:突发无线网络、网络攻击、秘钥协议、授权认证、网络的共存和切换、网络拥堵、干扰抑制、延时等。
专业的通信技术性研究包括: MAC层协议、路由协议、编码等
无线电认知和软件的开发包括:频谱感知、系统实现、频谱泄露、频谱接入、调频、中继协同等。
三、实验平台的系统设计
1.GNU-Radio与USRP
GNU-Radio为软件无线电提供六部分常用软件:硬件前端的接口、用户接口界面、数字信号处理(DSP)模块、C++和Python工具、通用框架、调度器。而常用的软件无线电由三部分组成:母板、子板和射频天线。如图1
2.系统总体功能设计
基于GNU-Radio+USRP的MCSS原理框图构建SDR平台设计时候,必须要考虑几个问题:环境与硬件配置選择的思考、各功能模块框架设计与功能分析的设计、模块自定义的算法编程和封装需求、GNU-Radio流图构建和组件参数设定[3]。
如图2是GNU-Radio系统流图,在系统流图中,自定义几个模块用以完成多码组合扩频系统的扩频、解扩、同步等波变换等功能。如图3是各个模块的功能说明
3.自定义模块的设计
1)扩频解扩模块
在模块设计实施过程中可以根据数据处理流程,把模块映射关系作流程表处理,如图4
在后期实际处理中,为了节约运算时间和费用,可以直接通过查表处理,方便快捷。而且使用者还可以自定义PN码长度、映射规则等模块功能,提高系统编程灵活性。
2)同步模块
试验模块设计的同步算法有定时同步算法和帧同步算法,为了满足接收端USRP的数据采集,因此在数据前端会加入同步头,从而实现同步算法和信道估计。
此次设计应用算法为定时同步与帧同步联合设计,定时同步是为了防止丢失或错位,而对过采样的信号点的数据进行最优抽样;帧同步则是常用的滑动相关法,是在信息流中为了定位有用信号的起始位置而设计算法。如图5是在同步的基础上进行的相位补偿算法流程。
在数据输入时候,当满足相关值和硬判决数目数据时候,模块就会跳出搜索状态,同时会显示相位补偿后的信息。
四、系统测试
1.仿真测试
仿真数据是通过模块显示实际信道里面的数据,是由USRP发送和并接收,再经过信道数据存储后与MATLAB仿真。
为了检测同步模块的捕获性能,在发送端连续发送信号,由于多码组合扩频的扩频倍数为N/k , 96比特信源数据扩频为1024比特,通过图6可知每相隔1024比特,出现一个很大的相关峰值即为同步点,表示帧同步正确。
在相位补偿算法验证时,图7中(a)为USRP接收到的数据星座图,(b)为相位补偿后的星座图,由于此数据经过成型滤波器,星座图还显示了各个星座点之间的跳转路径。
2.硬件实验
实验过程中,应用Ubuntu 16.04 LTS操作系统,GRC 3.7.9的GNU-Radio软件版本, C++和UHD使用常用版本就可以,RF子板载波为500MHz[4]。
图8和图9显示了设计系统平台的GUI界面,我们可以根据图形显示,直观的比较扩频前后的序列、观察发送信号波形及对比收发比特信息等信息。
如果需要测试扩频性能时,可以选取128长度的PN码作为扩频序列。从图9可以看到扩频前带宽约为10kHz ,扩频后带宽约100kHz ,信噪比和信号的功率都下降,与多码扩频的数据理论相吻合。
五、结语
本文通过对GNU Radio和USRP平台的认知,利用SDR搭建了系统设计,并简单介绍了设计实现结果,通过简单的数据验证和时序图分析,验证了系统通信的灵活性和可靠性,为后续学习者提供理论基础参考。
参考文献:
[1]王奇.基于GNURadio的软件无线电平台研究[D].哈爾滨工业大学,2011.
[2]杨培消,窦高奇,高俊,等.基于软件无线电平台的DDST传输技术研究[J]通信技术,2018 , 51(5) : 31-35.
[3]郭黎利,姜晓斐,窦峥.并行组合扩频超宽带通信系统建模与仿真哈尔滨工程大学学报,2011 , 32(4) : 499-503 .
[4] 基于软件无线电的数字化中频处理平台的硬件设计与实现[D].杭州电子科技大学,2010.