《電子技術(shù)應用》
您所在的位置:首頁 > 可編程邏輯 > 業(yè)界動態(tài) > 基于FPGA的數(shù)字音頻廣播信道編碼器的實現(xiàn)

基于FPGA的數(shù)字音頻廣播信道編碼器的實現(xiàn)

2009-01-08
作者:張 蓉1, 曲 晶1, 王志華2

  摘? 要: 介紹了數(shù)字音頻廣播(DAB)信道編碼的原理和關(guān)鍵技術(shù),并應用單片F(xiàn)LEX10K100系列FPGA實現(xiàn)DAB信道編碼器。

  關(guān)鍵詞: 數(shù)字音頻廣播(DAB)? 信道編碼? FPGA

?

1 數(shù)字音頻廣播(DAB)發(fā)射系統(tǒng)及信道編碼器

  DAB是繼調(diào)幅和調(diào)頻廣播之后的第三代廣播體系。與模擬廣播相比它不僅可以提供高質(zhì)量的聲音信號(CD音質(zhì)),也可以提供數(shù)據(jù)、圖像等多種其他附加服務。它可以保證在高速移動接收時的聲音質(zhì)量,具有很強的抗干擾能力,在同樣的頻帶寬度和環(huán)境下,DAB可以提供高質(zhì)量的多種多樣的廣播節(jié)目。

  DAB的發(fā)射系統(tǒng)主要包括處于節(jié)目提供商位置的信源編碼器,處于廣播臺演播室位置的復接器和處于發(fā)射機內(nèi)部的COFDM(編碼正交頻分復用)編碼調(diào)制器。其中COFDM可分為信道編碼、OFDM調(diào)制和數(shù)字上變頻。本文主要討論使用FLEX10K系列FPGA來實現(xiàn)信道編碼的功能。

  DAB的信道編碼部分主要包括能量擴散、卷積編碼和刪除、時間交織等,輸入為來自復接器的ETI(業(yè)務群傳輸接口Ensemble Transport Interface)幀,輸出為DAB傳輸幀。能量擴散的作用是通過對二進制序列的隨機化處理使頻譜擴散,減少連‘0’和連‘1’的出現(xiàn),以保證接收端比特按時恢復。對于信號的傳輸來說,由于卷積編碼引入了大量的冗余比特,因此DAB的信道編碼采用刪除型的卷積編碼。DAB發(fā)射機使用時間交織技術(shù)來糾正突發(fā)性的塊差錯。它按照既定的規(guī)則打亂數(shù)據(jù)排列順序,使得信道中成塊的錯誤分散在不同幀中,再結(jié)合卷積編碼的點糾錯能力,可以使接收機能夠糾正移動傳輸中經(jīng)常出現(xiàn)的塊差錯。

2 FLEX10K系列特點

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

  FLEX10K器件可通過Altera的MAX PLUS II 系統(tǒng)來開發(fā),它具有強大的功能,支持原理圖、硬件描述語言(VHDL,AHDL,verilogHDL)等多種輸入方式。用FPGA來實現(xiàn)DAB信道編碼器,大大簡化了系統(tǒng)結(jié)構(gòu)。而且VHDL描述語言的使用縮短了開發(fā)時間,增強了系統(tǒng)的可讀性,便于后續(xù)產(chǎn)品的升級。如果想改變軟件設計,只要修改程序、重新編譯、下載即可,十分方便。即使要改變硬件設計,也可通過重新分配FPGA管腳實現(xiàn),不需大規(guī)模改動原有的硬件。從信道編碼器的的功能特點看,大部分是比特操作。如果使用DSP或單片機,每個指令周期只能處理一個字節(jié)中的一比特,效率相當?shù)?。而FPGA可以對多個比特同時并行操作,大大提高了處理效率。由于FPGA的最高工作頻率在100MHz以上,所以可以通過提高FPGA的工作頻率來提高其處理數(shù)據(jù)的速度。

  本設計中所用的FLEX10K100A FPGA是FLEX10K系列中的一種,它的等效門數(shù)為10萬門,內(nèi)建24K字節(jié)RAM,可用的I/O管腳達到189個,核心電壓3.3V,支持5V輸入輸出。設計中采用原理圖和VHDL語言混合輸入的方法。

3 用FPGA實現(xiàn)信道編碼功能

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

?

?

  信道編碼的控制器由ADSP2181實現(xiàn),控制整個信道編碼過程的全部動作,其中主要包括啟動編碼模塊FPGA開始編碼、控制FPGA從外部存儲器的相應地址讀取數(shù)據(jù)、為編碼模塊提供進行卷積編碼所需的全部參數(shù)、為編碼后數(shù)據(jù)提供存儲地址等。

  下面詳細介紹用FPGA實現(xiàn)信道編碼的過程。當DSP計算完控制信息后,啟動FPGA。FPGA首先讀入計算所得控制矢量的前幾位幀特征字節(jié),根據(jù)這幾個字節(jié)確定了包括FIC通道在內(nèi)的子通道個數(shù)和輸入數(shù)據(jù)的起始地址,然后分別讀入各子通道特征字節(jié),并根據(jù)其描述對各子通道進行處理。

3.1 能量擴散

  能量擴散采用原理圖輸入的方法,由9個D觸發(fā)器和邏輯門實現(xiàn)。在FPGA中,首先按字節(jié)讀入數(shù)據(jù),然后進行并/串轉(zhuǎn)換,將串行輸入碼流與生成多項式為 P(x)=x9+x5+1、初始狀態(tài)全‘1’的偽隨機比特序列(PRBS)模二相加(處理的順序是串行輸入的第0比特與PRBS序列的第0比特異或),就得到能量擴散的輸出碼流。將輸出的串行碼流送入卷積編碼器。圖2是能量擴散的實現(xiàn)原理圖。

?

?

3.2 卷積編碼

  卷積編碼器也是采用原理圖輸入的方法,如圖3所示,通過移位寄存器和其不同抽頭的組合來實現(xiàn)的。寄存器的初始化狀態(tài)為全‘0’,每輸入一個比特會產(chǎn)生4個比特的輸出。當有效數(shù)據(jù)送完時,還要繼續(xù)送入6個‘0’以使全部寄存器清零。若輸入長度I的

?

?

3.3 卷積編碼的刪除

  卷積編碼輸出的前4I個比特被分成連續(xù)的比特塊,每塊128比特。每塊又被分為32比特的4個子塊,這4個子塊使用同一個刪除模式,刪除模式由PI決定,表1是刪除模式表的一部分。卷積編碼的輸出與刪除模式表中的刪除矢量V相與,剩下的比特壓入一個堆棧中。當16比特的堆棧中堆積的比特數(shù)>8時,編碼器將刪除結(jié)果按字節(jié)輸出到16幀長度的交織緩沖區(qū)暫存。原始數(shù)據(jù)的讀入、能量擴散、卷積編碼和刪除是同時進行的。當一個子通道(或FIC)的數(shù)據(jù)讀完時,能量擴散也同時停止,但編碼和刪除并不停止,還要進行最后24比特的編碼和刪除,這24比特使用固定的刪除矢量VT=(1100 1100 1100 1100 1100 1100)進行刪除。對于有填充字節(jié)(Pad)的還要加入填充,最后輸出一個字節(jié)。

?

?

  PI是根據(jù)輸入碼流的比特率、保護級(P)和保護方式(EEP/UEP)決定的。在UEP(非平衡差錯保護)中,把整個幀的碼流(某個子通道)分為3或4塊(L1~L4),然后查表即得到相應塊的PI和填充比特數(shù)。表2是此保護級模式表的一部分。對于EEP(平衡差錯保護),有A和B兩類保護模式表,分別對應輸入碼率是8Kbits/s的整數(shù)倍和32Kbits/s的整數(shù)倍,每幀中一個子通道分為2塊。一般的刪除處理是通過查表進行的,而這里查表的工作由控制器完成,查表結(jié)果存在控制矢量字節(jié)中。FPGA可直接根據(jù)結(jié)果編碼,有效降低了FPGA的復雜度。

?

?

3.4 時間交織

  交織開始時,F(xiàn)PGA已經(jīng)將卷積編碼刪除的結(jié)果順序地寫入交織緩沖區(qū),然后按照交織規(guī)則亂序地讀出數(shù)據(jù),完成交織深度為16幀的時間交織。這個緩沖區(qū)是一片容量128K字節(jié)的SRAM,分為16個8K的塊,每塊用來存儲一幀的卷積編碼結(jié)果。SRAM的地址組織如圖4(括號內(nèi)是各幀的起始地址)。表3所示的交織規(guī)則對應于128K的交織緩沖區(qū),其中r是輸入幀的序號,r'是輸出幀的序號,i表示比特的序號,R(i/16)表示i除以16的余數(shù),r’(r,i)表示輸出第r’幀第i比特應該對應輸出第r幀第i比特。Ram_addr表示在交織緩沖區(qū)中此幀的起始地址。

?

?

?

  為符合DAB發(fā)射系統(tǒng)下級OFDM調(diào)制器需要的碼元格式,交織后的結(jié)果按字節(jié)寫入輸出雙口RAM緩沖區(qū)時要符合傳輸幀的數(shù)據(jù)結(jié)構(gòu)。根據(jù)DAB傳輸幀的要求,這里的輸出緩沖區(qū)可容納4個邏輯幀的數(shù)據(jù),其片選邏輯也是每96ms變化一次,輸出RAM緩沖區(qū)內(nèi)的數(shù)據(jù)結(jié)構(gòu)如圖5。

?

?

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

?

參考文獻

1 ETI 300 401 ETS 300 401:Radio broadcasting systems;Digital Audio Broadcasting(DAB) to mobile, portable and? fixed receivers,May,1997

2 Altera 公司.Data Book.1999

3 趙曙光,郭萬有,楊頌華.可編程邏輯器件原理、開發(fā)與應用.西安:西安電子科技大學出版社, 2000

本站內(nèi)容除特別聲明的原創(chuàng)文章之外,轉(zhuǎn)載內(nèi)容只為傳遞更多信息,并不代表本網(wǎng)站贊同其觀點。轉(zhuǎn)載的所有的文章、圖片、音/視頻文件等資料的版權(quán)歸版權(quán)所有權(quán)人所有。本站采用的非本站原創(chuàng)文章及圖片等內(nèi)容無法一一聯(lián)系確認版權(quán)者。如涉及作品內(nèi)容、版權(quán)和其它問題,請及時通過電子郵件或電話通知我們,以便迅速采取適當措施,避免給雙方造成不必要的經(jīng)濟損失。聯(lián)系電話:010-82306118;郵箱:aet@chinaaet.com。