DRM开源软件接收系统

2010-06-22 07:05石东新李朝晖
关键词:声卡导频解码

石东新,李朝晖

(中国传媒大学 信息工程学院,北京 100024)

DRM开源软件接收系统

石东新,李朝晖

(中国传媒大学 信息工程学院,北京 100024)

DRM可以在带声卡的PC机上实现实时软件接收。本文在介绍基于PC机的 DRM软件接收机系统之后,分析了 DRM接收软件现状,重点论述了Dream和Diorama两款DRM开接收软件的工作原理和特点。

数字音频广播;软件接收机;Dream;Diorama

1 引言

由 DRM(Digital Radio Mondiale:数字声音广播)联盟和 ETSI(European Telecommunications Standards Institute)提出的 DRM,在兼容当前模拟AM调幅广播频率和带宽的前提下,实现了长、中、短波的数字声音和数据广播系统。虽然我国并没有启动 DRM的意向,但是就国际市场和长远来看,DRM将取代当前 30MHz以内的模拟广播方式。

DRM采用 COFDM(Coded Orthogonal Frequency Division Multiplexing)方式和现代信源编码技术,可以为 10K带宽内提供很好的音质。PC(Personal Computer)和声卡的 48KHz的音频信号采样功能,保证了 DRM软件实现的可能性。软件接收需配备一个模拟接收前端,用来将 DRM射频信号下变换到中频,再送入 PC机的音频输入端。PC声卡取样DRM模拟中频信号,在 PC上完成信号的解调和音频解码,然后播放 DRM广播。

软件接收系统易安装、可升级、价格低廉、操作简单,易于实现。可以灵活的尽可能提供数字信号处理的各种手段。软件接收机很容易就可以作为DRM信号的测试工具,可以方便地记录、测量和分析相关数据。

下面,本文介绍了 DRM软件接收系统及现状,并重点分析了其中两种开源接收软件的实现原理和特点。

2 基于 PC的软件接收系统

图1 DRM软件接收系统

DRM射频信号首先经一个合适的前端进行接收。前端将射频信号自天线下变换到中频,典型的是 12KHz。12KHz便于被 PC的声卡取样数字化。许多商业短波收音机,一般都有详细的操作手册修改频率下变换电路以得到正确频率范围内的信号。OFDM接收的下变换尤其要求低相位噪声的振荡电路。

然后,中频信号经声卡输入给 PC机进行处理。声卡实现采样和模数/数模转换。通常,声卡的采样率在 44.1KHz和 48KHz。 48KHz要更适合一些,因为采样周期是 DRM标准规定的基本时间周期 T的1/4,可以简化后续信号处过程以相同的方式处理所有的鲁棒模式,而仅仅改变每一音频采样符号的数量和调整 DFT的尺寸,就可以同时保证子载波的正交特性。不同的源采样速率能够通过后面的采样率转换来获得,并可以用多相滤波器进行有效的滤波。但是,某些声卡会在内部以某一速率重新采样,这样对自然音频信号是最优的,但是却会降低 DRM信号在抖动和相位噪声方面的性能,使得不能进一步进行 OFDM解码。

另外,现有桌面基本都是多任务操作系统,如Windows,Linux等,都不是实时操作系统。所以,并不能保证 DRM软件在所有情况下都能做到连续操作,然而实际上所有软件基本都是能在现今的 PC机上得以精确的运行。

3 DRM接收软件现状

目前流行的基于 PC的 DRM接收软件有四种:Fraunhofer Software Rad io、 DRM Software Radio、Dream和 Diorama。Fraunhofer Software Radio和DRM Software Radio,都由德国弗劳恩霍夫集成电路研究所 (Fraunhofer IIS)开发,属于商业软件,分别是专业版和普通版。Dream是德国 Darmstadt大学Volker Fischer和 Alexandre Kurpier开发的 C++开源接收软件。Diorama是德国 Kaiserslautern大学通信学院开发的基于 Matlab的开源接收软件。

Fraunhofer Software Radio是目前公认的性能最好的 DRM接收软件[7],不仅具有基本的 DRM接收功能,还具有监测、记录以及多组信号分析的能力。Fraunhofer IIS为 DRM软件接收系统配备了专用商用接收前端,将射频信号下变频为固定的 12KHz中频信号,对中频信号要求严格。

DRM Software Radio是基于 Fraunhofer Software Radio引擎仅有 DRM基本接收功能的简化版本,由Fraunhofer IIS提供给其它厂商,如 WiNRADiO等,以便其配售接收前端使用。根据厂商的产品定位,DRM Software Radio的衍生版本又分若干种[7]。

Dream基于 C++,源代码开放,有 Windows和Linux两个平台版本。编译环境需要 Visual C++V6.0的 Service Pack 4以上的支持,另外还需要Trolltech QT2.x、Qwt(Qt Widgets for Technical Applications)、FFTW(Fastest Fourier Transform in the West)和 FAAD2的支持。Qt是挪威 Trolltech公司出品的 C++图形用户界面库,具有广泛的跨平台能力。Qwt是基于 Qt开发的第三方插件,用于 2D的功能强大的绘图工具,开发简单。FFTW是Dream使用的快速傅立叶变换对算法,对 DRM信号进行必要的分析。FAAD2是开源 MPEG4和MPEG2的 AAC(Advanced Audio Coding)解码器,用于 Dream进行音频解码。另外,DREAM容许的中频范围较前二者宽。

Diorama用 Matlab编写,仅有一小部分算法实现使用 C语言编写,以便优化算法提高执行速率,并最终达到实时接收。Diorama也支持 Windows和Linux两个平台,运行需要 Matlab release 10以上的环境支持。Windows环境下,还需要 Visual C++V6.0的 Service Pack 5以上版本以及 DirectX5.0以上版本的支持。Diorama一词来源于“穿越(through)”和“看(look)”的希腊语“dia”和“horan”。软件的首要开发目的是为了教学,让用户“看穿(look through)”DRM接收的每一步工作,了解运行的细节。因此,软件 Diorama利用 Matlab提供的高性能语言和交互式环境,以及高效执行计算密集运算的性能,代码调试方便,具备在线计算和可视化的界面的功能。Diorama执行逐块的全局的循环,每一块对应于 DRM 400ms的一帧。Diorama借助 Matlab的优势,能够生成最为丰富的图形数据,非常有利于对算法的研究和教学使用

4 DREAM软件接收系统

DREAM软件接收机的整体结构如图 2所示,各模块完成的主要功能及实现方法如下:

图2 DRM同步系统实现流程图

首先,12kHz的中频信号进入声卡 A/D模块后进行 48kHz取样变为数字信号。为了解决 A/D取样频率稳定度不高带来的影响,软件接收机还需作取样时钟同步,对变换后的数字信号进行取样时钟校正。

然后,完成 DRM即 OFDM系统的最重要的工作:同步。为了保证接收同步,DRM提供了频率、时间以及增益导频三种导频信号,用以实现模式识别、频率/时间同步、帧同步和取样时钟同步等。同步过程分为两个阶段:捕获和跟踪。捕获过程主要是完成粗同步,如频率/时间粗同步,以及模式检测和帧同步。捕获的具体实现步骤为:先进行频偏捕获,得到接收信号的整数倍频偏,然后通过保护间隔的相关性实现时间粗同步和模式检测。待确定信号的传输模式后,找到每个码元的起始位置,开窗去除保护间隔,然后用 FFT实现 OFDM解调,再利用 DRM系统中的时间导频或增益导频找到每个传输帧的开始,实现帧同步。跟踪过程是在捕获成功以后,保持更加精细的同步,主要完成频率/时间细同步以及取样时钟的同步。频率细同步和取样时钟同步可以利用相邻码元的频率导频实现;然后进行时间轴和频率轴上的信道均衡,并利用均衡完之后的信号实现码元细同步。

接着,就可以对 OFDM符号进行解调。用 FFT直接对去除保护间隔的 DRM码元信号从时域变换到频域。由于 DRM系统中规定了 4种模式,不同模式的 FFT的点数不同,且不都是基 2的,因此 Dream采用了特殊的 FFT算法。

DRM接收机系统采用相干解调的方式,为了完成接收的自适应,必须要实现信道的均衡。信道估计利用在时域和频域均匀分布的增益导频通过不同的插值方法得到每个子载波上的信道冲激响应,然后利用冲激响应完成信道均衡。信道均衡的好坏,很大程度上决定了 DRM接收机的性能。

随后,就要实现信号 QAM解调和信道解码。DRM系统采用不同保护级别的多层编码方式,同时调制方式对于不同的数据流(FAC、SDC、MSC)也不同,对于主要的 MSC数据流还可以采用不同的映射方法。在解码端为了降低误码率,采用了软判决的迭代维特比译码算法来实现信道解码。

最后,完成音频流和数据流的解码。DRM信号中可以同时传输数据和声音信号,在解码端可以分别进行解码。

Dream为了解决数据的传递和信息的交互,定义了 3个重要的基类 CBuffer、CModule和CParameter。CBuffer类是系统的数据缓冲类,各处理模块的输入和输出的数据都存放在各自的缓冲区派生类中。CModule类是一个控制数据动态传递的基类,各个模块都继承该类来完成它们的数据输入和输出的控制。CParameter类是一个全局类,存储了和 DRM信号有关的所有参数。

另外需提及的是,Dream接收软件在完成同步前输入的信号数据不会被浪费掉,在同步之后,经过缓冲,仍然被成功的解码输出。

5 Diorama软件接收系统

Diorama软件接收机的整体结构如图 3所示,OFDM数字通信系统的关键技术有限,其接收过程同 DREAM软件接收无本质差异,其详细过程不再介绍。

图3 Diorama同步和均衡的处理流程

这里给出一些 Diorama采用的特殊处理。为了尽可能输出解码的音频流,Diorama在解码数据的一般跟踪处理过程中,对捕获的输入采样值进行再生,这需要 CPU的性能足以胜任同等时间内完成 2倍的工作。原则上,软件开始运行后,每一完整的OFDM采样符号都被用于数据的解码,并且程序的延时仅由系统的参数限制,如,交织深度,逻辑帧的大小等。切换延时可以在信道解码器中通过前向纠错编码的能力进一步减小。

为了做信道估计和均衡,Diorama实现了文献[5]给出的实值二维维纳滤波器。系数经预先计算,在多相方式下使用矩阵乘法进行滤波。也就是说,OFDM符号在时间上相关的分散导频星座图,对应于独立预先计算的维纳滤波器矩阵。

Diorama的时间同步根据信道估计的脉冲响应,去除保护间隔和调整采样率。由于不能控制 ADC和DAC的时钟,就不仅要同步 OFDM输入信号,还要同步解码后的数字音频信号。在 DRM中,广播音频流同步于 OFDM符号定时。所以,为了避免音频缓冲(其由 ADC/DAC硬件时钟决定)的上溢或下溢,解码音频采样值在模拟音频产生之前通过一个重采样阶段。

另外,Diorama同 Dream一样,采用了第三方的AAC解码器 FAAD2接口。Diorama还采用了 zlib库用于文本解压,并且支持新闻服务日志的解码,允许用户以主题词方式浏览文本新闻。

Diorama除了可以通过 PC声卡播放解码的AAC音频流,还可以在任何目录下保存数据文件。这样就可用网页、幻灯片或新闻服务日志的方式浏览接收文件。由于采用 Matlab编写,Diorama可以随时暂停执行过程查看解码的运行状态。有实验表明,Diorama在临界条件下接收 BBC 1296KHz的节目时,收听效果比 Dream还要好一些[6]。DRM信号和接收状态等最重要的参数都显示在信号信息窗口。输入频谱、同步变量、信道估计、星座图以及每一载波的 SNR业都可在线显示。

6 结论

DRM接收软件为 DRM的接收实现引入了新的方式和优势。Dream和 Diorama作为开源的 DRM接收软件,都便于研究者进行算法的研究和功能的改进。Dream采用 C++结构,可编译成独立的可执行文件,有利于进行产品级的二次开发。Diorama则基于 Matlab,能做到实时运行,在系统负载方面堪比其它 DRM接收软件,且独具随时暂停调试查看的功能,非常有利于教学。商业软件,一般来说性能更加良好,并且有质量服务保证。但开源的代码无疑是研究者最好的选择,代码开放易修改,功能可自主扩展,便于算法的研究验证,有利于 DRM系统和数字通信系统的学习和教学使用。DRM开源接收软件系统的出现,使开发者、研究者以及用户三方面得利,对 DRM技术以及 OFDM数字通信系统的研究和发展都将起到重要的推动作用。

[1] Torsten Schorr,Andreas Dittrich,Wolfgang Sauer-Greff,Ralph Urbansky.Diorama-An Open Source Digital Radio Mondiale(DRM)Receiver using MATLAB[EB/OL].http://fh-kl.de/~drm/berichte_vortraege/sonstige/IEEE_SP2005_Diorama.pdf.

[2] 强辉,董在望.DRM软件接收机研究[J].广播与电视技术,2005,32(11):26-30.

[3] 冯锡增.如何准备一台 DRM接收机 [EB/OL].http://www.ratiog.org/FXZ.htm.

[4] European Telecommunication Standard Institute(ETSI),Sophia Antipolis Cedex,France,Digital Radio Mondiale(DRM);System Specification,ETSIES 201 980 V2.1.1[S].2004.

[5] Höher P,Kaiser S,Robertson P.Two-Dimensional Pilot-Symbol-Aided Channel Estimation By Wiener Filtering[C].in Proc.Int.Conf.Acoust.,Speech and Signal Processing,Munich,Germany,1997.1845—1848.

[6] Ties Bos.RXAMADRM-A linux program for digital sstv[EB/OL].http://www.pa0mbo.nl/ties/public_html/hamradio/rxamadrm/rxamadrm.pdf

[7] http://www.winradio.com[EB/OL].

[8] http://sourceforge.net/apps/mediawiki/drm/index.php?title=Main_Page[EB/OL].

[9] http://www.drm.org/[EB/OL].

[10] http://nt.eit.uni-kl.de/forschung/diorama/[EB/OL].

Open Source Source Digital Radio Mondiale(DRM)Software Receiver System

SHIDong-xin,LIZhao-hui
(Communication University of China,Beijing 100024,China)

DRM may realize the real-time p lay on PCwith sound card.In this paper,we introduce the PC-based DRM software receiver system,then present DRM software receivers are discussed,at last we mainly demonstrate the principle and feature of two DRM open source software--Dream and Diorama.

DRM;software receiver;dream;diorama

TN248.4

A

1673-4793(2010)01-0064-05

2009-10-22

石东新(1976-),男(汉族),新疆人 .中国传媒大学讲师.Email:sdx@cuc.edu.cn

(责任编辑

:王谦)

猜你喜欢
声卡导频解码
《解码万吨站》
基于二进制编码多导频搜索的导频设计
解码eUCP2.0
NAD C368解码/放大器一体机
Quad(国都)Vena解码/放大器一体机
基于导频的OFDM信道估计技术
TD—LTE系统导频模式技术研究
短波OFDM系统中基于导频的信道估计的研究*
提升笔记本电脑音质
聊天室背景放音乐 为啥我的本本就不行?