0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

采用VHDL语言实现线性分组码编/译码器的设计与仿真验证

电子设计 来源:郭婷 作者:电子设计 2019-05-03 08:24 次阅读

通信系统中,由于信道存在大量的噪声和干扰,使得经信道传输后的接收码与发送码之间存在差异,出现误码。在数字通信系统中常采用差错控制信道编码技术,以此来减少传输过程的误码,提高数字通信系统的传输质量。它的基本原理是:发送端的信道编码器信息码元序列中按照一定的关系加入一些冗余码元(称为监督码元),使得原来相关性很小的信息码元产生某种相关性,从而在接收端利用这种相关性来检查并纠正信息码元在传输中引起的差错。冗余度的引入提高了传输的可靠性,但降低了传输效率。

1 线性分组码

分组码是由一组固定长度为n,称之为码字的矢量构成的。线性分组编码时,将每k个信息位分为一组独立处理,按一定规则给每个信息组增加(n-k)个监督码元,组成长度为n的二进制码字,这种编码方式记为是(n,k)分组码。信息位和监督位采用的关系式由一组线性方程所决定,称之为线性分组码。

若线性分组码的输入信息位为U=(U0,U1,…,Uk),编码输出为C=(C0,C1,…,Cn),则有如下关系:

采用VHDL语言实现线性分组码编/译码器的设计与仿真验证

式中:G为线性分组码的生成矩阵;H为监督矩阵。当G确定后,编码的方法就完全确定了,而H给定后,编码时监督位和信息位的关系也就确定了。因此,在设计分组码编码器时,需要确定生成矩阵G;在设计分组码译码器时,需要确定监督矩阵H。

2 线性分组码编译码器设计

2.1 线性分组码编码器设计

采用VHDL语言实现线性分组码编/译码器的设计与仿真验证

,由于生成矩阵G是k行n列,所以k=3,n=6,改(n,k)码为(6,3)码。根据生成矩阵和式(1)运算后得到相应的编码。即由:

采用VHDL语言实现线性分组码编/译码器的设计与仿真验证

可得:

采用VHDL语言实现线性分组码编/译码器的设计与仿真验证

COUT=(C0,C1,C2,C3,C4,C5)为编码输出,其中前3个分量为增加的监督码元,后3个为原输入信息位。

2.2 线性分组码译码器设计

将生成矩阵G进行初等运算:原矩阵的第2,3,1行分别作为典型矩阵的第1,2,3行,可得典型生成矩阵:

采用VHDL语言实现线性分组码编/译码器的设计与仿真验证

于是,典型监督矩阵H为:

采用VHDL语言实现线性分组码编/译码器的设计与仿真验证

监督码元与信息码元之间的关系称为监督方程式(监督关系式),监督矩阵的每行中“1”的位置表示相应码元之间存在的监督关系,即下述三个监督方程:

采用VHDL语言实现线性分组码编/译码器的设计与仿真验证

发送的码字C=(C0,C1,…,Cn)。e表示传输中的差错;Y表示接收的码字。如果码字在传输过程中没有出现差错,则有HYT=HeT=O;出现差错时,则有,S=eHT。其中,S称为伴随子,又称为校正子。由于S只与序列传输中的差错e有关,因此在编码的能力之内,一定的e序列必然对应一定的S组合。可以在接收机中做好对应表,然后根据序列S准确地判断差错位置,再根据出错位置进行纠正,可得到正确的译码输出。根据式(2)可计算接收矢量Y的伴随子S=Y·HT。这里:

采用VHDL语言实现线性分组码编/译码器的设计与仿真验证

错误图样即校正子与错码位置的关系,因为r=3,所以有3个校正子,相应的有3个监督关系式。将式(3)改写为:

采用VHDL语言实现线性分组码编/译码器的设计与仿真验证

则可得由伴随子S决定对应的错误图样集e,即为典型监督矩阵的转置HT,如表1所示。

采用VHDL语言实现线性分组码编/译码器的设计与仿真验证

3 仿真及分析

图1、图2分别为线性仿真分组编码器、译码器电路的仿真波形。图中各参数含义如下:clk是系统时钟信号输入;UI是编码器中三位线性分组码的输入;CO是编码器中六位编码的输出;Y是解码器中六位编码的输入;c是解码器中六位译码的输出。

采用VHDL语言实现线性分组码编/译码器的设计与仿真验证

在图1、图2中,截取了仿真的部分波形进行分析,产生的六位编码CO、六位译码Y完全依据线性分组码的编译码规则,任意两个许用码组之和(逐位模2加)仍为一许用码组,即具有封闭性。

4 结语

对线性分组码编、译码器的设计基于VHDL(硬件描述语言),与传统设计相比较,采用VHDL语言设计的线性分组码编、译码器无需考虑具体电路的实现,只需要掌握编译码原理,根据相应的编译码规则转换成VHDL语言,大大减少了设计人员的工作量,提高了设计的准确性和效率。程序已在Max+PlusⅡ10.O工具软件上进行了编译、仿真和调试。经过实验结果的分析,说明本设计是正确的。本文给出的设计思想也适用于其他基于PLD芯片的系统设计。


声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 编码器
    +关注

    关注

    45

    文章

    3562

    浏览量

    133911
  • 译码器
    +关注

    关注

    4

    文章

    310

    浏览量

    50245
  • vhdl
    +关注

    关注

    30

    文章

    816

    浏览量

    128037
收藏 人收藏

    评论

    相关推荐

    线性分组码原理

    线性分组码原理线性分组码的构成方式是把信息序列分成每k 个码元一段,并由这k 个码元按一定规则产生r 个校验位,组成长度为n = k + r 的码字,用(n, k) 表示。信息码元与校
    发表于 05-30 16:02

    截短Reed-Solomon译码器的FPGA实现

    截短Reed-Solomon译码器的FPGA实现提出了一种改进的BM算法,并在此基础上提出了一种大量采用并行结构的截短RS
    发表于 09-19 09:39

    基于vhdl语言(15,7)bch译码器程序设计

    对不同的设计方法进行分析和比较,选择优化的设计方法,利用VHDL分别设计(15,7)BCH的编码译码器,并能够对两部分进行单独仿真调试
    发表于 05-10 11:36

    如何利用VHDL实现线性分组码译码器的设计?

    如何利用VHDL实现线性分组码译码器的设计?
    发表于 04-28 06:41

    怎么实现RS编译码器的设计?

    本文研究了RS实现方法,并基于Xilinx的FPGA芯片Spartan-6 XC6SLX45完成了RS编译码器的设计,同时对其进行了仿真和在线调试,并给出了功能
    发表于 06-21 06:23

    分组码,分组码 是什么意思

    分组码,分组码 是什么意思 分组码是一组固定长度的组,可表示为(n , k),通常它用于前向纠错。在分组码中,监督位被加到信息位之后,形
    发表于 03-17 17:40 1w次阅读

    线性分组码,线性分组码是什么意思

    线性分组码,线性分组码是什么意思 分组码是一组固定长度的组,可表示为(n , k),通常
    发表于 04-03 12:08 1w次阅读

    空时分组码预编码的均衡算法

    为了提高正交空时分组码的MIMO系统性能,提出了采用预编码的空时分组码信号检测方案,该方案在发射端将正交分组编码和预编码矩阵相结合,在接收端采用
    发表于 05-03 18:09 0次下载

    基于FPGA的RS译码器的设计

    介绍了符合CCSDS标准的RS(255,223)译码器的硬件实现结构。译码器采用8位并行时域译码
    发表于 01-25 16:43 68次下载
    基于FPGA的RS<b class='flag-5'>码</b><b class='flag-5'>译码器</b>的设计

    数字通信系统中基于线性分组码的交织检测

    数字通信系统中基于线性分组码的交织检测_张玉
    发表于 01-07 16:06 0次下载

    RS编码的实现方法与基于FPGA的RS编译码器的设计

    提出了RS编码的实现方法,并对编码进行了时序仿真仿真结果表明,该译码器实现良好的纠错功能。 RS(ReedSolomon)
    发表于 10-17 11:21 47次下载
    RS编码的<b class='flag-5'>实现</b>方法与基于FPGA的RS编<b class='flag-5'>译码器</b>的设计

    基于RS译码器设计和仿真

    (;A平台,利用Xilinx lSE软件和Verilog硬件描述语言,对译码器中各个子模块进行了设计和仿真。整个译码器设计过程采用流水线处理
    发表于 11-07 15:27 15次下载
    基于RS<b class='flag-5'>译码器</b>设计和<b class='flag-5'>仿真</b>

    采用FPGA芯片实现多码率QC-LDPC译码器的设计与测试

    的重视。基于准循环LDPC(QC-LDPC)结构特点,提出了一种支持多种码率QC-LDPC 译码器的设计方法,并设计实现了一个能够实时自适应支持三个不同H 阵的通用QC-LDPC 译码器
    的头像 发表于 01-08 09:22 3179次阅读
    <b class='flag-5'>采用</b>FPGA芯片<b class='flag-5'>实现</b>多码率QC-LDPC<b class='flag-5'>译码器</b>的设计与测试

    使用VHDL硬件描述语言实现基带发生的程序设计与仿真

    本文档的主要内容详细介绍的是使用VHDL硬件描述语言实现基带发生的程序设计与仿真免费下载。
    发表于 01-20 13:44 16次下载
    使用<b class='flag-5'>VHDL</b>硬件描述<b class='flag-5'>语言实现</b>基带<b class='flag-5'>码</b>发生<b class='flag-5'>器</b>的程序设计与<b class='flag-5'>仿真</b>

    深度解读VHDL语言的卷积和Viterbi译码实现

    介绍并用VHDL语言实现了卷积编码和维特比译码。根据编码特征设计了一种具有针对性的简洁的维特比译码器结构,
    的头像 发表于 05-12 15:22 2445次阅读
    深度解读<b class='flag-5'>VHDL</b><b class='flag-5'>语言</b>的卷积<b class='flag-5'>码</b>和Viterbi<b class='flag-5'>译码</b>的<b class='flag-5'>实现</b>