基于FPGA的數字音頻廣播信道編碼器的實(shí)現
摘要:介紹了數字音頻廣播(DAB)信道編碼的原理和關(guān)鍵技術(shù),并應用單片FLEX10K100系列FPGA實(shí)現DAB信道編碼器。
本文引用地址:http://dyxdggzs.com/article/80751.htm關(guān)鍵詞:數字音頻廣播(DAB) 信道編碼 FPGA
1 數字音頻廣播(DAB)發(fā)射系統及信道編碼器
DAB是繼調幅和調頻廣播之后的第三代廣播體系。與模擬廣播相比它不僅可以提供高質(zhì)量的聲音信號(CD音質(zhì)),也可以提供數據、圖像等多種其他附加服務(wù)。它可以保護在高速移動(dòng)接收時(shí)的聲音質(zhì)量,具有很強的抗干擾能力,在同要瓣頻帶寬度和環(huán)境下,DAB可以提供高質(zhì)量的多種多樣的廣播節目。

DAB的發(fā)射系統主要包括處于節目提供商位置的信源編碼器,處于廣播臺演室位置的復接器和處于發(fā)射機內部的COFDM(編碼正交頻分復用)編碼調制器。其中COFDM可分為信道編碼、OFDM調和數字上變頻。本文主要討論使用FLEX10K系列FPGA來(lái)實(shí)現信道編碼的功能。
DAB的信道編碼部分主要包括能量擴散、卷積編碼和刪除、時(shí)間交織等,輸入為來(lái)自復接器的ETI(業(yè)務(wù)群傳輸接口Ensemble Transport Interface)幀,輸出為DAB傳輸幀。能量擴散的作用是通過(guò)對二進(jìn)制序列的隨機化處理使頻譜擴散,減少連'0'和連'1'的出現,以保護接收端比特按時(shí)恢復。對于信號的傳輸來(lái)說(shuō),由于卷積編程引入了大量的冗余比特,因此DAB的信道編碼采用刪除型的卷積編碼。DAB發(fā)射機使用時(shí)間交織技術(shù)來(lái)糾正發(fā)突發(fā)笥的塊差錯。它按照既定的規則打亂數據排列順序,使得信道中成塊的錯誤分散在不同幀中,再結合卷積編碼的點(diǎn)糾錯能力,可以使按收機能夠糾正移動(dòng)傳輸中經(jīng)常出現的塊差錯。


2 FLEX10K系列特點(diǎn)
FLEX10K系列是ALTERA公司生產(chǎn)的一種嵌入式可編程邏輯器件(PLD-Programmable Logic DEVICE)。FLEX(可更改邏輯單元陣列)采用可重構的CMOS SRAM單元,其結構集成了實(shí)現通用多功能門(mén)陣列所需的全部特征。FLEX10K系列器件容量可達25萬(wàn)門(mén),能夠高速度、高性能地將整個(gè)數字系統集成于單個(gè)器件中。FLEX10K系列的高密度和易于在設計中實(shí)現復雜寵函數與存儲器,使其可以適應系統設計的要求。

FLEX10K器件可通過(guò)ALTERA的MAX PLUS II系統來(lái)開(kāi)發(fā),它具有強大的功能,支持原理圖、硬件描述語(yǔ)言(VHDL,AHDL,verilogHDL)等多種輸入方式。用FPGA來(lái)實(shí)現DAB信道編碼器,大大簡(jiǎn)化了系統結構。而且VHDL描述語(yǔ)言的使用縮短了開(kāi)發(fā)時(shí)間,增強了系統的可讀性,便于后續產(chǎn)品的升級。如果想改變軟件設計,只要修改程序、重新編譯、下載即可,十分方便。即使要改變硬件設計,也可通過(guò)重新分配FPGA管理實(shí)現,不需大規模改變原有的硬件。從信道編碼器的功能特點(diǎn)看,大部分是比特操作。如果使用DSP或單睡機,每個(gè)指令周期只能處理一個(gè)字節中的一比特,效率相當低。而FPGA可以對多個(gè)比特同時(shí)并行操作,大大提高了算是效率。由于FPGA的最高工作頻率在100MHZ以上,所以可以通過(guò)提高FPGA的工作頻率來(lái)提高其算是數據的速度。
本設計中所用的FLEX10K100A FPGA是FLEX10K系列中的一種,它的等效門(mén)數為10萬(wàn)門(mén),內建24K字節RAM,可用的I/O管腳達到289個(gè),核心電壓3.3V,支持5V輸入輸出。設計中采用原理圖和VHDL語(yǔ)言混合輸入的方法。

3 用FPGA實(shí)現信道編碼功能
DAB信道編碼技術(shù)包括ETI解復接、能量擴散、卷積編碼和刪除和時(shí)間交織。其中ETI解得復接和系統控制由一片DSP ADSP2181來(lái)實(shí)現,核心部分能量擴散、卷積編碼刪除時(shí)間交織全部由一片FLEX10K100A實(shí)現。一個(gè)ETI幀中主要包括幀頭信息(本幀及幀內各子通道的相關(guān)信息)和主業(yè)務(wù)流數據MST(包括音頻數據碼流和快速數據通道FIC)。圖1是信道編碼的硬件實(shí)現示意圖。來(lái)自復接器的碼流(ETI)經(jīng)E1接口板,解出ETI幀,存入輸入雙口RAM緩沖區。在每幀(24ms)開(kāi)始時(shí),控制器2181從輸入緩沖區讀入ETI幀并根據幀頭信息計算得一組控制矢量,并將其寫(xiě)回到輸入緩沖區,然后啟動(dòng)FPGA。FPGA首先讀入控制矢量,然后根據其描述讀入ETI幀中MST域的各子通道數據進(jìn)行能量擴散、卷積編碼和刪除、時(shí)間交織的處理,結果輸出到輸出緩沖區給OFDM調制器。其中SRAM交織緩沖區是用來(lái)存放用于交織的16幀數據的。

信道編碼的控制器由ADSP2181實(shí)現,控制整個(gè)信道編碼過(guò)程的全部動(dòng)作,其中主要包括啟動(dòng)編碼模塊FPGA開(kāi)始編碼、控制FPGA從外部存儲器的相應地址讀取數據、為編碼模塊提供進(jìn)行卷積編碼所需的全部參數、為編碼后數據提供存儲地址等。
下面詳細介紹用FPGA實(shí)現信道編碼的過(guò)程。當DSP計算完控制信息后,啟動(dòng)FPGA。FPGA首先讀入計算所得控制矢量的前幾位幀特征字節,根據這幾個(gè)字節確定了包括FIC通道在內的子通道個(gè)數和輸入數據的起始地址,然后分別讀入各子通道特征字節,并根據其描述對各子通道進(jìn)行處理。
3.1 能量擴散
能量擴散采用原理圖輸入的方法,由9個(gè)D觸發(fā)器和邏輯門(mén)實(shí)現。在FPGA中,首先按字節讀入數據,然后進(jìn)行并/串轉換,將串行輸入碼流與生成多項式為P(x)=x9+x5+1、初始狀態(tài)全'1'的偽隨機比特序列(PRBS)模二相加(處理的順序是串行輸入的第0比特與PRBS序列的第0比特異或),就得到能量擴散的輸出碼流。將輸出的串行碼流送入卷積編碼器。圖2是能量擴散的實(shí)現原理圖。
3.2 卷積編碼
卷積編碼器也是采用原理圖輸入的方法,如圖3所示,通過(guò)移位寄存器和其不同抽頭的組合來(lái)實(shí)現的。寄存器的初始化狀態(tài)為全'0',每輸入一個(gè)比特會(huì )產(chǎn)生4個(gè)比特會(huì )產(chǎn)生。當有效數據送完時(shí),還要繼續送入6個(gè)'0'以使全部寄存器清零。若輸入長(cháng)度I的序列


3.3 卷積編碼的刪除
卷積編碼輸出的前4I個(gè)比特被分成連續的比特塊,每塊128比特。每塊又被分為32比特的4個(gè)子塊,這4個(gè)子塊使用同一個(gè)刪除模式,刪除模式由PI決定,表1是刪除模式表的部分。卷積編碼的輸出與刪除模式表中的刪除矢量V相與,剩下的比特壓入一個(gè)堆棧中。當16比特的堆棧中堆積的比特數>8時(shí),編碼器將刪除結果按字節輸出到16幀長(cháng)度的交織緩沖區暫存。原始數據的讀入、能量擴散、卷積編碼和刪除是同時(shí)進(jìn)行的。當一個(gè)子通道(或FIC)的數據讀完時(shí),能量擴散也同時(shí)停止,但編碼和刪除并不停止,還要進(jìn)行最后24比特的編碼和刪除,這24比特使用的刪除矢量VT=(1100 1100 1100 1100 1100 1100)進(jìn)行刪除。對于有填充字節(Pad)的還要加入填充,最后輸出一個(gè)字節。 PI是根據輸入碼流的比特率、保護級(P)和保護方式(EEP/UEP)決定的。在UEP(非平衡差錯保護)中,把整個(gè)幀的碼流(某個(gè)子通道)分為3或4塊(L1~L4),然后查表即得工程師上應塊的PI和填充比特數。表2是此保護級模式表的一部分。對于EEP(平衡差錯保護),有A和B兩類(lèi)保護模式表,分別對應輸入碼率是8Kbits/s的整數倍和32Kbits/s的整數倍,每幀中一個(gè)子通道分為2塊。一般的刪除處理是通過(guò)查表進(jìn)行的,而這里查表的工作由控制器完成,查表結果存在控制矢量字節中。FPGA可直接根據結果編碼,有效降低了FPGA的復雜度。

3.4 時(shí)間交織
交織開(kāi)始時(shí),FPGA已經(jīng)卷積編碼刪除的結果順序地寫(xiě)入交織緩沖區,然后按照交織規則亂序地讀出數據,完成交織深度為16幀的時(shí)間交織。這個(gè)緩沖區是一片容量128K字節的SRAM,分為16個(gè)8K的塊,每塊用來(lái)存儲一幀的卷積編碼結果。SRAM的地址組織如圖4(括號內是各幀的起始地址)。表3所示的交織規則對應于128K的交織緩沖區,其中r是輸入幀的序號,r'是輸出幀的序號,i表示比特的序號,R(i/16)表示i除以16的余數,r'(r,i)表示輸出第r'幀第I比特應該對應輸出第r幀第i比特。Ram_addr表示交織緩沖區此幀的起始地址。
為符號DAB發(fā)射系統下級OFDM調制器需要的碼元格式,交織后的結果按字節寫(xiě)入輸出雙口RAM緩沖區時(shí)要符合傳輸幀的數據結構。根據DAB傳輸幀的要求,這里的輸出緩沖區可容納4個(gè)邏輯幀的數據,其片選邏輯也是每96ms變化一次,輸出RAM緩沖區內的數據結構如圖5。

如上所述,DAB信道編碼器可由單片FLEX10K系列FPGA(ADSP2181做控制器)完全實(shí)現。這一方法易于實(shí)現、工作穩定、速度快、易于升級,可以作為今后集成專(zhuān)用ASIC芯片研制的核心技術(shù)基礎。
評論