基于软件无线电技术的DRM网络化收测系统的设计和实现

2020-10-21 02:45张轩
关键词:缓冲区接收机广播

张轩

(国家广播电视总局无线电台管理局,北京100045)

1 引言

DRM(Digital Radio Mondiale)数字广播较模拟广播方式在声音节目质量、频谱利用率、内容多样性以及接收稳定性等方面都有显著提升,是传统广播提质增效的有效手段。近年来,我国广电相关部门联合科研院所开展了大量的DRM调幅数字广播的研究和试验测试工作,推动我国调幅广播数字化工作取得了较好较快的发展。特别是在短波数字广播方面,全国范围内已经部署了多部大功率短波DRM数字广播发射机,开始了面向国内较大范围的多个频率的试验播出。为了科学评估播出效果,测试人员针对短波广播传输距离远、覆盖范围大的技术特点,开发了本文介绍的基于软件无线电技术的专用于DRM数字广播的网络化收测系统。

2 收测系统的总体结构设计和主要功能

该DRM数字广播收测系统为了实现较大范围内播出信号的实时收测,采用了分布式信号收测,数据实时回传集中处理的设计思路。将收测终端部署于收测区域的多个监测点,对信号的各项技术指标进行测量和记录,并实时回传到收测系统服务器,在服务器端可以直观地观察到各播出频率在收测区域内的覆盖质量以及大致的场形分布,为不断优化覆盖效果提供准确直观的科学依据。该系统主要由收测终端和系统服务器组成,系统结构如图1所示。

图1 收测系统结构图

收测系统主要实现以下功能:

(1)收测终端可以作为收测设备单机使用,也可以接入网络作为整个系统的分布式测试点使用。实现了DRM数字广播信号的指标参数的实时测量,包括信号强度、播出参数、信噪比、调制误码率、多普勒频移、同步和解码状态等20多个参数,并可实时显示信号频谱和星座图,所有测量数据定时在本地进行存储,历史数据可以进行自定义查询,并能够以曲线图的形式实现对一段时间内的数据的图形化展示。

(2)收测系统服务器可以通过网络连接若干部收测终端,按照收测计划远程操作各终端进行工作,并同时接收各终端回传的测量数据,按照收测点的实际地理坐标,网页程序在地图中的相应位置展示该点的实时接收状态,各点、各频率、各时间点的收测数据存于服务器数据库,可以用于查询比对,以分析收测区域的综合覆盖情况。

3 收测终端的设计和实现

收测终端是保证系统整体技术性能的关键,经过调研选型,本系统采用WinRadio公司的WR-G33DDC软件接收机作为信号接收和处理的核心设备,并在开源软件Dream的基础上进行开发实现DRM信号的解码、参数测量、数据记录和回传等功能。收测终端软件运行于Linux操作系统Ubuntu下,进一步保证了设备长时间运行的稳定性。

3.1 WR-G33DDC软件接收机和Dream软件介绍

WR-G33DDC软件接收机是WinRadio公司的一款高性能软件接收机,工作频率为 9 kHz至 49.995 MHz,通过直接采样、数字下变频以及组件化设计等方面的优化和升级,使得这款接收机在动态范围、灵敏度、频率稳定性和调谐精确度等方面都有非常突出的表现,另外它还可以实现50Mhz带宽的实时频谱分析仪以及4Mhz范围内3个频率的同时接收和解调,具有较强的射频信号测量能力,满足本系统收测功能的技术需求。图2为WR-G33DDC软件接收机。

图2 WR-G33DDC软件接收机

Dream[1]是一款基于GNU通用公共许可证的开放源代码工程,按照DRM信号编解码规范,通过软件算法完成对数字中频信号的信号同步、OFDM解码、信道估计、QAM解调以及业务解码等主要功能,可以利用各种常见计算机平台实现DRM数字广播信号的实时解调解码。

3.2 收测终端硬件实现

收测终端硬件主要由WR-G33DDC接收机和加固型移动工作站组成,WR-G33DDC接收机集成与工作站机箱内,通过USB接口连接,为了满足长时间不间断的收测需求,在射频转接、音频和电源接口以及内置电池等方面进行重新设计,工作站安装Ubuntu操作系统。图3为收测终端实物图。

图3 收测终端实物图

3.3 收测终端软件实现

收测终端软件使用Python语言开发,主要实现了WR-G33DDC接收机控制、Dream信号输入、Dream测量数据的输出和展示以及数据的存储和回传等功能。

WR-G33DDC接收机提供了专用的Linux驱动和库文件,可以轻松实现接收机的各项配置和功能调用。Dream测量数据的输出和展示以及数据的存储和回传通过Python+MySQL的方式实现。基于Dream开发收测终端软件,最关键的是需要梳理Dream软件的程序结构并明确数据流的传递路径[2]。

Dream的信号输入形式包括两种,利用声卡输入和利用文件输入。输入信号格式为立体声声音,可以是中频信号,也可以是复基带信号。为了将Winradio接收前端与Dream配合起来完成DRM接收功能,可以利用虚拟声卡,将Winradio的输出转为Dream软件的输入。但是,这样实现的接收系统涉及多个软件,无论是设计远程控制接口还是在本地实现人机交互都非常复杂。因此,通过修改Dream工程,将winradio接收设备作为Dream的一种新的输入形式,则可以大大简化接收软件,提高接收系统的可靠性。

(1)Dream软件结构及信息输入方法

Dream工程是基于C++开发的,图形界面利用QT实现。核心信号处理功能实现了DRM信号解调及解码的全部功能。基本处理流程如图4所示。

图4 Dream核心解调运算流程图

输入的中频信号或者基带信号统一为24kHz频带内的中频信号,经过载波频率锁定,转换为基带信号后,进入OFDM调制信号解调的基本过程。解调过程中各单元之间通过各内存缓冲区传递数据,随着前一单元的缓冲区缓存足够多的数据来启动下一个处理单元。

每个处理单元对应一个解调单元类,所有处理单元类派生于同一个基类CModule。Dream中与接收功能相关的类及他们之间的派生关系如图5所示。

图5 Dream接收过程涉及的类及其派生关系

图5中所示各处理单元对应的类都是CReceiverModul类的子类。他们之间通过一个或多个环形缓冲区连接,实现数据的传递。其中,作为接收过程的第一级处理单元,输入信号部分,采用类CReceiveData实现。

CReceiverModul类作为一个模板,通过函数重载,支持了不同数量和不同数据类型的输入输出缓冲区作为接口,从而适应接收过程中不同功能的处理单元实现。CReceiveData类对应的输入输出缓冲区为双精度类型,数量各为一个。但是其输入缓冲区在内部初始化,不与外部其他单元发生关系。CReceiveData类输出缓冲区的数据来自于成员变量pSound,CSoundInterface对象指针。CSoundInterface实现了不同声音(DRM信号)接口。

(2)提取Dream软件核心接收功能

Dream工程除了基本的接收功能外,还通过QT实现了一个窗口展示。这部分功能对于远程收侧来讲,是不必要的。所以,我们将核心的接收功能提取出来,单独组成一个核心接收机工程。

这个工程包括了CDRMReceiver类的全部实现,另外还包括有接收机配置及状态记录的CParameter类。CDRMReceiver的成员函数start()实现了接收机的一般工作过程,因此,简单的测试可以通过实例化CDRMReceiver类,并调用其start()函数即可进入持续解调DRM信号过程。

(3)增加内存数据输入形式

为了方便核心接收机灵活地连接各种接收前端,我们在CReceiveData类中增加了一个声音输入类型接口,这个接口可以不断获取内存中的某个指定的缓冲区,作为CReceiveData类的输出数据。

为此我们从CSoundInterface类派生出一个CBufIn子类。与其他输入声音接口子类不同,该子类需要将输出缓冲区提供出来,以方便外部设备将数据写入。为了保证接收前端和DRM核心接收机之间数据传输不会出现错误,我们将CBufIn子类设置成阻塞式,即外部设备在写入该缓冲区时,如果遇到缓冲区上溢,则立刻返回错误信息。

(4)人机交互接口的考虑

核心接收机随着输入信号质量的变化而处于不同的接收状态,Dream通过图形界面提供了接收信号的同步情况,各种测量值的变化情况,并可以根据用户的选择对复用的不同业务进行选择接收。所有的这些信息在CParameter类中都有对应的信息存储。因此,在取消QT图形界面后,核心接收机的设置和接收情况信息获取并不会产生问题。但是CParamter类对象在核心接收机中是CDRMReceiver类的一个成员,因此,需要将读取状态和设置接收机在CDRMReceiver类中通过增加成员函数实现。图6为最终的收测终端软件界面。

图6 收测终端软件界面

4 系统服务器端的设计和实现

系统服务器主要实现对收测终端的指令下达以及终端回传数据的收集、处理和展示等功能。服务端功能由Java语言和Spring框架开发完成,主要由收测终端服务接口和实时监测两部分组成。

收测终端服务接口是一组HTTP服务接口,用于接收收测终端报送的数据。服务器和收测终端的通讯都是由收测终端主动发起,收测终端定时通过HTTP协议调用服务接口进行报活和上报各项收测指标数据,同时服务器在应答中下达收测频率、接收模式、计划任务等基本控制指令。收测终端报送的所有数据都存储在MYSQL数据库中,以便进一步进行数据的分析、处理和展示。实时监测是一个管理和监测控制台,该控制台能实时显示所有是收测终端的报活状态和报送的最新数据,并能给指定的收测终端下达控制指令。实时监测控制台是一个网页程序,用HTML、JS和CSS开发完成,使用Websocket技术与服务器实时通讯。图7为系统服务器端的程序界面。

图7 系统服务器界面

5 结束语

数字广播信号的特性和指标与模拟信号有着较大差别,为了达到理想的覆盖效果,需要积累大量的实际收测数据,为发射系统改进、频率方案优化以及覆盖网络设计等工作提供全面科学的依据。本系统就是为了满足收测工作的实际需要而集成开发的,基于软件无线电技术和网络化的设计,使系统具有极强的灵活性、兼容性和可扩展性,能够根据需要不断增加收测终端以扩大收测范围,通过定制开发还可兼容其他各类数字接收设备,可以逐步应用于DRM短波数字广播的大范围收测工作中,为短波数字化工作的快速发展提供有力的技术支撑。

猜你喜欢
缓冲区接收机广播
GNSS接收机FLASHADC中比较器的设计
一种宽带低功耗四合一接收机设计
串行连续生产线的可用度与缓冲库存控制研究*
一种面向ADS-B的RNSS/RDSS双模接收机设计
广播发射设备中平衡输入与不平衡输入的转换
基于ARC的闪存数据库缓冲区算法①
周三广播电视
周二广播电视
数字接收机故障维修与维护
初涉缓冲区