當(dāng)前位置:首頁(yè) > EDA > 電子設(shè)計(jì)自動(dòng)化
[導(dǎo)讀]摘要:衛(wèi)星定位接收機(jī)中卷積碼譯碼即維特比譯碼器,在處理器中面臨占有資源較多、處理時(shí)間過(guò)長(zhǎng)等問(wèn)題,為了減少處理器資源的占用和提高處理速度,采用并行加比選蝶形單元的的方法,在FPGA平臺(tái)上用硬件描述語(yǔ)言設(shè)計(jì)一

摘要:衛(wèi)星定位接收機(jī)中卷積碼譯碼即維特比譯碼器,在處理器中面臨占有資源較多、處理時(shí)間過(guò)長(zhǎng)等問(wèn)題,為了減少處理器資源的占用和提高處理速度,采用并行加比選蝶形單元的的方法,在FPGA平臺(tái)上用硬件描述語(yǔ)言設(shè)計(jì)一種高性能維特比譯碼器,作為GPS L2頻點(diǎn)和GALILEO E1頻點(diǎn)接收機(jī)的通用譯碼器,在GPS和GALILEO接收機(jī)上運(yùn)用,大大減少資源使用,提高接收機(jī)的處理速度。
關(guān)鍵詞:Viterbi譯碼器;GPS/GALILEO接收機(jī);卷積碼;FPGA

0 引言
    在現(xiàn)代通信系統(tǒng)中,要使信號(hào)能夠更可靠地在信道中傳輸,往往需要在信道編碼中采用糾錯(cuò)碼來(lái)降低信號(hào)受噪聲的影響,以降低傳輸?shù)恼`碼率。卷積碼及其Viterbi譯碼是常用的信道編碼方案。卷積碼在GNSS接收機(jī)中得到應(yīng)用,其中約束長(zhǎng)度K=7,碼率為1/2的卷積碼已經(jīng)成為商業(yè)衛(wèi)星通信系統(tǒng)中的標(biāo)準(zhǔn)編碼方法。在衛(wèi)星定位系統(tǒng)中,GPS L2頻點(diǎn)和GAILILEO E1的電文均采用卷積碼編碼,目前在定位接收機(jī)中用軟件進(jìn)行Viterbi譯碼較多,為了提高處理速度通用性,本文設(shè)計(jì)一種基于FPGA的通用高速Viterbi譯碼器,能作為GPS L2和GALILEO E1的電文的譯碼器,大大減少資源使用,提高接收機(jī)的處理速度和減少軟件復(fù)雜度,從而節(jié)約處理器的資源。

1 卷積編碼及Viterbi算法基本原理
    卷積碼包含由K個(gè)寄存器組(每組包括k個(gè)比特,k通常取1)構(gòu)成的移位寄存器和n個(gè)模2加法器,其中K是約束長(zhǎng)度,編碼器的輸出由當(dāng)前輸入數(shù)據(jù)和寄存器組中的數(shù)據(jù)共同決定。對(duì)于GPS L2和GALILEOE1均為(2,1.7)卷積碼,其生成多項(xiàng)式為G=(171,133),電路圖如圖1所示。(2,1,7)卷積碼編碼器由6個(gè)延時(shí)器(圖1中的q-1模塊,可用寄存器實(shí)現(xiàn))和兩個(gè)模2加法器組成,它的編碼約束度為7,碼率為1/2,即輸入端輸入1 b信息,輸出端輸出2 b編碼信息,并分為上、下兩路并行輸出。


    對(duì)信號(hào)進(jìn)行卷積編碼后,通常采用Viterbi算法(VA)譯碼。Viterbi算法是對(duì)于卷積碼的最大似然譯碼,即利用概率譯碼。1967年Viterbi第一個(gè)提出了這個(gè)算法,F(xiàn)orney對(duì)這種算法及其性能做了可讀強(qiáng)、見(jiàn)解深刻的描述。最大似然譯碼函數(shù),就是在已知收到的信道輸出序列,找到最有可能的傳輸序列,即通過(guò)網(wǎng)格圖找出一條路徑對(duì)應(yīng),要求路徑輸出的碼序列具有對(duì)數(shù)最大值。對(duì)于二進(jìn)制對(duì)稱信道來(lái)說(shuō),函數(shù)的最大化等價(jià)于在網(wǎng)格圖中找到與接收序列之間有最小漢明距離的路徑。
    Viterbi算法是通過(guò)動(dòng)態(tài)規(guī)劃的方法找出網(wǎng)格圖中具有最大度量的最大似然路徑,即局部最優(yōu)等效全局最優(yōu)。在每一步中,它將進(jìn)入每一狀態(tài)的所有路徑進(jìn)行比較,并存儲(chǔ)具有最大度量值的路徑,即幸存路徑,步驟為:
    (1)從時(shí)刻l=m開(kāi)始,計(jì)算進(jìn)入某一狀態(tài)的單個(gè)路徑的部分度量值,并存儲(chǔ)每一狀態(tài)的幸存路徑及其度量值。
    (2)l增加1,l=m+1,將進(jìn)入某一狀態(tài)的分支度量值與前一段時(shí)間的幸存度量值累加,然后計(jì)算進(jìn)入該狀態(tài)的所有最大度量的路徑,決定并存儲(chǔ)新的幸存路徑及度量,并刪除所有其他路徑。
    (3)若l<l+m,重復(fù)步驟(2),否則結(jié)束。
    該算法主要包括兩個(gè)工作:計(jì)算度量并比較,其決定幸存路徑;另一個(gè)是記錄幸存路徑及其相關(guān)的度量值。

2 基于硬件描述語(yǔ)言的Viterbi算法
    Viterbi算法一般采用回溯法和寄存器交換法。為了減少控制的復(fù)雜度,本文采用回溯法,譯碼器由分支度量(BMU)、加比選(ACS)蝶形運(yùn)算、存儲(chǔ)單元、回溯(TB)單元4個(gè)基本部分組成,見(jiàn)圖2。


    利用二元卷積來(lái)說(shuō)明VA譯碼過(guò)程如圖3所示。


    圖4為用實(shí)線表示輸入為0時(shí)走的分支,虛線表示輸入為1走的分支,任意給定一個(gè)序列,在網(wǎng)格圖中就有一個(gè)特定路徑,圖4中,u=(1011100),輸出的編碼為c={11_10_00_01_10_01_11}。


2.1 分支度量單元
    路徑度量單元是計(jì)算實(shí)際接收到的碼元與期望碼元之問(wèn)的差別。G1與g1比較,G2與g2比較,若接收信號(hào)為0,期望值為0時(shí),度量值為0,期望值為1時(shí),度量值為1;若接收信號(hào)為1,期望值為0時(shí),度量值為1,期望值為1時(shí),度量值為0。兩個(gè)比較結(jié)果和作為最終度量結(jié)果輸出。按此規(guī)律計(jì)算當(dāng)前狀態(tài)下進(jìn)入下一個(gè)狀態(tài)的度量值。
2.2 加比選蝶形單元
    加比選(ACS)單元是完成幸存路徑的延伸和判決向量的生成,計(jì)算過(guò)程包括度量值的累加、比較、選擇路徑操作。對(duì)(2,1,3)卷積碼而言,共4個(gè)狀態(tài),組成2個(gè)蝶形運(yùn)算單元;而(2,1,7)卷積碼則64個(gè)狀態(tài),組成32個(gè)蝶形單元。在K=7的卷積碼中,有64個(gè)狀態(tài)的路徑,所以根據(jù)待譯碼的長(zhǎng)度,適當(dāng)增加累加值的位寬,防止度量值溢出。
2.3 幸存路徑存儲(chǔ)單元
    幸存路徑存儲(chǔ)是用來(lái)存儲(chǔ)每次蝶形運(yùn)算完成單元后所選擇的路徑,存儲(chǔ)單元的大小為譯碼深度乘以狀態(tài)個(gè)數(shù)。對(duì)每一個(gè)加比選過(guò)程的存儲(chǔ),實(shí)際就是對(duì)幸存路徑的存儲(chǔ)。
2.4 回溯單元
    由VA算法可知,在網(wǎng)格圖上經(jīng)過(guò)大約5倍的約束長(zhǎng)度之后,所有幸存路徑將匯聚到一起。因此選擇合適的回溯長(zhǎng)度L,并從任一條路徑開(kāi)始(比如0狀態(tài))開(kāi)始回溯,當(dāng)回溯到L個(gè)節(jié)點(diǎn)時(shí)開(kāi)始輸出譯碼比特。

3 GPS L2和GALILEO E1接收機(jī)的高性能Viterbi譯碼具體模塊設(shè)計(jì)
    根據(jù)GPS和GALILEO的接口文件,L2頻點(diǎn)電文采用(2,1,7)卷積碼的形式,碼多項(xiàng)式為(171,133)o,且與GALILEO E1的卷積碼格式相同,GALILEO采用分段卷積的形式,參與卷積的為每頁(yè)中不包含同步頭的部分,即120位進(jìn)行卷積。為了能同時(shí)作為GPS和GALILEO的譯碼器,設(shè)計(jì)譯碼深度為120的譯碼器。


    接收機(jī)的Viterbi譯碼模塊包括:地址譯碼模塊、數(shù)據(jù)加載模塊、Viterbi譯碼模塊、輸出控制模塊。為了提高譯碼器的性能,Viterbi譯碼模塊的加比選蝶形單元采用32個(gè)并行結(jié)構(gòu),提高運(yùn)算速度。
3.1 地址譯碼及數(shù)據(jù)加載
    地址譯碼包括總線讀寫譯碼,由于Viterbi模塊作為一個(gè)獨(dú)立模塊,內(nèi)部地址采用自己的譯碼設(shè)計(jì)。
    深度為120的Viterbi譯碼器,需要輸入240個(gè)卷積碼,對(duì)于總線32位CPU,需要8次寫入完成數(shù)據(jù)輸入。最少需要8個(gè)地址單元,Viterbi譯碼輸出最少需要4個(gè)地址單元,譯碼狀態(tài)中斷輸出,狀態(tài)位清除,即整個(gè)譯碼器模塊需要14個(gè)地址單元。地址線需要4根即可。
    地址譯碼電路采用組合邏輯設(shè)計(jì)。譯碼狀態(tài)中斷輸出、狀態(tài)位清零采用不同時(shí)鐘域同步。
    數(shù)據(jù)加載模塊是加載寄存器內(nèi)數(shù)據(jù),然后按照順序,1次按2位串行輸出。
3.2 Viterbi譯碼模塊
    Viterbi譯碼模塊采用的譯碼深度為120的(171,133)o譯碼設(shè)計(jì),譯碼器結(jié)構(gòu)如圖6所示,由譯碼控制單元、度量值計(jì)算單元、蝶形運(yùn)算、幸存路徑存儲(chǔ)、回溯輸出單元構(gòu)成。


    (1)蝶形運(yùn)算單元。按照(2,1,7),多項(xiàng)式為(171,133)卷積碼特點(diǎn),基本蝶形單元分布見(jiàn)圖7。對(duì)于約束長(zhǎng)度為7的卷積碼,共計(jì)64個(gè)狀態(tài),形成32個(gè)基2的蝶形運(yùn)算單元見(jiàn)圖8。


    蝶形單元的輸入信號(hào)為上次的度量和,與接收碼本蝶形單元中理論輸出碼的碼距度量,如圖9所示。


    輸出信號(hào)為幸存路徑、度量值和,選擇輸出為1,不選輸出為0,如表1所示。


    (2)幸存路徑存儲(chǔ)。經(jīng)過(guò)蝶形單元運(yùn)算的輸出,幸存路徑,64個(gè)狀態(tài),幸存路徑為64位,表示該狀態(tài)有或無(wú),每進(jìn)行一次蝶形運(yùn)算,存入一個(gè)64位路徑信息,存儲(chǔ)器的寫入控制信號(hào)和地址信息由狀態(tài)控制單元發(fā)出,存儲(chǔ)空間為120×64 b。


    (3)回溯及輸出?;厮葸^(guò)程即從地址最后向前一次讀取幸存路徑的值,得出譯碼電文。如圖10所示。


    (4)狀態(tài)控制單元。狀態(tài)控制單元是對(duì)整個(gè)譯碼過(guò)程的控制,復(fù)位后,系統(tǒng)處在空狀態(tài),收到輸入的待譯數(shù)據(jù)后,進(jìn)入加比選狀態(tài),按照數(shù)據(jù)流順序進(jìn)行加比選蝶形運(yùn)算操作,進(jìn)入到譯碼深度的長(zhǎng)度的加比選后,轉(zhuǎn)入譯碼回溯輸出單元,從最后一個(gè)回溯到第一個(gè)時(shí),即完成回溯,同時(shí)輸出譯碼電文和譯碼完成中斷,系統(tǒng)再次進(jìn)入等待狀態(tài),如圖11所示。

4 仿真及接收機(jī)測(cè)試結(jié)果
    GPS/Galileo接收機(jī)通用的Viterbi譯碼器設(shè)計(jì)通過(guò)Modelsim仿真,能夠得出正確譯碼結(jié)果,編碼后在240個(gè)碼序列的228之前加入1位或2位錯(cuò)誤碼,均能正確糾錯(cuò),得到正確的譯碼結(jié)果。
    譯碼延時(shí)260個(gè)時(shí)鐘周期。最大譯碼數(shù)據(jù)吞吐率達(dá)240×(150×1 000 00/260)=138 Mb/s。如圖12所示。


    譯碼模塊在Altera StratixⅡ系列EP2S180F1020I4 FPGA平臺(tái)上,利用QuartusⅡ8.0進(jìn)行綜合和時(shí)序分析,最大速度可以達(dá)到150 MHz,資源使用量為:ALUTs占用2 679.Logic Registers占用1 465,與文獻(xiàn)相比,資源消耗大大減少。如圖13,圖14所示。



5 結(jié)語(yǔ)
    本文所述基于FPGA的Viterbi譯碼器用于GPS/GALILE-O接收機(jī),能對(duì)GPS L2和GALILEO的電文進(jìn)行譯碼,糾錯(cuò)能力達(dá)到預(yù)期效果,F(xiàn)PGA資源使用量較低,主時(shí)鐘速度最大可達(dá)到150 MHz,譯碼處理延時(shí)達(dá)260個(gè)時(shí)鐘周期,譯碼深度為120,最大譯碼數(shù)據(jù)吞吐率達(dá)138 Mb/s,完全滿足GPS/GALILEO接收機(jī)電文接收譯碼速度要求。

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請(qǐng)聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請(qǐng)及時(shí)聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車的華為或?qū)⒋呱龈蟮莫?dú)角獸公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關(guān)鍵字: 阿維塔 塞力斯 華為

倫敦2024年8月29日 /美通社/ -- 英國(guó)汽車技術(shù)公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車工程師從創(chuàng)意到認(rèn)證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開(kāi)發(fā)耗時(shí)1.5...

關(guān)鍵字: 汽車 人工智能 智能驅(qū)動(dòng) BSP

北京2024年8月28日 /美通社/ -- 越來(lái)越多用戶希望企業(yè)業(yè)務(wù)能7×24不間斷運(yùn)行,同時(shí)企業(yè)卻面臨越來(lái)越多業(yè)務(wù)中斷的風(fēng)險(xiǎn),如企業(yè)系統(tǒng)復(fù)雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務(wù)連續(xù)性,提升韌性,成...

關(guān)鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報(bào)道,騰訊和網(wǎng)易近期正在縮減他們對(duì)日本游戲市場(chǎng)的投資。

關(guān)鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國(guó)國(guó)際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)開(kāi)幕式在貴陽(yáng)舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關(guān)鍵字: 華為 12nm EDA 半導(dǎo)體

8月28日消息,在2024中國(guó)國(guó)際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)上,華為常務(wù)董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語(yǔ)權(quán)最終是由生態(tài)的繁榮決定的。

關(guān)鍵字: 華為 12nm 手機(jī) 衛(wèi)星通信

要點(diǎn): 有效應(yīng)對(duì)環(huán)境變化,經(jīng)營(yíng)業(yè)績(jī)穩(wěn)中有升 落實(shí)提質(zhì)增效舉措,毛利潤(rùn)率延續(xù)升勢(shì) 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務(wù)引領(lǐng)增長(zhǎng) 以科技創(chuàng)新為引領(lǐng),提升企業(yè)核心競(jìng)爭(zhēng)力 堅(jiān)持高質(zhì)量發(fā)展策略,塑強(qiáng)核心競(jìng)爭(zhēng)優(yōu)勢(shì)...

關(guān)鍵字: 通信 BSP 電信運(yùn)營(yíng)商 數(shù)字經(jīng)濟(jì)

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺(tái)與中國(guó)電影電視技術(shù)學(xué)會(huì)聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會(huì)上宣布正式成立。 活動(dòng)現(xiàn)場(chǎng) NVI技術(shù)創(chuàng)新聯(lián)...

關(guān)鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長(zhǎng)三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會(huì)上,軟通動(dòng)力信息技術(shù)(集團(tuán))股份有限公司(以下簡(jiǎn)稱"軟通動(dòng)力")與長(zhǎng)三角投資(上海)有限...

關(guān)鍵字: BSP 信息技術(shù)
關(guān)閉
關(guān)閉