CDMA 2000系統(tǒng)中前向鏈路卷積編碼器的FPGA實(shí)現(xiàn)
在通信系統(tǒng)中,由于數(shù)字信號(hào)在傳輸過程中受到各種干擾的影響,使信號(hào)碼元波形變壞,故傳輸?shù)浇邮斩撕罂赡馨l(fā)生錯(cuò)誤判決,為解決這一問題,通常在設(shè)計(jì)數(shù)字通信系統(tǒng)時(shí),首先應(yīng)從合理地選擇調(diào)制制度、解調(diào)方法以及發(fā)送功率等方面考慮,若采取以上措施仍難滿足要求,就要考慮差錯(cuò)控制措施。在CDMA 2000系統(tǒng)的前向鏈路和反向鏈路中就采用了卷積編碼來實(shí)現(xiàn)前向差錯(cuò)控制(FEC)。
FPGA是可編程邏輯器件,它的主要優(yōu)點(diǎn)在于可以借助EDA工具通過軟件編程對(duì)器件的硬件結(jié)構(gòu)和工作方式進(jìn)行重構(gòu),這就使得硬件設(shè)計(jì)具有軟件設(shè)計(jì)的靈活性和便捷性。本設(shè)計(jì)采用VHDL語言并選用可編程邏輯器件在QuartusⅡ下來實(shí)現(xiàn)CDMA 2000系統(tǒng)中的前向鏈路卷積編碼器。
1 卷積編碼器原理
卷積碼是由P.Elias在1954年首先提出來的,它是一種非分組碼,通常它更適用于前向糾錯(cuò),因?yàn)槠湫阅軐?duì)于許多實(shí)際情況常優(yōu)于分組碼,而且設(shè)備簡單。自從A.J.Viterbi于1967年發(fā)現(xiàn)了一種有效的譯碼算法,并由J.Omura于1969年證明這是一種ML譯碼算法后,使用Vit-erbi譯碼算法的卷積碼就成為現(xiàn)代通信系統(tǒng)中必不可少的編碼方案。CDMA 2000系統(tǒng)亦采用此種編碼方案。
1.1 卷積編碼器原理
與分組碼編碼器不同,卷積碼編碼器是有記憶的,即:編碼器在任何一段時(shí)間內(nèi)產(chǎn)生的n個(gè)碼元,不僅取決于這段時(shí)間中的k個(gè)信息位,而且還取決于前N-1段規(guī)定時(shí)間內(nèi)的信息位;即編碼器產(chǎn)生的n個(gè)碼元跟正在移入的每一個(gè)k位的信息比特有關(guān)。為了便于說明問題,在這里規(guī)定:編碼率r=k/n。其中,k表示一次移入編碼器的信息位數(shù);n表示對(duì)應(yīng)于移入k位信息編碼器輸出符號(hào)數(shù)。此外,用K表示約束長度,它等于編碼器中移位寄存器的級(jí)數(shù);實(shí)際上,第一個(gè)移位寄存器是多余的。
描述卷積編碼過程的方法很多,如:多項(xiàng)式法、矩陣法、樹狀圖和網(wǎng)格圖等。這里采用與卷積編碼器結(jié)構(gòu)密切相關(guān)的多項(xiàng)式法來說明卷積碼的編碼原理。已知一個(gè)編碼率r=1/2,約束長度K=3的卷積編碼器,其卷積碼的生成多項(xiàng)式矩陣為:
式中:D為延遲算子,生成多項(xiàng)式的第一項(xiàng)為1D2,表示編碼器輸出的第一個(gè)碼元c1等于輸入碼元b1與前輸入碼元b3的模2和;其第二項(xiàng)為DD2,表示輸出的第二個(gè)碼元c2為前兩個(gè)輸入碼元b2和b3的模2和。
根據(jù)卷積碼的生成多項(xiàng)式矩陣可直接得到編碼器的結(jié)構(gòu)圖,如圖1所示。圖中s1,s2為移位寄存器;m1,m2為模2和加法器;其中b1代表當(dāng)前輸入的信息位;移位寄存器狀態(tài)b2,b3存儲(chǔ)以前的信息位;c1,c2代表編碼后的輸出碼元。
在卷積碼的編碼過程中,編碼器從全零狀態(tài)出發(fā),最后必須回到全零狀態(tài),故當(dāng)送完信息后,還要向編碼器再送入K-1段全零信息,以迫使編碼器回到全零狀態(tài)。設(shè)此編碼器的起始狀態(tài)為零,即b1b2b3為000。當(dāng)輸入的信息位為11010時(shí),為保證輸入的全部信息位都能通過移位寄存器,并對(duì)移位寄存器進(jìn)行復(fù)位,必須在信息位后加約束長度減一個(gè)零,即兩個(gè)零;此時(shí)對(duì)應(yīng)的輸出碼元序列為:10111001011100,丟棄后四位可得編碼器的輸出信息:1011100101。整個(gè)工作過程中編碼器的狀態(tài)如表1所示。
1.2 CDMA 2000系統(tǒng)中的前向鏈路卷積編碼器
在CDMA 2000系統(tǒng)中,前向鏈路使用編碼率為1/2,約束長度為9的卷積編碼器。前向鏈路卷積碼的生成多項(xiàng)式矩陣為:
由此生成多項(xiàng)式矩陣可得前向編碼器的結(jié)構(gòu)圖,如圖2所示。圖中s1~s8為移位寄存器;m1,m2為模2和加法器;其中b1代表當(dāng)前輸入的信息位;移位寄存器狀態(tài)b2~b9存儲(chǔ)以前的信息位;c代表編碼后的輸出碼元。
2 CDMA 2000系統(tǒng)中前向鏈路卷積編碼器的實(shí)現(xiàn)
2.1 CDMA 2000前向鏈路卷積編碼器的電路組成
該設(shè)計(jì)采用模塊化的設(shè)計(jì)方法,根據(jù)CDMA2000系統(tǒng)中的前向鏈路卷積編碼器的功能將其內(nèi)部結(jié)構(gòu)分為:移位寄存器組、模2和加法器、輸出控制器以及時(shí)鐘電路等四個(gè)模塊,每一模塊對(duì)應(yīng)一部分VHDL的設(shè)計(jì)文件,這樣利于程序的編寫和調(diào)試,從而降低了整個(gè)程序的調(diào)試難度,提高了軟件的可維護(hù)性和可讀性。前向鏈路卷積編碼器的組成框圖如圖3所示。
其中,時(shí)鐘信號(hào)clk1和clk2可由基站控制器(BSC)的時(shí)鐘電路直接提供,或由本次設(shè)計(jì)的時(shí)鐘電路將基站控制器(BSC)提供的原始時(shí)鐘信號(hào)進(jìn)行分頻得到;輸出控制器包括輸出數(shù)據(jù)合成電路和整形電路兩部分。
2.2 CDMA 2000前向鏈路卷積編碼器的仿真實(shí)現(xiàn)
根據(jù)卷積編碼器電路框圖,采用VHDL語言編寫前向鏈路卷積編碼器的源程序輸入到QuartusⅡ開發(fā)軟件中進(jìn)行編譯、仿真、綜合得到可下載文件,然后通過對(duì)器件編程完成設(shè)計(jì)。
仿真前假設(shè)編碼器的初始狀態(tài)為零,即:b1~b9為00000000;輸入的信息為11010,為保證輸入的全部信息位都能通過移位寄存器,并對(duì)移位寄存器進(jìn)行復(fù)位,在信息位后加8個(gè)零,其輸出結(jié)果為11010111000001111111101100,,仿真時(shí),輸入數(shù)據(jù)data的速率為9.6Kb/s;輸出碼元c的速率為19.2Kb/s。仿真結(jié)果如圖4所示,其中b為寄存器組各個(gè)時(shí)刻的狀態(tài)。
在前向鏈路卷積編碼器的設(shè)計(jì)中有一些需要注意的問題:首先要明確VHDL語言不同于其他的計(jì)算機(jī)語言,它是一種硬件描述語言,它描述的對(duì)象是客觀的電路系統(tǒng)。其次,不同的EDA工具對(duì)VHDL語言的支持程度不同。本次設(shè)計(jì)中采用的QuartusⅡ開發(fā)工具主要是針對(duì)可編程邏輯器件的軟件,它并不支持所有的VHDL語句,它只支持RTL級(jí)描述,不支持行為級(jí)描述。再有,在設(shè)計(jì)中需要根據(jù)設(shè)計(jì)要求和可編程邏輯器件的資源情況、速度等進(jìn)行合理的選擇。該設(shè)計(jì)中采用的EP2C8Q208器件就可滿足資源和速度方面的要求。
3 結(jié)語
本文實(shí)現(xiàn)了一種適用于CDMA 2000系統(tǒng)的前向鏈路卷積編碼器,通過對(duì)整體電路的設(shè)計(jì)、仿真和調(diào)測,結(jié)果表明本編碼器可達(dá)到CDMA 2000系統(tǒng)要求,具有一定的實(shí)用價(jià)值,同時(shí),本設(shè)計(jì)采用基于可編程邏輯器件借助VHDL語言及EDA工具進(jìn)行設(shè)計(jì)的思路,大大縮短了設(shè)計(jì)周期,降低了成本,提高了設(shè)計(jì)的可靠性、靈活性,為通信系統(tǒng)設(shè)計(jì)提供了一種有效的設(shè)計(jì)方法。