郭 勇,陳艷玲
(南京北方電子信息科技集團(tuán)有限公司產(chǎn)品研發(fā)中心,南京 211153)
Viterbi譯碼[1-2]是針對(duì)卷積碼的糾錯(cuò)性能最好的譯碼算法,由于對(duì)產(chǎn)品設(shè)計(jì)的時(shí)效性和可靠性的要求,眾多實(shí)際的產(chǎn)品采用IP核設(shè)計(jì)。Altera公司的Viterbi-IP核使用廣泛,傳統(tǒng)的對(duì)Viterbi糾錯(cuò)性能的驗(yàn)證僅限于對(duì)Matlab中Viterbi譯碼函數(shù)進(jìn)行BER計(jì)算,對(duì)Viterbi-IP核糾錯(cuò)性能的驗(yàn)證目前的文獻(xiàn)介紹不多,文獻(xiàn)[3]僅介紹該核的使用方法,文獻(xiàn)[4]僅介紹了一幀數(shù)據(jù)的糾錯(cuò)性能驗(yàn)證,且錯(cuò)誤形式單一。本文介紹一種基于對(duì)文件進(jìn)行輸入輸出操作的方法。該方法仿真處理的數(shù)據(jù)量大,能盡可能真實(shí)地驗(yàn)證該IP核實(shí)際的糾錯(cuò)性能,同時(shí)通過(guò)在Matlab中修改誤碼形式,能快速地仿真不同錯(cuò)誤形式下的糾錯(cuò)性能。本文對(duì)使用該IP核得到的BER曲線與采用Matlab的Viterbi譯碼函數(shù)Vitdec()得到的理論上的BER曲線進(jìn)行比較,以驗(yàn)證該IP核的糾錯(cuò)性能。
在IP核生成界面上選擇Viterbi核,輸出文件設(shè)為Viterbi1.v。以下是對(duì)于Viterbi-IP核的設(shè)置,采用parallel結(jié)構(gòu),連續(xù)譯碼;編碼多項(xiàng)式為(171,133);采用硬判決,因此 Sofebits設(shè)為 1;時(shí)鐘頻率設(shè)為50MHz,因此時(shí)鐘周期為20 ns;回溯深度為42。遵照產(chǎn)品幀結(jié)構(gòu)的要求,IP核每個(gè)塊包含的比特?cái)?shù)為84個(gè),設(shè)該IP核的SNR=10dB。生成的Viterbi-IP核如圖1所示[5]。
由Viterbi-IP核的使用手冊(cè)可知,需要設(shè)計(jì)一個(gè)輸入模塊,產(chǎn)生握手信號(hào),才能把編碼數(shù)據(jù)輸入到Viterbi譯碼器中,因此設(shè)計(jì)了shuruct這個(gè)模塊。整個(gè)電路框圖如圖2所示。

圖1 生成的Viterbi-IP核模塊Fig.1 The module of Viterbi-IP core

圖2 Viterbi譯碼模塊圖Fig.2 Module diagram of decoding by Viterbi algorithm
當(dāng)sink-rdy信號(hào)為高(有效)時(shí),在下一個(gè)時(shí)鐘,sink-val信號(hào)有效,在 sink-val信號(hào)有效時(shí),din[1..0]信號(hào)輸入到Viterbi譯碼器中,輸入的仿真波形如圖3所示。

圖3 輸入信號(hào)仿真波形圖Fig.3 Simulated waveform of input signal
由圖4可知,當(dāng)source-val信號(hào)為高(有效)時(shí),輸出譯碼的數(shù)據(jù)[6]。

圖4 譯碼輸出信號(hào)仿真波形圖Fig.4 Simulatedwaveform of output decoding signal
對(duì)譯碼器糾錯(cuò)性能的測(cè)試,本文采用的方法是先用Matlab產(chǎn)生編碼后有錯(cuò)碼的數(shù)據(jù),然后把數(shù)據(jù)寫入到Bianma.txt文檔中,同時(shí)把輸入編碼器的數(shù)據(jù)也寫入到 YuanBianma.txt文檔中保存起來(lái)。用VerilogHDL語(yǔ)言編寫仿真測(cè)試文件在ModelSim中仿真,同時(shí)讀入Bianma.txt中的數(shù)據(jù),仿真后產(chǎn)生的譯碼數(shù)據(jù)一方面通過(guò)波形顯示出來(lái),一方面寫入到y(tǒng)ima-out.txt文件中。最后把yima-out.txt中的數(shù)據(jù)導(dǎo)入到Matlab中,計(jì)算誤比特率。該文實(shí)驗(yàn)的編碼數(shù)據(jù)為420000個(gè),誤碼形式是以84個(gè)比特為一組,編碼后每84個(gè)比特隨機(jī)錯(cuò)4位、5位、6位、7位、8位。


在ModelSim中編寫仿真測(cè)試文件Viterbi-yima.vt,并加入以下語(yǔ)句,把Bianma.txt中的數(shù)據(jù)讀入到仿真波形中去。



圖5和圖6是大容量數(shù)據(jù)的仿真輸入和輸出波形圖。

圖5 導(dǎo)入編碼數(shù)據(jù)后的仿真輸入波形圖Fig.5 Simulated waveform of imported coding data

圖6 譯碼輸出仿真波形圖Fig.6 Simulated output waveform of decoding data
然后,把保存的未編碼數(shù)據(jù)的YuanBianma.txt文檔和經(jīng)過(guò)Viterbi-IP譯碼以后的yima-out.txt文檔中的數(shù)據(jù)導(dǎo)入到Matlab中,計(jì)算誤比特率。錯(cuò)誤形式如前所述。仿真的誤比特率曲線如圖7所示。圖8是不同信噪比條件下IP核糾錯(cuò)性能與理論算法的糾錯(cuò)性能的比較。

圖7 不同隨機(jī)錯(cuò)誤形式的BER曲線圖Fig.7 BER curve under different random error styles

圖8 不同信噪比條件下的BER曲線圖Fig.8 BER curve under different SNR conditions
由圖7和圖8可知,實(shí)際的Viterbi-IP核能達(dá)到理論上的Viterbi譯碼的糾錯(cuò)能力。另外,也驗(yàn)證了本文介紹的對(duì)IP核仿真驗(yàn)證方法的正確性。
針對(duì)目前廣泛使用的Altera公司的Viterbi-IP核,本文提出了一種基于文件輸入輸出操作方法來(lái)仿真驗(yàn)證該IP核在不同錯(cuò)誤形式和不同信噪比條件下的糾錯(cuò)性能。分析實(shí)驗(yàn)得到的仿真結(jié)果和Matlab仿真得到的結(jié)果,可得該Viterbi-IP核實(shí)際的糾錯(cuò)能力能達(dá)到理論上的Viterbi譯碼的糾錯(cuò)性能。該方法可適用于任何大容量編譯碼數(shù)據(jù)的糾錯(cuò)性能驗(yàn)證,并且通過(guò)在Matlab中加載不同錯(cuò)誤形式的文件,能很方便地驗(yàn)證不同錯(cuò)誤形式下的糾錯(cuò)性能。該方法也可以用于信號(hào)處理、頻譜分析等領(lǐng)域,有較好的實(shí)際應(yīng)用價(jià)值。
[1] 林舒,Costello D J.差錯(cuò)控制編碼[M].王育民,王新梅,譯.北京:人民郵電出版社,1986.LinShu,Costello D J.Error-Control Coding[M].Translated by WANG Yu-min,WANG Xin-mei.Beijing:People′s Posts&Telecom Press,1986.(in Chinese)
[2] 西瑞克斯(北京)通信設(shè)備有限公司.無(wú)線通信的Matlab和FPGA實(shí)現(xiàn)[M].北京:人民郵電出版社,2009:46-52.Cylix Communication Technology Co.,Ltd.Beijing.The Accomplishment of Wireless Communications based of Matlab and FPGA[M].Beijing:People′s Posts&Telecom Press,2009:46-52.(in Chinese)
[3] 管立新.基于IP Core的Viterbi高速譯碼器測(cè)試[J].電子質(zhì)量,2006,30(9):21-23.GUAN Li-xin.The Test of the high rate Viterbi-Decoding[J].The Electron Quality,2006,30(9):21-23.(in Chinese)
[4] 馬金嶺,劉桂敏,梁凱.基于IP核的Viterbi譯碼器實(shí)現(xiàn)[J].信息化研究,2010,36(2):24-27.MA Jin-ling,LIU Gui-min,LIANG Kai.The Accomplishment of Viterbi-decoding based of IP Core[J].The Research of Informationization,2010,36(2):24-27.(in Chinese)
[5] 張傳達(dá),李小文.卷積碼編碼及其Viterbi譯碼的實(shí)現(xiàn)[J].無(wú)線電工程,2006,36(7):45-48.ZHANG Chuan-da,LI Xiao-wen.The Accomplishment of Convolutional encoder and Viterbi Decoder[J].The Wireless Engineering,2006,36(7):45-48.(in Chinese)
[6] 井小沛,武斌,張青春.基于FPGA.的卷積碼的編/譯碼器設(shè)計(jì)[J].電子測(cè)量技術(shù),2008,31(2):116-118.JING Xiao-pei,WU Bin,Zhang Qing-Chun.The Design of Encoder and Decoder based of FPGA[J].The Technology of Electron Testing,2008,31(2):116-118.(in Chinese)