張軒
(國(guó)家廣播電視總局無(wú)線電臺(tái)管理局,北京100045)
DRM(Digital Radio Mondiale)數(shù)字廣播較模擬廣播方式在聲音節(jié)目質(zhì)量、頻譜利用率、內(nèi)容多樣性以及接收穩(wěn)定性等方面都有顯著提升,是傳統(tǒng)廣播提質(zhì)增效的有效手段。近年來(lái),我國(guó)廣電相關(guān)部門(mén)聯(lián)合科研院所開(kāi)展了大量的DRM調(diào)幅數(shù)字廣播的研究和試驗(yàn)測(cè)試工作,推動(dòng)我國(guó)調(diào)幅廣播數(shù)字化工作取得了較好較快的發(fā)展。特別是在短波數(shù)字廣播方面,全國(guó)范圍內(nèi)已經(jīng)部署了多部大功率短波DRM數(shù)字廣播發(fā)射機(jī),開(kāi)始了面向國(guó)內(nèi)較大范圍的多個(gè)頻率的試驗(yàn)播出。為了科學(xué)評(píng)估播出效果,測(cè)試人員針對(duì)短波廣播傳輸距離遠(yuǎn)、覆蓋范圍大的技術(shù)特點(diǎn),開(kāi)發(fā)了本文介紹的基于軟件無(wú)線電技術(shù)的專(zhuān)用于DRM數(shù)字廣播的網(wǎng)絡(luò)化收測(cè)系統(tǒng)。
該DRM數(shù)字廣播收測(cè)系統(tǒng)為了實(shí)現(xiàn)較大范圍內(nèi)播出信號(hào)的實(shí)時(shí)收測(cè),采用了分布式信號(hào)收測(cè),數(shù)據(jù)實(shí)時(shí)回傳集中處理的設(shè)計(jì)思路。將收測(cè)終端部署于收測(cè)區(qū)域的多個(gè)監(jiān)測(cè)點(diǎn),對(duì)信號(hào)的各項(xiàng)技術(shù)指標(biāo)進(jìn)行測(cè)量和記錄,并實(shí)時(shí)回傳到收測(cè)系統(tǒng)服務(wù)器,在服務(wù)器端可以直觀地觀察到各播出頻率在收測(cè)區(qū)域內(nèi)的覆蓋質(zhì)量以及大致的場(chǎng)形分布,為不斷優(yōu)化覆蓋效果提供準(zhǔn)確直觀的科學(xué)依據(jù)。該系統(tǒng)主要由收測(cè)終端和系統(tǒng)服務(wù)器組成,系統(tǒng)結(jié)構(gòu)如圖1所示。
圖1 收測(cè)系統(tǒng)結(jié)構(gòu)圖
收測(cè)系統(tǒng)主要實(shí)現(xiàn)以下功能:
(1)收測(cè)終端可以作為收測(cè)設(shè)備單機(jī)使用,也可以接入網(wǎng)絡(luò)作為整個(gè)系統(tǒng)的分布式測(cè)試點(diǎn)使用。實(shí)現(xiàn)了DRM數(shù)字廣播信號(hào)的指標(biāo)參數(shù)的實(shí)時(shí)測(cè)量,包括信號(hào)強(qiáng)度、播出參數(shù)、信噪比、調(diào)制誤碼率、多普勒頻移、同步和解碼狀態(tài)等20多個(gè)參數(shù),并可實(shí)時(shí)顯示信號(hào)頻譜和星座圖,所有測(cè)量數(shù)據(jù)定時(shí)在本地進(jìn)行存儲(chǔ),歷史數(shù)據(jù)可以進(jìn)行自定義查詢(xún),并能夠以曲線圖的形式實(shí)現(xiàn)對(duì)一段時(shí)間內(nèi)的數(shù)據(jù)的圖形化展示。
(2)收測(cè)系統(tǒng)服務(wù)器可以通過(guò)網(wǎng)絡(luò)連接若干部收測(cè)終端,按照收測(cè)計(jì)劃遠(yuǎn)程操作各終端進(jìn)行工作,并同時(shí)接收各終端回傳的測(cè)量數(shù)據(jù),按照收測(cè)點(diǎn)的實(shí)際地理坐標(biāo),網(wǎng)頁(yè)程序在地圖中的相應(yīng)位置展示該點(diǎn)的實(shí)時(shí)接收狀態(tài),各點(diǎn)、各頻率、各時(shí)間點(diǎn)的收測(cè)數(shù)據(jù)存于服務(wù)器數(shù)據(jù)庫(kù),可以用于查詢(xún)比對(duì),以分析收測(cè)區(qū)域的綜合覆蓋情況。
收測(cè)終端是保證系統(tǒng)整體技術(shù)性能的關(guān)鍵,經(jīng)過(guò)調(diào)研選型,本系統(tǒng)采用WinRadio公司的WR-G33DDC軟件接收機(jī)作為信號(hào)接收和處理的核心設(shè)備,并在開(kāi)源軟件Dream的基礎(chǔ)上進(jìn)行開(kāi)發(fā)實(shí)現(xiàn)DRM信號(hào)的解碼、參數(shù)測(cè)量、數(shù)據(jù)記錄和回傳等功能。收測(cè)終端軟件運(yùn)行于Linux操作系統(tǒng)Ubuntu下,進(jìn)一步保證了設(shè)備長(zhǎng)時(shí)間運(yùn)行的穩(wěn)定性。
WR-G33DDC軟件接收機(jī)是WinRadio公司的一款高性能軟件接收機(jī),工作頻率為 9 kHz至 49.995 MHz,通過(guò)直接采樣、數(shù)字下變頻以及組件化設(shè)計(jì)等方面的優(yōu)化和升級(jí),使得這款接收機(jī)在動(dòng)態(tài)范圍、靈敏度、頻率穩(wěn)定性和調(diào)諧精確度等方面都有非常突出的表現(xiàn),另外它還可以實(shí)現(xiàn)50Mhz帶寬的實(shí)時(shí)頻譜分析儀以及4Mhz范圍內(nèi)3個(gè)頻率的同時(shí)接收和解調(diào),具有較強(qiáng)的射頻信號(hào)測(cè)量能力,滿(mǎn)足本系統(tǒng)收測(cè)功能的技術(shù)需求。圖2為WR-G33DDC軟件接收機(jī)。
圖2 WR-G33DDC軟件接收機(jī)
Dream[1]是一款基于GNU通用公共許可證的開(kāi)放源代碼工程,按照DRM信號(hào)編解碼規(guī)范,通過(guò)軟件算法完成對(duì)數(shù)字中頻信號(hào)的信號(hào)同步、OFDM解碼、信道估計(jì)、QAM解調(diào)以及業(yè)務(wù)解碼等主要功能,可以利用各種常見(jiàn)計(jì)算機(jī)平臺(tái)實(shí)現(xiàn)DRM數(shù)字廣播信號(hào)的實(shí)時(shí)解調(diào)解碼。
收測(cè)終端硬件主要由WR-G33DDC接收機(jī)和加固型移動(dòng)工作站組成,WR-G33DDC接收機(jī)集成與工作站機(jī)箱內(nèi),通過(guò)USB接口連接,為了滿(mǎn)足長(zhǎng)時(shí)間不間斷的收測(cè)需求,在射頻轉(zhuǎn)接、音頻和電源接口以及內(nèi)置電池等方面進(jìn)行重新設(shè)計(jì),工作站安裝Ubuntu操作系統(tǒng)。圖3為收測(cè)終端實(shí)物圖。
圖3 收測(cè)終端實(shí)物圖
收測(cè)終端軟件使用Python語(yǔ)言開(kāi)發(fā),主要實(shí)現(xiàn)了WR-G33DDC接收機(jī)控制、Dream信號(hào)輸入、Dream測(cè)量數(shù)據(jù)的輸出和展示以及數(shù)據(jù)的存儲(chǔ)和回傳等功能。
WR-G33DDC接收機(jī)提供了專(zhuān)用的Linux驅(qū)動(dòng)和庫(kù)文件,可以輕松實(shí)現(xiàn)接收機(jī)的各項(xiàng)配置和功能調(diào)用。Dream測(cè)量數(shù)據(jù)的輸出和展示以及數(shù)據(jù)的存儲(chǔ)和回傳通過(guò)Python+MySQL的方式實(shí)現(xiàn)。基于Dream開(kāi)發(fā)收測(cè)終端軟件,最關(guān)鍵的是需要梳理Dream軟件的程序結(jié)構(gòu)并明確數(shù)據(jù)流的傳遞路徑[2]。
Dream的信號(hào)輸入形式包括兩種,利用聲卡輸入和利用文件輸入。輸入信號(hào)格式為立體聲聲音,可以是中頻信號(hào),也可以是復(fù)基帶信號(hào)。為了將Winradio接收前端與Dream配合起來(lái)完成DRM接收功能,可以利用虛擬聲卡,將Winradio的輸出轉(zhuǎn)為Dream軟件的輸入。但是,這樣實(shí)現(xiàn)的接收系統(tǒng)涉及多個(gè)軟件,無(wú)論是設(shè)計(jì)遠(yuǎn)程控制接口還是在本地實(shí)現(xiàn)人機(jī)交互都非常復(fù)雜。因此,通過(guò)修改Dream工程,將winradio接收設(shè)備作為Dream的一種新的輸入形式,則可以大大簡(jiǎn)化接收軟件,提高接收系統(tǒng)的可靠性。
(1)Dream軟件結(jié)構(gòu)及信息輸入方法
Dream工程是基于C++開(kāi)發(fā)的,圖形界面利用QT實(shí)現(xiàn)。核心信號(hào)處理功能實(shí)現(xiàn)了DRM信號(hào)解調(diào)及解碼的全部功能?;咎幚砹鞒倘鐖D4所示。
圖4 Dream核心解調(diào)運(yùn)算流程圖
輸入的中頻信號(hào)或者基帶信號(hào)統(tǒng)一為24kHz頻帶內(nèi)的中頻信號(hào),經(jīng)過(guò)載波頻率鎖定,轉(zhuǎn)換為基帶信號(hào)后,進(jìn)入OFDM調(diào)制信號(hào)解調(diào)的基本過(guò)程。解調(diào)過(guò)程中各單元之間通過(guò)各內(nèi)存緩沖區(qū)傳遞數(shù)據(jù),隨著前一單元的緩沖區(qū)緩存足夠多的數(shù)據(jù)來(lái)啟動(dòng)下一個(gè)處理單元。
每個(gè)處理單元對(duì)應(yīng)一個(gè)解調(diào)單元類(lèi),所有處理單元類(lèi)派生于同一個(gè)基類(lèi)CModule。Dream中與接收功能相關(guān)的類(lèi)及他們之間的派生關(guān)系如圖5所示。
圖5 Dream接收過(guò)程涉及的類(lèi)及其派生關(guān)系
圖5中所示各處理單元對(duì)應(yīng)的類(lèi)都是CReceiverModul類(lèi)的子類(lèi)。他們之間通過(guò)一個(gè)或多個(gè)環(huán)形緩沖區(qū)連接,實(shí)現(xiàn)數(shù)據(jù)的傳遞。其中,作為接收過(guò)程的第一級(jí)處理單元,輸入信號(hào)部分,采用類(lèi)CReceiveData實(shí)現(xiàn)。
CReceiverModul類(lèi)作為一個(gè)模板,通過(guò)函數(shù)重載,支持了不同數(shù)量和不同數(shù)據(jù)類(lèi)型的輸入輸出緩沖區(qū)作為接口,從而適應(yīng)接收過(guò)程中不同功能的處理單元實(shí)現(xiàn)。CReceiveData類(lèi)對(duì)應(yīng)的輸入輸出緩沖區(qū)為雙精度類(lèi)型,數(shù)量各為一個(gè)。但是其輸入緩沖區(qū)在內(nèi)部初始化,不與外部其他單元發(fā)生關(guān)系。CReceiveData類(lèi)輸出緩沖區(qū)的數(shù)據(jù)來(lái)自于成員變量pSound,CSoundInterface對(duì)象指針。CSoundInterface實(shí)現(xiàn)了不同聲音(DRM信號(hào))接口。
(2)提取Dream軟件核心接收功能
Dream工程除了基本的接收功能外,還通過(guò)QT實(shí)現(xiàn)了一個(gè)窗口展示。這部分功能對(duì)于遠(yuǎn)程收側(cè)來(lái)講,是不必要的。所以,我們將核心的接收功能提取出來(lái),單獨(dú)組成一個(gè)核心接收機(jī)工程。
這個(gè)工程包括了CDRMReceiver類(lèi)的全部實(shí)現(xiàn),另外還包括有接收機(jī)配置及狀態(tài)記錄的CParameter類(lèi)。CDRMReceiver的成員函數(shù)start()實(shí)現(xiàn)了接收機(jī)的一般工作過(guò)程,因此,簡(jiǎn)單的測(cè)試可以通過(guò)實(shí)例化CDRMReceiver類(lèi),并調(diào)用其start()函數(shù)即可進(jìn)入持續(xù)解調(diào)DRM信號(hào)過(guò)程。
(3)增加內(nèi)存數(shù)據(jù)輸入形式
為了方便核心接收機(jī)靈活地連接各種接收前端,我們?cè)贑ReceiveData類(lèi)中增加了一個(gè)聲音輸入類(lèi)型接口,這個(gè)接口可以不斷獲取內(nèi)存中的某個(gè)指定的緩沖區(qū),作為CReceiveData類(lèi)的輸出數(shù)據(jù)。
為此我們從CSoundInterface類(lèi)派生出一個(gè)CBufIn子類(lèi)。與其他輸入聲音接口子類(lèi)不同,該子類(lèi)需要將輸出緩沖區(qū)提供出來(lái),以方便外部設(shè)備將數(shù)據(jù)寫(xiě)入。為了保證接收前端和DRM核心接收機(jī)之間數(shù)據(jù)傳輸不會(huì)出現(xiàn)錯(cuò)誤,我們將CBufIn子類(lèi)設(shè)置成阻塞式,即外部設(shè)備在寫(xiě)入該緩沖區(qū)時(shí),如果遇到緩沖區(qū)上溢,則立刻返回錯(cuò)誤信息。
(4)人機(jī)交互接口的考慮
核心接收機(jī)隨著輸入信號(hào)質(zhì)量的變化而處于不同的接收狀態(tài),Dream通過(guò)圖形界面提供了接收信號(hào)的同步情況,各種測(cè)量值的變化情況,并可以根據(jù)用戶(hù)的選擇對(duì)復(fù)用的不同業(yè)務(wù)進(jìn)行選擇接收。所有的這些信息在CParameter類(lèi)中都有對(duì)應(yīng)的信息存儲(chǔ)。因此,在取消QT圖形界面后,核心接收機(jī)的設(shè)置和接收情況信息獲取并不會(huì)產(chǎn)生問(wèn)題。但是CParamter類(lèi)對(duì)象在核心接收機(jī)中是CDRMReceiver類(lèi)的一個(gè)成員,因此,需要將讀取狀態(tài)和設(shè)置接收機(jī)在CDRMReceiver類(lèi)中通過(guò)增加成員函數(shù)實(shí)現(xiàn)。圖6為最終的收測(cè)終端軟件界面。
圖6 收測(cè)終端軟件界面
系統(tǒng)服務(wù)器主要實(shí)現(xiàn)對(duì)收測(cè)終端的指令下達(dá)以及終端回傳數(shù)據(jù)的收集、處理和展示等功能。服務(wù)端功能由Java語(yǔ)言和Spring框架開(kāi)發(fā)完成,主要由收測(cè)終端服務(wù)接口和實(shí)時(shí)監(jiān)測(cè)兩部分組成。
收測(cè)終端服務(wù)接口是一組HTTP服務(wù)接口,用于接收收測(cè)終端報(bào)送的數(shù)據(jù)。服務(wù)器和收測(cè)終端的通訊都是由收測(cè)終端主動(dòng)發(fā)起,收測(cè)終端定時(shí)通過(guò)HTTP協(xié)議調(diào)用服務(wù)接口進(jìn)行報(bào)活和上報(bào)各項(xiàng)收測(cè)指標(biāo)數(shù)據(jù),同時(shí)服務(wù)器在應(yīng)答中下達(dá)收測(cè)頻率、接收模式、計(jì)劃任務(wù)等基本控制指令。收測(cè)終端報(bào)送的所有數(shù)據(jù)都存儲(chǔ)在MYSQL數(shù)據(jù)庫(kù)中,以便進(jìn)一步進(jìn)行數(shù)據(jù)的分析、處理和展示。實(shí)時(shí)監(jiān)測(cè)是一個(gè)管理和監(jiān)測(cè)控制臺(tái),該控制臺(tái)能實(shí)時(shí)顯示所有是收測(cè)終端的報(bào)活狀態(tài)和報(bào)送的最新數(shù)據(jù),并能給指定的收測(cè)終端下達(dá)控制指令。實(shí)時(shí)監(jiān)測(cè)控制臺(tái)是一個(gè)網(wǎng)頁(yè)程序,用HTML、JS和CSS開(kāi)發(fā)完成,使用Websocket技術(shù)與服務(wù)器實(shí)時(shí)通訊。圖7為系統(tǒng)服務(wù)器端的程序界面。
圖7 系統(tǒng)服務(wù)器界面
數(shù)字廣播信號(hào)的特性和指標(biāo)與模擬信號(hào)有著較大差別,為了達(dá)到理想的覆蓋效果,需要積累大量的實(shí)際收測(cè)數(shù)據(jù),為發(fā)射系統(tǒng)改進(jìn)、頻率方案優(yōu)化以及覆蓋網(wǎng)絡(luò)設(shè)計(jì)等工作提供全面科學(xué)的依據(jù)。本系統(tǒng)就是為了滿(mǎn)足收測(cè)工作的實(shí)際需要而集成開(kāi)發(fā)的,基于軟件無(wú)線電技術(shù)和網(wǎng)絡(luò)化的設(shè)計(jì),使系統(tǒng)具有極強(qiáng)的靈活性、兼容性和可擴(kuò)展性,能夠根據(jù)需要不斷增加收測(cè)終端以擴(kuò)大收測(cè)范圍,通過(guò)定制開(kāi)發(fā)還可兼容其他各類(lèi)數(shù)字接收設(shè)備,可以逐步應(yīng)用于DRM短波數(shù)字廣播的大范圍收測(cè)工作中,為短波數(shù)字化工作的快速發(fā)展提供有力的技術(shù)支撐。