《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 可編程邏輯 > 設(shè)計(jì)應(yīng)用 > 可編程Viterbi譯碼器設(shè)計(jì)與實(shí)現(xiàn)
NI-LabVIEW 2025
可編程Viterbi譯碼器設(shè)計(jì)與實(shí)現(xiàn)
來源:電子技術(shù)應(yīng)用2014年第3期
段高攀,杜慧敏,韓俊剛,唐凱林
(西安郵電大學(xué) 電子工程學(xué)院,陜西 西安710121)
摘要: 卷積編碼作為一種優(yōu)秀的信道編碼方式,已被廣泛應(yīng)用在衛(wèi)星通信和無線通信系統(tǒng)中。在它所對應(yīng)的譯碼方式中,Viterbi譯碼性能較優(yōu)。Viterbi譯碼是一種最大似然譯碼算法,不僅譯碼速度快,而且其硬件實(shí)現(xiàn)簡單。提出了一種專用指令集處理器架構(gòu),能夠支持多種約束長度的Viterbi譯碼,為通信系統(tǒng)在信道編解碼方面做出了有益的嘗試。設(shè)計(jì)了專用的處理器架構(gòu),并對(2,1,7)格式的編碼進(jìn)行了ASIC實(shí)現(xiàn),對兩種設(shè)計(jì)的性能進(jìn)行了對比,可編程Viterbi譯碼器的最大工作頻率為123 MHz。
中圖分類號: TN492
文獻(xiàn)標(biāo)識碼: A
文章編號: 0258-7998(2014)03-0029-03
Design and implementation for programmable Viterbi decoder
Duan Gaopan,Du Huimin,Han Jungang,Tang Kailin
Department of Electronic Engineering,Xi′an University of Post and Telecommunications,Xi′an 710121,China
Abstract: As an excellent way of channel coding, convolution encoding is used in the satellite communication and wireless communication system. In contrast to other decoding method, the performance of Viterbi decoding is better. It is a kind of maximum likelihood decoding algorithm, whose decode performance is good and fast, with simple hardware implementation circuit. This paper proposes a specific instruction set processor architecture,is able to support multiple constraint length of Viterbi decoding, has made the beneficial attempt for the communication system in terms of channel transmission. The dedicated processor architecture is designed and the coding of(2,1,7) format is implemented by ASIC. Compared the performance of the two design,the maximum working frequency of the programmable Viterbi decoder is 123 MHz.
Key words : channel coding;convolution code;Viterbi; programmable;dedicated processer

    隨著電子通信技術(shù)的發(fā)展,電子通信產(chǎn)品已成為人們生活不可或缺的產(chǎn)品,電子通信產(chǎn)品的產(chǎn)量有了巨大的提升,同時(shí)電子通信質(zhì)量也有了相應(yīng)的提升,信道編譯碼是影響通信系統(tǒng)傳輸質(zhì)量的直接因素。在信道編碼中應(yīng)用最為廣泛的是卷積碼編碼[1],而卷積碼的最佳譯碼方式是Viterbi譯碼[2]。近年來,卷積編碼和Viterbi譯碼技術(shù)已經(jīng)有了長足的發(fā)展,不論是譯碼算法還是實(shí)現(xiàn)架構(gòu)都達(dá)到了極高的水平。算法中間的各個(gè)功能單元也得到了改進(jìn),研究性的論文也層出不窮。雖然實(shí)現(xiàn)方法很多,但是僅能滿足一種或兩種通信標(biāo)準(zhǔn),靈活性較差。如(2,1,9)格式的Viterbi譯碼器,只能滿足約束長度為9的信息序列。
    為滿足不同類型通信標(biāo)準(zhǔn)及傳輸速度的要求,設(shè)計(jì)一種能夠滿足多種標(biāo)準(zhǔn)的Viterbi譯碼器十分必要。從本質(zhì)上看,Viterbi譯碼器完成的操作無非是分支度量計(jì)算、加比選、回溯,存在著很多的共性。在追求滿意解而非完美解的情況下,完全可以設(shè)計(jì)一種在相似通信標(biāo)準(zhǔn)下的“專用”體系結(jié)構(gòu)。采取這種折衷的方法,不但可以避免通用體系架構(gòu)設(shè)計(jì)出來的譯碼芯片在性能及成本上的尷尬,還可以具有一定的重用性。本文的研究重點(diǎn)在于實(shí)現(xiàn)可編程Viterbi譯碼器,制定系統(tǒng)架構(gòu)并完成各模塊的設(shè)計(jì)。
1 Viterbi譯碼器設(shè)計(jì)
    Viterbi譯碼器主要由分支度量計(jì)算模塊(即路徑度量模塊,BMG單元)、加比選單元(ACS單元)、路徑度量存儲管理單元(MMU單元)、路徑回溯單元(TB單元)和幸存路徑存儲管理單元(SMU單元)五部分組成。Viterbi譯碼器整體結(jié)構(gòu)圖如圖1所示。

    圖2中,編碼器與數(shù)據(jù)發(fā)送端使用的編碼格式相同,此處編碼器的功能是對每個(gè)狀態(tài)進(jìn)行編碼,然后與輸入的信息進(jìn)行比較,求出其分支度量,即求其每個(gè)狀態(tài)的期望值。距離計(jì)算單元主要用來計(jì)算輸入待譯碼單元與狀態(tài)編碼之間的差異,并將這些差異送往對應(yīng)的加比選單元。
1.2 加比選單元
    加比選單元[4-5]作為Viterbi譯碼器的主要組成部分,其主要作用是將分支度量單元(BMU)送來的分支度量與路徑度量單元(PMU)中的路徑度量值進(jìn)行累加,并且對每個(gè)分支的路徑度量值進(jìn)行比較,挑選出較小的一個(gè)將其存入PMU,并且標(biāo)識出該最小值來源于哪個(gè)分支(0分支還是1分支),即所謂的幸存比特,將其存到SMU中。在每次選擇出最小路徑度量時(shí),將其存儲起來,到下一個(gè)狀態(tài)選出最小路徑度量時(shí),將二者進(jìn)行比較,存儲較小的一個(gè)及其狀態(tài)。當(dāng)達(dá)到回溯深度時(shí),將最小狀態(tài)送給TBU單元進(jìn)行回溯。
1.3 路徑度量存儲管理單元
    路徑存儲單元[6]PMU主要負(fù)責(zé)Viterbi譯碼過程中路徑度量的存儲管理,在每個(gè)處理時(shí)鐘,向加比選單元提供所需的路徑度量值,在加比選運(yùn)算結(jié)束之后將新的路徑度量存儲。整個(gè)PMU的結(jié)構(gòu)框圖如3所示。


    Interface_P_S主要用在鏈接PMU與ACS單元的接口部分,用來將加比選單元送過來的4路并行路徑度量值轉(zhuǎn)換成串行信息后依次存入PMU_RAM;Interface_S_P也是PMU與ACS單元的接口部分,它與前者的作用剛好相反,它是將PMU中取來的4路路徑度量信息轉(zhuǎn)換成4路并行的路徑度量值,然后送入到ACSU進(jìn)行運(yùn)算。
1.4 幸存路徑度量存儲管理單元
    幸存路徑存儲單元[7-10](SMU)用來存儲每一輪ACS單元產(chǎn)生的幸存比特信息。當(dāng)達(dá)到譯碼深度時(shí),再將其傳遞給回溯單元進(jìn)行譯碼。在硬件電路設(shè)計(jì)中,如果得到所有信息的幸存比特信息之后再進(jìn)行譯碼,必將產(chǎn)生較大的延遲。即使不考慮延遲,存儲大量的比特信息對存儲的要求也是無限大的,因此需存儲回溯譯碼深度范圍內(nèi)的幸存信息,當(dāng)達(dá)到譯碼深度之后,將其取出立即進(jìn)行譯碼,從而可以大大地節(jié)省硬件資源。SMU的設(shè)計(jì)電路圖如4所示。

    SMU_interface的主要作用是將每個(gè)處理周期的4個(gè)ACS單元的處理結(jié)果暫存起來,當(dāng)所有狀態(tài)處理完成之后,將data_in值傳送給SMU_RAM 。SMU_RAM用來存儲之前處理所得到的幸存比特信息。SMU_Control 用來控制對SMU_RAM的讀寫控制,當(dāng)碼元輸入的所有狀態(tài)(由state_page控制)都處理完成時(shí),將data_in輸入到SMU_RAM,當(dāng)達(dá)到譯碼深度(由decode_page控制)時(shí),將SMU_RAM中的數(shù)據(jù)輸出到回溯單元。因?yàn)镾MU_RAM中數(shù)據(jù)的存儲是按照處理decode_page的順序進(jìn)行的,因此讀地址必須使用一個(gè)減法計(jì)數(shù)器來實(shí)現(xiàn),初始值設(shè)置為回溯譯碼深度。
1.5 回溯單元
    回溯單元[11](TBU)也是Viterbi譯碼器的一個(gè)重要組成部分,它的主要功能是對SMU_RAM中的幸存信息進(jìn)行回溯并產(chǎn)生譯碼信息。回溯單元的結(jié)構(gòu)框圖如圖5 所示。

    當(dāng)達(dá)到回溯譯碼深度,且當(dāng)前所處理的所有狀態(tài)的度量計(jì)算結(jié)束之后,TBU開始工作,將Start信號設(shè)置為1,通過選擇器MUX將加比選單元計(jì)算得出的最小狀態(tài)Low_state通過寄存器REG作為當(dāng)前狀態(tài)送給幸存比特產(chǎn)生模塊S_BIT_GEN和次態(tài)產(chǎn)生模塊NS_GEN進(jìn)行處理,其后Start信號一直為低,直到下次到達(dá)譯碼深度再將其置為1。因此,其余時(shí)刻選擇器輸出端一直連接NS_GEN送來的次狀態(tài)Next_State,將其暫存在REG中作為當(dāng)前狀態(tài)。在模塊S_BIT_GEN中可以求出現(xiàn)態(tài)的幸存比特S_bit=DATA_SMU[Current_state]。由蝶形運(yùn)算過程可以分析得出,根據(jù)當(dāng)前狀態(tài)的幸存比特可以在NS_GEN模塊中反推出現(xiàn)態(tài)的上一個(gè)狀態(tài),也就是次態(tài)Next_State。有了現(xiàn)態(tài)和現(xiàn)態(tài)的幸存比特信息,就可以知道這個(gè)現(xiàn)態(tài)是由上一輪ACS運(yùn)算的哪個(gè)狀態(tài)轉(zhuǎn)移而來的。因此,可以根據(jù)Viterbi譯碼算法依次找到每一個(gè)時(shí)刻的最小狀態(tài)。NS_GEN可由當(dāng)前狀態(tài)產(chǎn)生正確的譯碼輸出。
2 性能比對
    為了能夠科學(xué)地比較兩種Viterbi譯碼器實(shí)現(xiàn)方法的性能優(yōu)劣,兩種設(shè)計(jì)均采用了卷積編碼格式(2,1,7),并且設(shè)計(jì)和實(shí)現(xiàn)均采用Xilinx公司的ISE工具,FPGA工具均采用Virtex4,對兩種設(shè)計(jì)電路進(jìn)行綜合。
    經(jīng)FPGA綜合結(jié)果表明,ASIC實(shí)現(xiàn)的Viterbi譯碼器的最大頻率大于可編程Viterbi譯碼器的最大頻率,具體對比結(jié)果如表1所示。

 

 

    根據(jù)Viterbi譯碼器兩種實(shí)現(xiàn)方式的性能對比可以發(fā)現(xiàn),ASIC實(shí)現(xiàn)的Viterbi譯碼器速度較優(yōu),比可編程Viterbi譯碼器的最大工作頻率高出30 MHz,而且使用的資源相對較少,在同一時(shí)鐘工作頻率下,兩種譯碼器的吞吐量基本相等,但是,采用可編程方式實(shí)現(xiàn)的Viterbi譯碼靈活性較大,可以滿足多種方式卷積編碼的譯碼。因此,可以根據(jù)實(shí)際應(yīng)用合理選擇譯碼器的實(shí)現(xiàn)。
參考文獻(xiàn)
[1] 陶杰,王欣,張?zhí)燧x.基于VHDL語言的卷積碼和Viterbi譯碼的實(shí)現(xiàn)[J].微型機(jī)與應(yīng)用,2012,31(16):3-5.
[2] 王新梅,肖國鎮(zhèn).糾錯(cuò)碼——原理與方法[M].西安:西安電子科技大學(xué)大學(xué)出版,2001.
[3] FORNEY J G D.The Viterbi Algorithm[J].Proceedings of the IEEE,1973,61(3):268-278.
[4] 周炯槃,龐沁華.通信原理[M].北京:北京郵電大學(xué)出版社,2002.
[5] FETTWEIS G,MEYR H.Parallel Viterbi algorithm implementation:Breaking the ACS-bottleneck[J].Communications,IEEE Transactions on,1989,37(8):785-790.
[6] RADER C.Memory management in a Viterbi decoder[J].Communications,IEEE Transactions on,1981,29(9):1399-1401.
[7] 付永慶,孫曉巖,李福昌.實(shí)現(xiàn)Viterbi譯碼器幸存路徑存儲及譯碼輸出的一種新方法[J].應(yīng)用科技,2003,30(3):25-26.
[8] FEYGIN G,GULAK P.Architectural tradeoffs for survivorsequence memory management in Viterbi decoders[J].Communications,IEEE Transactions on,1993,41(3):425-429.
[9] BLACK P J,MENG T H Y.Hybrid survivor path architec tures for Viterbi decoders[C].Acoustics,Speech,and Signal Processing,ICASSP-93,1993 IEEE International Conference on,1993,1:433-436.
[10] TRABER M.A low power survivor memory unit for sequential Viterbi-decoders[C].Circuits and Systems,ISCAS 2001,2001 IEEE International Symposium on,2001,4:214-217.
[11] BAEK J G,YOON S H,CHONG J W.Memory efficient pipelined Viterbi decoder with look-ahead trace back[C].Electronics,Circuits and Systems,ICECS 2001,the 8th IEEE International Conference on,2001,2:769-772.

此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載。
主站蜘蛛池模板: 欧美激情一区二区亚洲专区 | 日韩在线播放全免费 | 中国欧美日韩一区二区三区 | 日韩视频在线观看视频 | 国外成人免费高清激情视频 | 露脸国产精品自产在线播 | 性生交大片免费一级 | 天天干天天澡 | 亚洲精品国产福利片 | 日韩三级观看 | 无遮挡h肉3d动漫在线观看 | 中文字幕亚洲区 | 久久yy | 中文字幕丝袜美腿 | 国产v亚洲v天堂无码 | 日本综合欧美一区二区三区 | 天天操天天搞 | 亚洲激情视频在线观看 | 色视频在线看 | 国产在线观看网址在线视频 | 韩日视频在线 | 亚洲国产欧美在线不卡中文 | 成人你懂的 | 国产亚洲青色国产 | 最近2019中文字幕大全视频1 | 毛片在线免费观看网站 | 欧美日本在线三级视频 | 一个人看的www观看免费 | 可以免费看的毛片 | 伦理在线 | 日韩国产成人精品视频人 | 欧美网站色 | 中国女人free性hd国浯 | 免费操片 | 色视频www在线播放国产人成 | 午夜影院体验区 | 久久精品国产精品青草不卡 | 成人免费视频一区二区三区 | 波多结衣一区二区三区 | 精品无码久久久久久久动漫 | 97夜夜澡人人爽人人喊一欧美 |