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