基于FPGA的數(shù)字音頻廣播系統(tǒng)信號調(diào)制系統(tǒng)的實現(xiàn)
引言
數(shù)字音頻廣播(Digital Audio Broadcasting,DAB)是廣播通信系統(tǒng)由模擬向數(shù)字化演進的產(chǎn)物。在眾多的數(shù)字音頻系統(tǒng)方案中,Eureka 147 DAB系統(tǒng)是起源最早,也是技術發(fā)展最為完善的數(shù)字音頻系統(tǒng)。本文所設計的DAB基帶信號調(diào)制系統(tǒng)依據(jù)Eureka 147系統(tǒng)的技術要求。本文采用基于模型的系統(tǒng)沒計方法,首先對DAB基帶信號調(diào)制系統(tǒng)的各個模塊進行算法層建模,之后利用Simulink平臺以及Xilinx公司提供的可編程硬件模型庫,將系統(tǒng)的算法層模型轉(zhuǎn)換為可編程硬件模型,最后利用Xilinx公司的System Generator軟件將經(jīng)過驗證的Simulink模型自動轉(zhuǎn)換為FPGA可實現(xiàn)工程。
1 DAB信號調(diào)制系統(tǒng)簡介
DAB系統(tǒng)基帶信號處理鏈可以分為三個主要模塊:第一個模塊為信源編碼系統(tǒng),負責輸入音頻及數(shù)據(jù)源文件,并按照相關標準對不同的源文件進行信源編碼,然后將編碼后的數(shù)據(jù)流復用轉(zhuǎn)換為特定的幀結構;第二個模塊對經(jīng)過信源編碼的幀數(shù)據(jù)進行時域交織、信道編碼等處理,然后將處理得到的數(shù)據(jù)復用轉(zhuǎn)換為比特流;最后一個模塊為信號調(diào)制系統(tǒng),這部分系統(tǒng)將對輸入的比特流進行正交相移鍵控調(diào)制、頻域交織、差分調(diào)制、正交頻分復用等一系列處理,并最終輸出完整的DAB基帶信號。圖1給出了DAB信號調(diào)制系統(tǒng)框圖。
2 DAB信號調(diào)制系統(tǒng)算法建模
為了能夠最終在FPGA芯片中實現(xiàn)DAB基帶架構信號調(diào)制系統(tǒng)結,首先對整個系統(tǒng)進行算法層建模,DAB信號調(diào)制系統(tǒng)結構框圖如圖2所示。DAB信號調(diào)制系統(tǒng)的算法層模型具有以下主要模塊:觸發(fā)序列檢測子系統(tǒng)、系統(tǒng)時鐘發(fā)生子系統(tǒng)、編碼QPSK映射系統(tǒng)、頻率交織子系統(tǒng)、差分調(diào)制子系統(tǒng)、OFDM子系統(tǒng)等。需要說明的是,幾乎每一個子系統(tǒng)(例如頻率交織系統(tǒng))都有自己的時鐘域,并且系統(tǒng)時鐘發(fā)生所提供的輸出遠比一個單一時鐘信號復雜。
2.1 觸發(fā)序列檢測及系統(tǒng)時鐘子系統(tǒng)
存DAB信號調(diào)制系統(tǒng)中,需要沒計一個相應的序列檢測系統(tǒng)來識別所接收到的數(shù)據(jù)流,當數(shù)據(jù)流中不包含觸發(fā)序列時,DAB信號調(diào)制系統(tǒng)處于休眠狀態(tài),系統(tǒng)輸出為零;當檢測到觸發(fā)序列時,序列檢測系統(tǒng)將發(fā)出使能信號,使DAB信號調(diào)制系統(tǒng)對觸發(fā)序列之后的數(shù)據(jù)流進行處理。
狀態(tài)機是實現(xiàn)這個觸發(fā)序列識別子系統(tǒng)的一個直觀有效的方法。由于所要設計的DAB信號調(diào)制系統(tǒng)是一個復雜的實時信號處理系統(tǒng),因此需要為系統(tǒng)建立全局時鐘來規(guī)范處理時序。還需注意,系統(tǒng)的各個子系統(tǒng)之間的處理時序必須協(xié)調(diào)一致,否則輸出端的DAB基帶信號其物理層或邏輯層的幀結構會遭到破壞,全局時鐘為各個子系統(tǒng)的協(xié)調(diào)工作提供了一個整體時序框架。同時,那些需要進行復雜處理的子系統(tǒng)(例如頻率交織子系統(tǒng)、差分調(diào)制子系統(tǒng)等)可以以全局時鐘為架構,建立自己的時鐘域以及處理控制信號。全局時鐘系統(tǒng)的建立主要依靠計數(shù)器及邏輯比較模塊的組合使用。
2.2 編碼QPSK映射子系統(tǒng)
假設DAB信號調(diào)制系統(tǒng)所接收到的比特碼流中已經(jīng)包含了塊劃分結構的信息,QPSK符號映射子系統(tǒng)將從接收到的編碼數(shù)據(jù)流中將包含塊劃分的碼元對還原,并對碼流進行QPSK調(diào)制,即將還原的碼元對映射為QPSK符號。這個子系統(tǒng)的算法較為直觀,在還原碼元對的處理中,涉及到的串并轉(zhuǎn)換利用解時分復用算法實現(xiàn),而QPSK符號的映射通過查找表實現(xiàn)。
2.3 頻率交織子系統(tǒng)
頻率交織算法將改變QPSK符號與載波之間的對應順序。實時處理要求大大增加了頻率交織子系統(tǒng)的算法模型復雜度。為了實現(xiàn)對輸入QPSK符號流的實時頻率交織處理,本文設計了雙緩沖空間算法模型,如圖3所示。
雙緩沖空間算法模型核心思想是提供兩個并行的緩沖空間。在同一OFDM符號周期(384個QPSK符號周期),一個緩沖空間接收QPSK碼流,而另一個緩沖空間處于讀入鎖定狀態(tài),并進行靜態(tài)頻率交織處理。此時系統(tǒng)的輸入端連接至前一個緩沖空間,而系統(tǒng)的輸出則由第二個緩沖空間提供。在一個OFDM符號周期結束后,兩個緩沖空間的工作狀態(tài)對調(diào),之前接收QPSK碼流的緩沖空間處于讀入鎖定狀態(tài),進行靜態(tài)頻率交織處理并提供系統(tǒng)輸出;而之前進行頻率交織的緩沖空間則處于讀入狀態(tài),并從系統(tǒng)的輸入端接收串行的QPSK碼流。
2.4 差分調(diào)制子系統(tǒng)
經(jīng)過頻率交織子系統(tǒng)的處理,經(jīng)過QPSK涮制的符號流,其在一個OFDM符號周期內(nèi)的載波對應關系發(fā)生了改變,從而使頻域的信息流得到了一定程度的無序化,提高了信號抗衰落的能力。但是,由于調(diào)制方式為QPSK,信息被調(diào)制在載波的絕對相位上,這就要求接收端的參考基準相位具有很高的穩(wěn)定性,否則可能會發(fā)生由于參考基準相位的不穩(wěn)定而導致碼信息的誤譯情況。為了進一步增強系統(tǒng)的可靠性,DAB基帶信號處理過程中引入了差分調(diào)制,將QPSK符號流轉(zhuǎn)換為DQPSK符號流,從而將信息調(diào)制在載波的相對相位信息上,提高了系統(tǒng)的穩(wěn)定性。
在差分調(diào)制系統(tǒng)算法模型中,需要一個本地存儲區(qū)存儲頻率參考符號,每一幀信號的差分調(diào)制處理流程如下。存幀頭空符號輸入的時候,系統(tǒng)不做任何處理,直接輸出空信號。在頻率參考符號周期內(nèi),系統(tǒng)的輸入端依舊是空信號,但是本地存儲區(qū)將會在系統(tǒng)的輸出端提供頻率參考符號,同時將頻率參考符號引入反饋緩沖區(qū)。當?shù)谝粋€FIC符號輸入的時候,反饋緩沖區(qū)的頻率參考符號會與之同步,對應的QPSK符號做模8相加,相應的子載波進行了差分調(diào)制,同時輸出端經(jīng)過模8相加的編碼DQPSK符號被引入反饋緩沖區(qū)。當?shù)诙€FIC符號輸入的時候,以反饋緩沖區(qū)中經(jīng)過差分調(diào)制的前一個OFDM符號為基準進行模8相加,當一幀信號的所有OFDM符號都經(jīng)過處理后,反饋緩沖區(qū)將被清零,為相位參考符號的冉次裝載做準備。圖4描述了差分調(diào)制系統(tǒng)的算法模型。
經(jīng)過差分調(diào)制得到的DQPSK符號流將通過零值插入子系統(tǒng)、OFDM子系統(tǒng)和數(shù)據(jù)成形子系統(tǒng)的處理。零值插入子系統(tǒng)的算法模型與雙緩沖區(qū)算法模型類似,OFDM子系統(tǒng)的核心算法為快速傅里葉逆變換,數(shù)據(jù)成形子系統(tǒng)將會淵整經(jīng)過處理得到的OFDM符號的數(shù)據(jù)格式并向輸出端提供最終的DAB基帶信號數(shù)據(jù)流。
3 DAB信號調(diào)制系統(tǒng)的Simulink模型
利用Xilinx公司提供的可編譯硬件模型庫,在Simulink平臺中建立硬件層DAB系統(tǒng)模型來實現(xiàn)算法層模型的功能。本節(jié)僅簡要介紹部分子系統(tǒng)的頂層Simulink模型。圖5為頻率交織子系統(tǒng)Simulink頂層模型。
整個頻率交織子系統(tǒng)Simulink模型可以劃分為兩個主體:一個是時鐘控制部分,一個是緩沖空間部分。在Simulink平臺中,使用地址可控移位寄存器(AddressableShift Register,ASR)作為緩沖空間,ASR具有三個輸入端口,一個數(shù)據(jù)輸入端,兩個控制端,可以通過兩個控制端來實現(xiàn)對緩沖區(qū)的控制。具體的說,當使能信號有效時,ASR將輸入端數(shù)據(jù)讀入,同時根據(jù)地址端口的控制信號輸出指定地址區(qū)的內(nèi)容;當使能信號無效時,ASR將不會讀入任何數(shù)據(jù),但會在輸出端輸出指定地址區(qū)的內(nèi)容。使用兩個深度為384的ASR來構成頻率交織系統(tǒng)的雙緩沖區(qū),根據(jù)圖3所示,要想獲得要求的交織輸出,需要在雙緩沖區(qū)的兩個輸出端之問恰當?shù)那袚Q。因此,使用復用模塊(Mux)來整合兩個緩沖區(qū)的輸出,從而得到頻率交織子系統(tǒng)的輸出。
圖6為差分調(diào)制系統(tǒng)的Simulink頂層模型,整個模型具有三個輸入端口,在圖中做出標記的為數(shù)據(jù)輸入端口,經(jīng)過頻率交織子系統(tǒng)處理的QPSK碼流通過這個端口輸入差分調(diào)制子系統(tǒng)。其余兩個端口輸入的為系統(tǒng)時鐘信息。其中,一個為系統(tǒng)時鐘框架中的幀同步時鐘,另一個為系統(tǒng)時鐘框架中的粗同步信號指示時鐘?;谶@兩個系統(tǒng)時鐘信號,相關的計算單元計算產(chǎn)生差分調(diào)制系統(tǒng)的本地時鐘,并進一步得到相關模塊的控制時序。
本地存儲單元為一個深度為384存儲單元的單端口只讀存儲器,本地存儲單元中存放著事先計算得到的編碼相位參考符號,在控制時序的控制下,差分調(diào)制系統(tǒng)在每幀信號的幀頭適時地從本地存儲單元中讀出相位參考符號,并將其放入反饋緩沖區(qū)中,為幀結構整合以及差分調(diào)制做準備。反饋緩沖區(qū)為一個移位寄存器,它將為輸入的幀符號流提供差分調(diào)制的基準符號差分調(diào)制將由編碼QPSK符號流的模8相加計算實現(xiàn),為了增強系統(tǒng)的穩(wěn)定性,使用加法模塊與一個查找表實現(xiàn)模8相加計算。從圖6中可以清楚地看到,經(jīng)過差分調(diào)制的碼流通過反饋回路引入復用模塊,在嚴格的時序控制下參與后續(xù)碼流的差分調(diào)制。
4 DAB信號調(diào)制系統(tǒng)的實際測試
利用Xilinx公司的System Generator軟件將在Simulink平臺中經(jīng)過仿真驗證的DAB信號調(diào)制系統(tǒng)硬件模型自動轉(zhuǎn)換為可實現(xiàn)在FPGA芯片中的硬件工程。所選用的FPGA芯片為Xilinx公司的Virtex 6系列,型號為xc6vlx240t-1fff1156。
為了測試FPGA芯片內(nèi)部所實現(xiàn)的DAB信號調(diào)制系統(tǒng),從電腦端通過PCIe向FPGA芯片傳送一個任意數(shù)據(jù)文件,作為激勵整數(shù)源,這個數(shù)據(jù)文件的起始部分包含了十六進制數(shù)據(jù)串“DEAD BEEF”,用來開啟FPGA芯片中的DAB信號調(diào)制系統(tǒng)。經(jīng)過信號調(diào)制系統(tǒng)實時處理后的信號數(shù)據(jù)被傳回電腦端,并記錄在一個名為dabout.data的數(shù)據(jù)文件中,利用MATLAB軟件打開并分析這個數(shù)據(jù)文件,驗證其所記錄的信號是否具有要求的時域幀結構及OFDM信號的頻譜特性。測試平臺的搭建如圖7所示。
通過對dabout.data文件的分析,DAB信號調(diào)制系統(tǒng)所實時處理輸出的信號具備完整的幀結構,并且其頻譜特性良好,圖8、圖9為分析得到的時域及頻域結果。
結語
本文利用基于模型沒汁的思想,通過算法層和硬件層建模,利用Simulink平臺和Xilinx公司提供的可編譯硬件模型庫,設計并在FPGA芯片中實現(xiàn)了Eureka 147數(shù)字音頻廣播基帶信號處理鏈中的信號調(diào)制系統(tǒng)。實際測試表明,所沒汁的系統(tǒng)能夠?qū)崟r處理輸入數(shù)據(jù)流,并且所提供的輸出信號滿足DAB基帶信號的時域幀結構和頻域譜特征的要求。
評論