王書省 賀占權(quán) 張少甫 肖長春 曹旸
摘 要: 分析了循環(huán)碼的特性,提出一種循環(huán)漢明碼編譯碼器的設(shè)計方案。編譯碼器中編碼采用除法電路,譯碼采用梅吉特譯碼器,易于工程應用。對編譯碼器在FPGA上進行了實現(xiàn),通過參數(shù)化設(shè)置,具有較高的碼率,適用于(255,247)及其任意縮短碼的循環(huán)漢明碼,并給出了譯碼器的仿真和測試結(jié)果。結(jié)果表明:編譯碼器運行速率高、譯碼時延小,在Virtex?5芯片上,最高工作時鐘頻率大于270 MHz。在碼組錯誤個數(shù)確定的系統(tǒng)應用中,可以有效降低誤碼率,一般可將誤碼率降低一個量級。實踐表明,該設(shè)計具有很強的工程實用價值。
關(guān)鍵詞: 循環(huán)碼; 漢明碼; 編譯碼器; FPGA
中圖分類號: TN914?34 文獻標識碼: A 文章編號: 1004?373X(2014)10?0127?05
Abstract: Based on characteristics analysis of cyclic codes, a design scheme of cyclic Hamming code encoder/decoder is proposed. In the encoder/decoder, a division circuit is adopted for encoding, and a Meggitt decoder is adopted for decoding, which are easy to be applied to engineering implementment. The encoder/decoder, which is suited for (255,247) and its cyclic Hamming code of arbitrarily?truncated codes, and has higher code rate, was implemented on FPGA by means of Verilog HDL. Some optimization techniques in the design process are given. The simulation and testing results of the encoder/decoder are offered in this paper. The encoder/decoder can operate at high speed and has short decoding delay. Its max working clock frequency is higher than 270 MHz in Virtex?5 chip. The encoder/decoder can be applied in digital communication systems that have definite error number. Its BER can be reduced efficiently. The encoder/decoder has high practical value.
Keywords: cyclic code; Hamming code; encoder/decoder; FPGA
0 引 言
在實際信道上傳輸數(shù)字信號時,由于信道傳輸特性不理想及加性噪聲的影響,所收到的數(shù)字信號不可避免地會發(fā)生錯誤。差錯控制編碼是數(shù)字通信系統(tǒng)設(shè)計中廣泛采用的技術(shù)。采用編碼技術(shù)可以降低系統(tǒng)的誤比特率。線性分組碼是重要的一類編碼方式,循環(huán)碼是線性分組碼中的一個子類,是目前研究的較為成熟的一類碼,是在嚴密的代數(shù)學理論基礎(chǔ)上建立起來的。循環(huán)碼有許多特殊的代數(shù)性質(zhì),能夠按照要求的糾錯能力系統(tǒng)地構(gòu)造這類碼,且性能較好,可以用于糾正獨立的隨機錯誤,也可以用于糾正突發(fā)錯誤。目前在計算機糾錯系統(tǒng)中所使用的線性分組碼幾乎都是循環(huán)碼。
循環(huán)漢明碼是以[r]次本原多項式為生成多項式的循環(huán)碼,是一類高效的完備碼[1]。循環(huán)漢明碼能夠糾正1個錯誤的比特,是能糾正隨機錯誤的本原BCH碼[2]。本文研究了循環(huán)漢明碼的編譯碼方法,并利用FPGA實現(xiàn)了循環(huán)漢明碼以及其縮短碼的編譯碼器。編譯碼器占用邏輯資源少,可靠性高。
1 循環(huán)碼原理
與編碼器一樣,在譯碼器程序中設(shè)置有參數(shù)FRM_LGTH以控制是否選擇縮短碼,若FRM_LRTH為255,即表示沒有進行縮短。需要注意進行縮短碼時錯誤圖樣對應的伴隨式可能不同,需要進行相應的參數(shù)設(shè)置。
4 編譯碼器的實現(xiàn)及仿真結(jié)果
編譯碼器的開發(fā)遵循自上而下的設(shè)計方法,采用Verilog HDL進行編程,利用集成開發(fā)環(huán)境Xilinx ISE12.1在Virtex?5芯片上進行實現(xiàn)。對于碼長255(不選擇縮短)的編碼器,在XC4VSX95T上實現(xiàn)占用的資源:29 slices,19 FFs,55 LUTs,運行時鐘頻率可以達到297 MHz;對于碼長255(不選擇縮短)的譯碼器占用的資源:69 slices,74 FFs,113 LUTs,運行時鐘頻率可以達到306 MHz。圖7和圖8分別給出了(255,247)和(152,144)循環(huán)漢明碼編譯碼器的仿真波形。在仿真過程中,對經(jīng)過編碼后的數(shù)據(jù)在隨機位置產(chǎn)生錯誤,然后輸出給譯碼器進行譯碼,變量error2對應的比特為給出的錯誤位置指示,變量data_decoded為譯碼后數(shù)據(jù),已根據(jù)錯誤位置正確地糾正了對應的比特。
5 結(jié) 語
本文提出了一種(255,247)循環(huán)漢明碼編譯碼器的設(shè)計方案,充分利用循環(huán)碼的特性,避免了一般分組碼編譯碼的復雜結(jié)構(gòu),且易于實現(xiàn)。對編譯碼器進行了優(yōu)化并在FPGA上進行實現(xiàn),資源占用較少,運行速率高,譯碼時延小,可以靈活地選擇不超過255 b的碼組長度。通過對編譯碼器進行仿真和測試,結(jié)果表明可以正確地進行檢糾錯。循環(huán)漢明碼作為一種信道編碼技術(shù),具有良好的性能和實用價值,一般和其他編碼方式組合使用。
在筆者參與的某工程項目中,應用了(152,144)編譯碼器。系統(tǒng)中采用循環(huán)漢明碼和卷積碼,正常工作狀態(tài)下,由于需要經(jīng)常切換天線可能引起數(shù)據(jù)反相,經(jīng)Viterbi譯碼和差分譯碼后,會引起1 b的錯誤,經(jīng)過循環(huán)漢明譯碼后消除了錯誤,用最小的碼率增加將系統(tǒng)的誤碼率控制在系統(tǒng)要求的≤10e-6指標。經(jīng)工程實踐證明,本設(shè)計具有很強的工程實用價值。
參考文獻
[1] 曹志剛,錢亞生.現(xiàn)代通信原理[M].北京:清華大學出版社,1992.
[2] 張鳴瑞,鄒世開.編碼理論[M].北京:北京航空航天大學出版社,1990.
[3] 王新梅,肖國鎮(zhèn).糾錯碼:原理與方法[M].西安:西安電子科技大學出版社,2001.
[4] PROAKIS J G, SALEHI M. Digital communications [M]. Fifth Edition. Beijing: Publishing House of Electronics Industry, 2009.
[5] SWEENEY Peter. Error control coding from theory to practice [M]. England: Jossey?Bass, Inc, 2004.
[6] 董介春,李學桂.基于VHDL語言的循環(huán)碼編譯碼系統(tǒng)的設(shè)計[J].青島大學學報,2003,16(4):72?76.
[7] 瞿海惠,張浩,楊亞光,等.三維TPC譯碼器的設(shè)計及FPGA實現(xiàn)[J].現(xiàn)代電子技術(shù),2013,36(23):26?29.
[8] 岳菊霞,計雯,石可,等.漢明編譯碼仿真系統(tǒng)的實現(xiàn)[J].現(xiàn)代電子技術(shù),2012,35(11):27?29.
摘 要: 分析了循環(huán)碼的特性,提出一種循環(huán)漢明碼編譯碼器的設(shè)計方案。編譯碼器中編碼采用除法電路,譯碼采用梅吉特譯碼器,易于工程應用。對編譯碼器在FPGA上進行了實現(xiàn),通過參數(shù)化設(shè)置,具有較高的碼率,適用于(255,247)及其任意縮短碼的循環(huán)漢明碼,并給出了譯碼器的仿真和測試結(jié)果。結(jié)果表明:編譯碼器運行速率高、譯碼時延小,在Virtex?5芯片上,最高工作時鐘頻率大于270 MHz。在碼組錯誤個數(shù)確定的系統(tǒng)應用中,可以有效降低誤碼率,一般可將誤碼率降低一個量級。實踐表明,該設(shè)計具有很強的工程實用價值。
關(guān)鍵詞: 循環(huán)碼; 漢明碼; 編譯碼器; FPGA
中圖分類號: TN914?34 文獻標識碼: A 文章編號: 1004?373X(2014)10?0127?05
Abstract: Based on characteristics analysis of cyclic codes, a design scheme of cyclic Hamming code encoder/decoder is proposed. In the encoder/decoder, a division circuit is adopted for encoding, and a Meggitt decoder is adopted for decoding, which are easy to be applied to engineering implementment. The encoder/decoder, which is suited for (255,247) and its cyclic Hamming code of arbitrarily?truncated codes, and has higher code rate, was implemented on FPGA by means of Verilog HDL. Some optimization techniques in the design process are given. The simulation and testing results of the encoder/decoder are offered in this paper. The encoder/decoder can operate at high speed and has short decoding delay. Its max working clock frequency is higher than 270 MHz in Virtex?5 chip. The encoder/decoder can be applied in digital communication systems that have definite error number. Its BER can be reduced efficiently. The encoder/decoder has high practical value.
Keywords: cyclic code; Hamming code; encoder/decoder; FPGA
0 引 言
在實際信道上傳輸數(shù)字信號時,由于信道傳輸特性不理想及加性噪聲的影響,所收到的數(shù)字信號不可避免地會發(fā)生錯誤。差錯控制編碼是數(shù)字通信系統(tǒng)設(shè)計中廣泛采用的技術(shù)。采用編碼技術(shù)可以降低系統(tǒng)的誤比特率。線性分組碼是重要的一類編碼方式,循環(huán)碼是線性分組碼中的一個子類,是目前研究的較為成熟的一類碼,是在嚴密的代數(shù)學理論基礎(chǔ)上建立起來的。循環(huán)碼有許多特殊的代數(shù)性質(zhì),能夠按照要求的糾錯能力系統(tǒng)地構(gòu)造這類碼,且性能較好,可以用于糾正獨立的隨機錯誤,也可以用于糾正突發(fā)錯誤。目前在計算機糾錯系統(tǒng)中所使用的線性分組碼幾乎都是循環(huán)碼。
循環(huán)漢明碼是以[r]次本原多項式為生成多項式的循環(huán)碼,是一類高效的完備碼[1]。循環(huán)漢明碼能夠糾正1個錯誤的比特,是能糾正隨機錯誤的本原BCH碼[2]。本文研究了循環(huán)漢明碼的編譯碼方法,并利用FPGA實現(xiàn)了循環(huán)漢明碼以及其縮短碼的編譯碼器。編譯碼器占用邏輯資源少,可靠性高。
1 循環(huán)碼原理
與編碼器一樣,在譯碼器程序中設(shè)置有參數(shù)FRM_LGTH以控制是否選擇縮短碼,若FRM_LRTH為255,即表示沒有進行縮短。需要注意進行縮短碼時錯誤圖樣對應的伴隨式可能不同,需要進行相應的參數(shù)設(shè)置。
4 編譯碼器的實現(xiàn)及仿真結(jié)果
編譯碼器的開發(fā)遵循自上而下的設(shè)計方法,采用Verilog HDL進行編程,利用集成開發(fā)環(huán)境Xilinx ISE12.1在Virtex?5芯片上進行實現(xiàn)。對于碼長255(不選擇縮短)的編碼器,在XC4VSX95T上實現(xiàn)占用的資源:29 slices,19 FFs,55 LUTs,運行時鐘頻率可以達到297 MHz;對于碼長255(不選擇縮短)的譯碼器占用的資源:69 slices,74 FFs,113 LUTs,運行時鐘頻率可以達到306 MHz。圖7和圖8分別給出了(255,247)和(152,144)循環(huán)漢明碼編譯碼器的仿真波形。在仿真過程中,對經(jīng)過編碼后的數(shù)據(jù)在隨機位置產(chǎn)生錯誤,然后輸出給譯碼器進行譯碼,變量error2對應的比特為給出的錯誤位置指示,變量data_decoded為譯碼后數(shù)據(jù),已根據(jù)錯誤位置正確地糾正了對應的比特。
5 結(jié) 語
本文提出了一種(255,247)循環(huán)漢明碼編譯碼器的設(shè)計方案,充分利用循環(huán)碼的特性,避免了一般分組碼編譯碼的復雜結(jié)構(gòu),且易于實現(xiàn)。對編譯碼器進行了優(yōu)化并在FPGA上進行實現(xiàn),資源占用較少,運行速率高,譯碼時延小,可以靈活地選擇不超過255 b的碼組長度。通過對編譯碼器進行仿真和測試,結(jié)果表明可以正確地進行檢糾錯。循環(huán)漢明碼作為一種信道編碼技術(shù),具有良好的性能和實用價值,一般和其他編碼方式組合使用。
在筆者參與的某工程項目中,應用了(152,144)編譯碼器。系統(tǒng)中采用循環(huán)漢明碼和卷積碼,正常工作狀態(tài)下,由于需要經(jīng)常切換天線可能引起數(shù)據(jù)反相,經(jīng)Viterbi譯碼和差分譯碼后,會引起1 b的錯誤,經(jīng)過循環(huán)漢明譯碼后消除了錯誤,用最小的碼率增加將系統(tǒng)的誤碼率控制在系統(tǒng)要求的≤10e-6指標。經(jīng)工程實踐證明,本設(shè)計具有很強的工程實用價值。
參考文獻
[1] 曹志剛,錢亞生.現(xiàn)代通信原理[M].北京:清華大學出版社,1992.
[2] 張鳴瑞,鄒世開.編碼理論[M].北京:北京航空航天大學出版社,1990.
[3] 王新梅,肖國鎮(zhèn).糾錯碼:原理與方法[M].西安:西安電子科技大學出版社,2001.
[4] PROAKIS J G, SALEHI M. Digital communications [M]. Fifth Edition. Beijing: Publishing House of Electronics Industry, 2009.
[5] SWEENEY Peter. Error control coding from theory to practice [M]. England: Jossey?Bass, Inc, 2004.
[6] 董介春,李學桂.基于VHDL語言的循環(huán)碼編譯碼系統(tǒng)的設(shè)計[J].青島大學學報,2003,16(4):72?76.
[7] 瞿?;?,張浩,楊亞光,等.三維TPC譯碼器的設(shè)計及FPGA實現(xiàn)[J].現(xiàn)代電子技術(shù),2013,36(23):26?29.
[8] 岳菊霞,計雯,石可,等.漢明編譯碼仿真系統(tǒng)的實現(xiàn)[J].現(xiàn)代電子技術(shù),2012,35(11):27?29.
摘 要: 分析了循環(huán)碼的特性,提出一種循環(huán)漢明碼編譯碼器的設(shè)計方案。編譯碼器中編碼采用除法電路,譯碼采用梅吉特譯碼器,易于工程應用。對編譯碼器在FPGA上進行了實現(xiàn),通過參數(shù)化設(shè)置,具有較高的碼率,適用于(255,247)及其任意縮短碼的循環(huán)漢明碼,并給出了譯碼器的仿真和測試結(jié)果。結(jié)果表明:編譯碼器運行速率高、譯碼時延小,在Virtex?5芯片上,最高工作時鐘頻率大于270 MHz。在碼組錯誤個數(shù)確定的系統(tǒng)應用中,可以有效降低誤碼率,一般可將誤碼率降低一個量級。實踐表明,該設(shè)計具有很強的工程實用價值。
關(guān)鍵詞: 循環(huán)碼; 漢明碼; 編譯碼器; FPGA
中圖分類號: TN914?34 文獻標識碼: A 文章編號: 1004?373X(2014)10?0127?05
Abstract: Based on characteristics analysis of cyclic codes, a design scheme of cyclic Hamming code encoder/decoder is proposed. In the encoder/decoder, a division circuit is adopted for encoding, and a Meggitt decoder is adopted for decoding, which are easy to be applied to engineering implementment. The encoder/decoder, which is suited for (255,247) and its cyclic Hamming code of arbitrarily?truncated codes, and has higher code rate, was implemented on FPGA by means of Verilog HDL. Some optimization techniques in the design process are given. The simulation and testing results of the encoder/decoder are offered in this paper. The encoder/decoder can operate at high speed and has short decoding delay. Its max working clock frequency is higher than 270 MHz in Virtex?5 chip. The encoder/decoder can be applied in digital communication systems that have definite error number. Its BER can be reduced efficiently. The encoder/decoder has high practical value.
Keywords: cyclic code; Hamming code; encoder/decoder; FPGA
0 引 言
在實際信道上傳輸數(shù)字信號時,由于信道傳輸特性不理想及加性噪聲的影響,所收到的數(shù)字信號不可避免地會發(fā)生錯誤。差錯控制編碼是數(shù)字通信系統(tǒng)設(shè)計中廣泛采用的技術(shù)。采用編碼技術(shù)可以降低系統(tǒng)的誤比特率。線性分組碼是重要的一類編碼方式,循環(huán)碼是線性分組碼中的一個子類,是目前研究的較為成熟的一類碼,是在嚴密的代數(shù)學理論基礎(chǔ)上建立起來的。循環(huán)碼有許多特殊的代數(shù)性質(zhì),能夠按照要求的糾錯能力系統(tǒng)地構(gòu)造這類碼,且性能較好,可以用于糾正獨立的隨機錯誤,也可以用于糾正突發(fā)錯誤。目前在計算機糾錯系統(tǒng)中所使用的線性分組碼幾乎都是循環(huán)碼。
循環(huán)漢明碼是以[r]次本原多項式為生成多項式的循環(huán)碼,是一類高效的完備碼[1]。循環(huán)漢明碼能夠糾正1個錯誤的比特,是能糾正隨機錯誤的本原BCH碼[2]。本文研究了循環(huán)漢明碼的編譯碼方法,并利用FPGA實現(xiàn)了循環(huán)漢明碼以及其縮短碼的編譯碼器。編譯碼器占用邏輯資源少,可靠性高。
1 循環(huán)碼原理
與編碼器一樣,在譯碼器程序中設(shè)置有參數(shù)FRM_LGTH以控制是否選擇縮短碼,若FRM_LRTH為255,即表示沒有進行縮短。需要注意進行縮短碼時錯誤圖樣對應的伴隨式可能不同,需要進行相應的參數(shù)設(shè)置。
4 編譯碼器的實現(xiàn)及仿真結(jié)果
編譯碼器的開發(fā)遵循自上而下的設(shè)計方法,采用Verilog HDL進行編程,利用集成開發(fā)環(huán)境Xilinx ISE12.1在Virtex?5芯片上進行實現(xiàn)。對于碼長255(不選擇縮短)的編碼器,在XC4VSX95T上實現(xiàn)占用的資源:29 slices,19 FFs,55 LUTs,運行時鐘頻率可以達到297 MHz;對于碼長255(不選擇縮短)的譯碼器占用的資源:69 slices,74 FFs,113 LUTs,運行時鐘頻率可以達到306 MHz。圖7和圖8分別給出了(255,247)和(152,144)循環(huán)漢明碼編譯碼器的仿真波形。在仿真過程中,對經(jīng)過編碼后的數(shù)據(jù)在隨機位置產(chǎn)生錯誤,然后輸出給譯碼器進行譯碼,變量error2對應的比特為給出的錯誤位置指示,變量data_decoded為譯碼后數(shù)據(jù),已根據(jù)錯誤位置正確地糾正了對應的比特。
5 結(jié) 語
本文提出了一種(255,247)循環(huán)漢明碼編譯碼器的設(shè)計方案,充分利用循環(huán)碼的特性,避免了一般分組碼編譯碼的復雜結(jié)構(gòu),且易于實現(xiàn)。對編譯碼器進行了優(yōu)化并在FPGA上進行實現(xiàn),資源占用較少,運行速率高,譯碼時延小,可以靈活地選擇不超過255 b的碼組長度。通過對編譯碼器進行仿真和測試,結(jié)果表明可以正確地進行檢糾錯。循環(huán)漢明碼作為一種信道編碼技術(shù),具有良好的性能和實用價值,一般和其他編碼方式組合使用。
在筆者參與的某工程項目中,應用了(152,144)編譯碼器。系統(tǒng)中采用循環(huán)漢明碼和卷積碼,正常工作狀態(tài)下,由于需要經(jīng)常切換天線可能引起數(shù)據(jù)反相,經(jīng)Viterbi譯碼和差分譯碼后,會引起1 b的錯誤,經(jīng)過循環(huán)漢明譯碼后消除了錯誤,用最小的碼率增加將系統(tǒng)的誤碼率控制在系統(tǒng)要求的≤10e-6指標。經(jīng)工程實踐證明,本設(shè)計具有很強的工程實用價值。
參考文獻
[1] 曹志剛,錢亞生.現(xiàn)代通信原理[M].北京:清華大學出版社,1992.
[2] 張鳴瑞,鄒世開.編碼理論[M].北京:北京航空航天大學出版社,1990.
[3] 王新梅,肖國鎮(zhèn).糾錯碼:原理與方法[M].西安:西安電子科技大學出版社,2001.
[4] PROAKIS J G, SALEHI M. Digital communications [M]. Fifth Edition. Beijing: Publishing House of Electronics Industry, 2009.
[5] SWEENEY Peter. Error control coding from theory to practice [M]. England: Jossey?Bass, Inc, 2004.
[6] 董介春,李學桂.基于VHDL語言的循環(huán)碼編譯碼系統(tǒng)的設(shè)計[J].青島大學學報,2003,16(4):72?76.
[7] 瞿海惠,張浩,楊亞光,等.三維TPC譯碼器的設(shè)計及FPGA實現(xiàn)[J].現(xiàn)代電子技術(shù),2013,36(23):26?29.
[8] 岳菊霞,計雯,石可,等.漢明編譯碼仿真系統(tǒng)的實現(xiàn)[J].現(xiàn)代電子技術(shù),2012,35(11):27?29.