所有提交的EM系统将被重定向到网上投稿系统.作者被要求将文章直接提交给网上投稿系统各自的日志。

使用VHDL的增强型(15,5)BCH解码器

拉库马Goverchav1和V.Sreevani2
  1. P.G.学生(M.Tech)在VLSI和ES, GIET, Rajahmundry, A.P.印度
  2. 助理教授,M.Tech (VLSI & SD),欧洲经委会,GIET, Rajahmundry, A.P.印度
有关文章载于Pubmed谷歌学者

更多相关文章请访问国际电气、电子和仪器工程高级研究杂志

摘要

纠错码是指在不可靠的通信介质中,用于纠正数据传输过程中发生的错误的代码。这些代码背后的思想是为传输的数据添加冗余位,这样即使由于信道中的噪声而发生一些错误,目标端也能正确地接收数据。Bose, Ray- Chaudhuri, Hocquenghem (BCH)码是一种纠错码。BCH译码器由四个模块组成,分别是综合征模块、IBM模块、简讯搜索模块和纠错模块。本文介绍了一种用于BCH译码器的码元搜索块错误检测的新方法。所提出的证候块通过从相应的奇数证候计算偶数证候来减少计算量。采用新的因数分解方法实现了增强型BCH译码器的简搜索块算法,减少了所需的分量。因此,本文提出了一种新的BCH解码器模型,该解码器减少了综合征和简搜索块的面积,简化了计算调度,没有并行性,从而获得了较高的吞吐量。增强型追逐BCH解码器采用硬件描述语言Verilog设计,并在Xilinx ISE 14.3中合成。



关键字

BCH代码,综合征块,渐进搜索块,错误检测

介绍

信息理论和编码理论应用于计算机通信和电信应用。错误纠正和检测是上述应用程序中使用的技术,能够通过不可靠的通信通道可靠地传输数字数据。许多通信信道在从源到接收机[1][6]的信息传输过程中都会受到信道噪声的影响。信道编码理论认为,通过适当的编码可以实现可靠的传输。“信道编码”是一种用于保持信息比特的原创性、避免信息比特的重传以及检测和纠正传输过程中出现的错误的技术。
错误检测是检测从发射机到接收机的传输过程中由噪声或其他损伤引起的错误。它使用了冗余[8]的概念,这意味着在目的地添加额外的位来检测错误。在纠错中,接收方可以使用任何纠错码,这些纠错码可以自动纠错某些错误,并可以重建原始数据。
A.检测方法
1)重复码:
重复码是一种编码方案,它在信道上重复比特以实现无差错通信。重复编码的效率非常低,如果每组的错误都发生在完全相同的地方,就容易出现问题。
2)循环冗余检查(CRC):
CRC是一种单突发错误检测循环代码,设计用于检测计算机网络中数字数据的意外变化。它不适用于检测恶意引入的错误。
3)校验位:
这些是错误检测代码的最简单形式。它们可以检测输出中的单个错误或任何其他奇数个错误。偶校验是循环冗余校验(CRC)的一种特殊情况,其中1位CRC由多项式x+1生成。
B纠正方法
1)自动重复请求(ARQ):
自动重复请求(ARQ)是一种数据传输的错误控制方法,它利用错误检测码、确认和否定确认消息以及超时来实现可靠的数据传输。如果通信信道具有变化的或未知的容量,则使用ARQ。它需要通道的可用性,由于重传可能会导致延迟增加,并且需要为重传维护缓冲区和计时器。
2)前向纠错(FEC):
纠错码(ECC)或前向纠错码(FEC)是一种向消息中添加冗余数据或校验数据的系统,这样即使在传输过程中出现了许多错误,接收方也可以恢复消息。前向纠错不需要back通道,因为接收方不需要要求发送方重传数据[9][10]。
纠错码将来可以分为两大类,如卷积码和分组码:
它们是逐位处理的。它们适合在硬件中实现,并且存在许多解码这些代码的算法。Viterbi算法具有较高的性能。因此,维特比译码器是最常用的译码器。
块代码:
分组码被实现为(n, k)码,其中n表示码字,k定义原始信息位。因此,原始消息位需要增加的冗余位数为(n-k),分组码为固定信道码。BCH码是分组码的子集。
这项工作的目标是减少在综合征和渐近搜索块[5][3]中使用的成分数量。新的分解方法允许构思另一个简化搜索块,减少逻辑门的数量。
本文组织结构如下:第二节BCHencoder_lfsr的设计与体系结构第三节分别介绍了改进后的bch解码器和综合征和Chiensearch的详细结构。第四节给出了增强BCH(15,5)的仿真结果,并对结果进行了分析。第五节得出结论。

Encoder_lfsr设计和架构的BCH代码

本课题采用的Encoder_LFSR设计是现代数字通信系统中最常用的。这种encoder_LFSR设计几乎适用于所有BCH代码架构,它使用线性反馈移位寄存器进行多项式除法。
码字格式为[4]:
C (x) = xn-k * i(x) + b(x) (3.1)
其中,码字c(x) = c0 + c1x +…+ cn-1xn-1
信息位i(x)= i0 + i1x +…+ ik-1xk-1
余数b(x)= b0 + b1x +…+ bm-1xm-1
ci、ji、bi是伽罗瓦场的子集。如果取b(x)为多项式,使得k个数据位将以码字形式表示,如下所示:
Xn-k * i(x) = q(x) * g(x) - b(x) (3.2)
BCH代码实现为循环代码。因此,实现编码器lfsr和解码器的逻辑被控制在移位寄存器电路中。利用循环码的性质,余数b(x)可以在线性(n-k)级移位寄存器中计算,并与发生器多项式的系数反馈连接。
原始消息位在不改变其形式的情况下传输(在此操作期间,开关s2_in位于位置2),线性[2]在线性反馈移位寄存器中生成的奇偶校验位被传输(开关s2_in是inFor周期k+1到n,位置1),LFSR中的反馈被关闭(s1_in off)。反馈移位寄存器计算奇偶校验位(开关s1_in现在打开)。

BCH码译码器设计与结构

BCH解码器有四个模块,如下所述:
-综合症计算器
-解决关键方程
-错误定位
-纠错
上述模块的实现和设计算法因不同的体系结构而不同。第二模块,关键方程的求解是在硬件复杂度方面与其他模块相比最难和最复杂的模块。本章包含了用于实现这些模块的不同算法的详细解释。
1.综合征计算器:综合征计算器也是解码器的第一个模块,该模块的设计几乎与所有BCH码解码器架构相同。此模块的输入是损坏的码字。码字、接收位和错误位的方程分别在式(5.1)、(5.2)、(5.3)[4]中给出。
码字方程
C (x) = c0 + c1x + c2x2 +…+ cn-1xn-1 (5.1)
接收位方程
R (x) = r0 + r1x + r2x2 +…+ rn-1xn-1 (5.2)
误差位方程
E (x) = e0 + e1x + e2x2 +…+ en-1xn-1 (5.3)
因此,最终传输数据多项式方程为:
R (x) = c(x) + e(x) (5.4)
2.关键方程求解器:解码过程中的第二阶段是使用前一阶段生成的综合征找到错误定位多项式的系数。误差定位多项式为:证候与误差定位多项式的关系如下[4]:
有各种算法用于求解关键方程求解器。本课题采用逆少Berlekamp Massey算法求解关键方程。
3.错误位置-链式搜索:计算错误位置是解码过程的下一步,可以使用链式搜索块来完成。
3.1链搜索算法
根计算如下[12][4]:
1.对于(j = 0到n - 1) α的每一次幂,取αj作为检验根
2.计算当前根的多项式系数,使用,过去迭代的系数,使用,Λ i (j) = Λ i (j- 1) α持续第j次迭代
3.计算多项式系数的和
4.和等于
5.继续执行步骤1,直到j = n-1
纠错块输出:
码字= r(x) ^ e(x) = ' 000010100110111 '
因此,码字是通过将消息位与奇偶校验位相加生成的,并传输到解码器。数据在传输过程中损坏。解码器将解码损坏的数据并检索原始码字。
4.纠错:链搜索块的输出被称为方程的根。方程根的倒数与解码器接收到的损坏码字的对应位置相加。这一添加的结果是在传输之前由编码器编码的原始码字。

仿真结果

框图

图像

RTL示意图

图像

技术示意图

图像
设计总结
图像

仿真输出波形

图像
图像

结论

本课题详细讲解了纠错码的必要性,各种纠错码的比较以及高速(15,5)BCH码的编码和解码器的设计。前面的章节讨论了编码器和解码器的设计技术,并使用Verilog描述了设计的行为。代码的模拟是在Xilinx Modelsim中完成的。在Xilinx ISC 14.3 wabpack中综合编码器和解码器设计,生成门级网表。在前面的章节中详细讨论了设计步骤、输入信号和输出信号以及设计和综合结果的仿真结果。

数字一览

数字 数字 数字 数字
图1 图2 图3 图4

参考文献














全球科技峰会