基于FPGA的(7,4)循环码编码和译码的实现
摘要:循环码在实际通信中被广泛使用,因为它可以提高信息传输的可靠性和有效性。随着fpga芯片的普及,其在各个领域的已广泛使用。本文在简单的理论分析上,描述了在fpga中实现(7,4)循环码的编码与译码的实现方案。
关键词:(7,4)循环码 fpga 编码 译码 1.引言
现场可编程逻辑门阵列(fpga),是一个含有可编辑元件的半导体设备,可供使用者现场程式化的逻辑门阵列元件。目前以硬件描述语言(verilog 或 vhdl)所完成的电路设计,可以经过简单的综合与布局,快速的烧录至 fpga 上进行测试,是现代 ic 设计验证的技术主流。
为了使信号具有较好的抗干扰能力,就要对信号加以改造,使信号内部结构具有更强的规律性和相互关联性,以致在噪声破坏了信号的结构时,仍能根据信号原有的内在规律性和相互关联性来发现错误,甚至改正错误,恢复原有的信息。其一般方法是:按照某种规律,对原来的码组添加一些新的码元——监督码元,而原码组中的码元则称为信息码元。监督码元的作用是监督该码组在传输过程中是否发生了错误,甚至指出是哪位或哪些码元发生了错误,以便纠正,添加监督码元的方法(规律或规则)不同,就形成不同的编码方法。 2.(7,4)循环码
在通信系统中,为提高信息传输可靠性,广泛使用了具有一定纠错能力的信道编码技术,某(7,4)循环码的生产多项式
是: ,则其生成矩阵是 ,具体结果见表 其
中: , ,
,并根据生成矩阵与监督矩阵的关系g·h=0从而得到: (2)
根据公式(2)可得到: (3) 3.编码与译码
“公式(3)”表达了根据信息码元值得到各个监督码元值的运算公式,根据这些公式,我们可以得到信息元值与监督元值的具体关系。在fpga中进行(7,4)循环码的编码时,可以根据“公式(3)”编写算法由信息码元值来计算监督码元值,也可以采用查表法由信息码元来计算监督码元。后面一种方法不适用于信息码元位数及监督码元位数较多的循环码,因为这时列出情况较多,其编程较前种方法较复杂。
在进行(7,4)循环码的译码时,根据“公式(3)”可以判读出接收端接收的7位码元是否有误,但不能直接得到错误的码元具体是哪位。这时我们可以根据伴随式值来确定错误的码元是哪位。根据“公式
(3)”可以得到伴随式: (4)
错误码元位置与伴随式值的关系表见“表1”。 表1 错误码元位置与伴随式值关系表
根据“表1”,很容易对错误的码元进行纠正。根据以上内容,要在fpga器件中实现(7,4)循环码的编码和译码操作是很简单的,只需使用简单的逻辑运算或者查表操作即可。 4.结束语
随着数字电路技术的发展,循环码编码、译码技术已广泛应用于各种通信系统中,随着fpga芯片的普及,两者的结合使用必定广泛存在。本文从实际软件编程原理角度出发,在一定的(7,4)循环码的理论基础上,给出了具体的软件编写思路。根据该思路所编写的程序,其操作原理清楚,逻辑简单,且占用fpga资源较少。具有很高的实际使用价值。 参考文献:
[1]王新梅,肖国镇.纠错码-原理与方法[m].西安:西安电子科技大学出版社,2009.
[2]惠高潮,王辉.基于单片机(7,4)循环码编码与译码的研究[j].单片机开发与应用,2009(25):107-108.
[3]边巴格罗,格桑卓玛,拉巴次仁.线性码和循环码的编码与译码[j].西藏科技,2009(194):77-80.