APP下载

循环汉明码编译码器的设计与FPGA实现

2014-07-19王书省贺占权张少甫肖长春曹旸

现代电子技术 2014年10期

王书省 贺占权 张少甫 肖长春 曹旸

摘 要: 分析了循环码的特性,提出一种循环汉明码编译码器的设计方案。编译码器中编码采用除法电路,译码采用梅吉特译码器,易于工程应用。对编译码器在FPGA上进行了实现,通过参数化设置,具有较高的码率,适用于(255,247)及其任意缩短码的循环汉明码,并给出了译码器的仿真和测试结果。结果表明:编译码器运行速率高、译码时延小,在Virtex?5芯片上,最高工作时钟频率大于270 MHz。在码组错误个数确定的系统应用中,可以有效降低误码率,一般可将误码率降低一个量级。实践表明,该设计具有很强的工程实用价值。

关键词: 循环码; 汉明码; 编译码器; 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 引 言

在实际信道上传输数字信号时,由于信道传输特性不理想及加性噪声的影响,所收到的数字信号不可避免地会发生错误。差错控制编码是数字通信系统设计中广泛采用的技术。采用编码技术可以降低系统的误比特率。线性分组码是重要的一类编码方式,循环码是线性分组码中的一个子类,是目前研究的较为成熟的一类码,是在严密的代数学理论基础上建立起来的。循环码有许多特殊的代数性质,能够按照要求的纠错能力系统地构造这类码,且性能较好,可以用于纠正独立的随机错误,也可以用于纠正突发错误。目前在计算机纠错系统中所使用的线性分组码几乎都是循环码。

循环汉明码是以[r]次本原多项式为生成多项式的循环码,是一类高效的完备码[1]。循环汉明码能够纠正1个错误的比特,是能纠正随机错误的本原BCH码[2]。本文研究了循环汉明码的编译码方法,并利用FPGA实现了循环汉明码以及其缩短码的编译码器。编译码器占用逻辑资源少,可靠性高。

1 循环码原理

与编码器一样,在译码器程序中设置有参数FRM_LGTH以控制是否选择缩短码,若FRM_LRTH为255,即表示没有进行缩短。需要注意进行缩短码时错误图样对应的伴随式可能不同,需要进行相应的参数设置。

4 编译码器的实现及仿真结果

编译码器的开发遵循自上而下的设计方法,采用Verilog HDL进行编程,利用集成开发环境Xilinx ISE12.1在Virtex?5芯片上进行实现。对于码长255(不选择缩短)的编码器,在XC4VSX95T上实现占用的资源:29 slices,19 FFs,55 LUTs,运行时钟频率可以达到297 MHz;对于码长255(不选择缩短)的译码器占用的资源:69 slices,74 FFs,113 LUTs,运行时钟频率可以达到306 MHz。图7和图8分别给出了(255,247)和(152,144)循环汉明码编译码器的仿真波形。在仿真过程中,对经过编码后的数据在随机位置产生错误,然后输出给译码器进行译码,变量error2对应的比特为给出的错误位置指示,变量data_decoded为译码后数据,已根据错误位置正确地纠正了对应的比特。

5 结 语

本文提出了一种(255,247)循环汉明码编译码器的设计方案,充分利用循环码的特性,避免了一般分组码编译码的复杂结构,且易于实现。对编译码器进行了优化并在FPGA上进行实现,资源占用较少,运行速率高,译码时延小,可以灵活地选择不超过255 b的码组长度。通过对编译码器进行仿真和测试,结果表明可以正确地进行检纠错。循环汉明码作为一种信道编码技术,具有良好的性能和实用价值,一般和其他编码方式组合使用。

在笔者参与的某工程项目中,应用了(152,144)编译码器。系统中采用循环汉明码和卷积码,正常工作状态下,由于需要经常切换天线可能引起数据反相,经Viterbi译码和差分译码后,会引起1 b的错误,经过循环汉明译码后消除了错误,用最小的码率增加将系统的误码率控制在系统要求的≤10e-6指标。经工程实践证明,本设计具有很强的工程实用价值。

参考文献

[1] 曹志刚,钱亚生.现代通信原理[M].北京:清华大学出版社,1992.

[2] 张鸣瑞,邹世开.编码理论[M].北京:北京航空航天大学出版社,1990.

[3] 王新梅,肖国镇.纠错码:原理与方法[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语言的循环码编译码系统的设计[J].青岛大学学报,2003,16(4):72?76.

[7] 瞿海惠,张浩,杨亚光,等.三维TPC译码器的设计及FPGA实现[J].现代电子技术,2013,36(23):26?29.

[8] 岳菊霞,计雯,石可,等.汉明编译码仿真系统的实现[J].现代电子技术,2012,35(11):27?29.

摘 要: 分析了循环码的特性,提出一种循环汉明码编译码器的设计方案。编译码器中编码采用除法电路,译码采用梅吉特译码器,易于工程应用。对编译码器在FPGA上进行了实现,通过参数化设置,具有较高的码率,适用于(255,247)及其任意缩短码的循环汉明码,并给出了译码器的仿真和测试结果。结果表明:编译码器运行速率高、译码时延小,在Virtex?5芯片上,最高工作时钟频率大于270 MHz。在码组错误个数确定的系统应用中,可以有效降低误码率,一般可将误码率降低一个量级。实践表明,该设计具有很强的工程实用价值。

关键词: 循环码; 汉明码; 编译码器; 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 引 言

在实际信道上传输数字信号时,由于信道传输特性不理想及加性噪声的影响,所收到的数字信号不可避免地会发生错误。差错控制编码是数字通信系统设计中广泛采用的技术。采用编码技术可以降低系统的误比特率。线性分组码是重要的一类编码方式,循环码是线性分组码中的一个子类,是目前研究的较为成熟的一类码,是在严密的代数学理论基础上建立起来的。循环码有许多特殊的代数性质,能够按照要求的纠错能力系统地构造这类码,且性能较好,可以用于纠正独立的随机错误,也可以用于纠正突发错误。目前在计算机纠错系统中所使用的线性分组码几乎都是循环码。

循环汉明码是以[r]次本原多项式为生成多项式的循环码,是一类高效的完备码[1]。循环汉明码能够纠正1个错误的比特,是能纠正随机错误的本原BCH码[2]。本文研究了循环汉明码的编译码方法,并利用FPGA实现了循环汉明码以及其缩短码的编译码器。编译码器占用逻辑资源少,可靠性高。

1 循环码原理

与编码器一样,在译码器程序中设置有参数FRM_LGTH以控制是否选择缩短码,若FRM_LRTH为255,即表示没有进行缩短。需要注意进行缩短码时错误图样对应的伴随式可能不同,需要进行相应的参数设置。

4 编译码器的实现及仿真结果

编译码器的开发遵循自上而下的设计方法,采用Verilog HDL进行编程,利用集成开发环境Xilinx ISE12.1在Virtex?5芯片上进行实现。对于码长255(不选择缩短)的编码器,在XC4VSX95T上实现占用的资源:29 slices,19 FFs,55 LUTs,运行时钟频率可以达到297 MHz;对于码长255(不选择缩短)的译码器占用的资源:69 slices,74 FFs,113 LUTs,运行时钟频率可以达到306 MHz。图7和图8分别给出了(255,247)和(152,144)循环汉明码编译码器的仿真波形。在仿真过程中,对经过编码后的数据在随机位置产生错误,然后输出给译码器进行译码,变量error2对应的比特为给出的错误位置指示,变量data_decoded为译码后数据,已根据错误位置正确地纠正了对应的比特。

5 结 语

本文提出了一种(255,247)循环汉明码编译码器的设计方案,充分利用循环码的特性,避免了一般分组码编译码的复杂结构,且易于实现。对编译码器进行了优化并在FPGA上进行实现,资源占用较少,运行速率高,译码时延小,可以灵活地选择不超过255 b的码组长度。通过对编译码器进行仿真和测试,结果表明可以正确地进行检纠错。循环汉明码作为一种信道编码技术,具有良好的性能和实用价值,一般和其他编码方式组合使用。

在笔者参与的某工程项目中,应用了(152,144)编译码器。系统中采用循环汉明码和卷积码,正常工作状态下,由于需要经常切换天线可能引起数据反相,经Viterbi译码和差分译码后,会引起1 b的错误,经过循环汉明译码后消除了错误,用最小的码率增加将系统的误码率控制在系统要求的≤10e-6指标。经工程实践证明,本设计具有很强的工程实用价值。

参考文献

[1] 曹志刚,钱亚生.现代通信原理[M].北京:清华大学出版社,1992.

[2] 张鸣瑞,邹世开.编码理论[M].北京:北京航空航天大学出版社,1990.

[3] 王新梅,肖国镇.纠错码:原理与方法[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语言的循环码编译码系统的设计[J].青岛大学学报,2003,16(4):72?76.

[7] 瞿海惠,张浩,杨亚光,等.三维TPC译码器的设计及FPGA实现[J].现代电子技术,2013,36(23):26?29.

[8] 岳菊霞,计雯,石可,等.汉明编译码仿真系统的实现[J].现代电子技术,2012,35(11):27?29.

摘 要: 分析了循环码的特性,提出一种循环汉明码编译码器的设计方案。编译码器中编码采用除法电路,译码采用梅吉特译码器,易于工程应用。对编译码器在FPGA上进行了实现,通过参数化设置,具有较高的码率,适用于(255,247)及其任意缩短码的循环汉明码,并给出了译码器的仿真和测试结果。结果表明:编译码器运行速率高、译码时延小,在Virtex?5芯片上,最高工作时钟频率大于270 MHz。在码组错误个数确定的系统应用中,可以有效降低误码率,一般可将误码率降低一个量级。实践表明,该设计具有很强的工程实用价值。

关键词: 循环码; 汉明码; 编译码器; 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 引 言

在实际信道上传输数字信号时,由于信道传输特性不理想及加性噪声的影响,所收到的数字信号不可避免地会发生错误。差错控制编码是数字通信系统设计中广泛采用的技术。采用编码技术可以降低系统的误比特率。线性分组码是重要的一类编码方式,循环码是线性分组码中的一个子类,是目前研究的较为成熟的一类码,是在严密的代数学理论基础上建立起来的。循环码有许多特殊的代数性质,能够按照要求的纠错能力系统地构造这类码,且性能较好,可以用于纠正独立的随机错误,也可以用于纠正突发错误。目前在计算机纠错系统中所使用的线性分组码几乎都是循环码。

循环汉明码是以[r]次本原多项式为生成多项式的循环码,是一类高效的完备码[1]。循环汉明码能够纠正1个错误的比特,是能纠正随机错误的本原BCH码[2]。本文研究了循环汉明码的编译码方法,并利用FPGA实现了循环汉明码以及其缩短码的编译码器。编译码器占用逻辑资源少,可靠性高。

1 循环码原理

与编码器一样,在译码器程序中设置有参数FRM_LGTH以控制是否选择缩短码,若FRM_LRTH为255,即表示没有进行缩短。需要注意进行缩短码时错误图样对应的伴随式可能不同,需要进行相应的参数设置。

4 编译码器的实现及仿真结果

编译码器的开发遵循自上而下的设计方法,采用Verilog HDL进行编程,利用集成开发环境Xilinx ISE12.1在Virtex?5芯片上进行实现。对于码长255(不选择缩短)的编码器,在XC4VSX95T上实现占用的资源:29 slices,19 FFs,55 LUTs,运行时钟频率可以达到297 MHz;对于码长255(不选择缩短)的译码器占用的资源:69 slices,74 FFs,113 LUTs,运行时钟频率可以达到306 MHz。图7和图8分别给出了(255,247)和(152,144)循环汉明码编译码器的仿真波形。在仿真过程中,对经过编码后的数据在随机位置产生错误,然后输出给译码器进行译码,变量error2对应的比特为给出的错误位置指示,变量data_decoded为译码后数据,已根据错误位置正确地纠正了对应的比特。

5 结 语

本文提出了一种(255,247)循环汉明码编译码器的设计方案,充分利用循环码的特性,避免了一般分组码编译码的复杂结构,且易于实现。对编译码器进行了优化并在FPGA上进行实现,资源占用较少,运行速率高,译码时延小,可以灵活地选择不超过255 b的码组长度。通过对编译码器进行仿真和测试,结果表明可以正确地进行检纠错。循环汉明码作为一种信道编码技术,具有良好的性能和实用价值,一般和其他编码方式组合使用。

在笔者参与的某工程项目中,应用了(152,144)编译码器。系统中采用循环汉明码和卷积码,正常工作状态下,由于需要经常切换天线可能引起数据反相,经Viterbi译码和差分译码后,会引起1 b的错误,经过循环汉明译码后消除了错误,用最小的码率增加将系统的误码率控制在系统要求的≤10e-6指标。经工程实践证明,本设计具有很强的工程实用价值。

参考文献

[1] 曹志刚,钱亚生.现代通信原理[M].北京:清华大学出版社,1992.

[2] 张鸣瑞,邹世开.编码理论[M].北京:北京航空航天大学出版社,1990.

[3] 王新梅,肖国镇.纠错码:原理与方法[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语言的循环码编译码系统的设计[J].青岛大学学报,2003,16(4):72?76.

[7] 瞿海惠,张浩,杨亚光,等.三维TPC译码器的设计及FPGA实现[J].现代电子技术,2013,36(23):26?29.

[8] 岳菊霞,计雯,石可,等.汉明编译码仿真系统的实现[J].现代电子技术,2012,35(11):27?29.