石東新,李朝暉
(中國傳媒大學 信息工程學院,北京 100024)
DRM開源軟件接收系統
石東新,李朝暉
(中國傳媒大學 信息工程學院,北京 100024)
DRM可以在帶聲卡的PC機上實現實時軟件接收。本文在介紹基于PC機的 DRM軟件接收機系統之后,分析了 DRM接收軟件現狀,重點論述了Dream和Diorama兩款DRM開接收軟件的工作原理和特點。
數字音頻廣播;軟件接收機;Dream;Diorama
由 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軟件接收系統及現狀,并重點分析了其中兩種開源接收軟件的實現原理和特點。

圖1 DRM軟件接收系統
DRM射頻信號首先經一個合適的前端進行接收。前端將射頻信號自天線下變換到中頻,典型的是 12KHz。12KHz便于被 PC的聲卡取樣數字化。許多商業短波收音機,一般都有詳細的操作手冊修改頻率下變換電路以得到正確頻率范圍內的信號。OFDM接收的下變換尤其要求低相位噪聲的振蕩電路。
然后,中頻信號經聲卡輸入給 PC機進行處理。聲卡實現采樣和模數/數模轉換。通常,聲卡的采樣率在 44.1KHz和 48KHz。 48KHz要更適合一些,因為采樣周期是 DRM標準規定的基本時間周期 T的1/4,可以簡化后續信號處過程以相同的方式處理所有的魯棒模式,而僅僅改變每一音頻采樣符號的數量和調整 DFT的尺寸,就可以同時保證子載波的正交特性。不同的源采樣速率能夠通過后面的采樣率轉換來獲得,并可以用多相濾波器進行有效的濾波。但是,某些聲卡會在內部以某一速率重新采樣,這樣對自然音頻信號是最優的,但是卻會降低 DRM信號在抖動和相位噪聲方面的性能,使得不能進一步進行 OFDM解碼。
另外,現有桌面基本都是多任務操作系統,如Windows,Linux等,都不是實時操作系統。所以,并不能保證 DRM軟件在所有情況下都能做到連續操作,然而實際上所有軟件基本都是能在現今的 PC機上得以精確的運行。
目前流行的基于 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的優勢,能夠生成最為豐富的圖形數據,非常有利于對算法的研究和教學使用
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接收軟件在完成同步前輸入的信號數據不會被浪費掉,在同步之后,經過緩沖,仍然被成功的解碼輸出。
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業都可在線顯示。
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
(責任編輯
:王謙)