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芯片的系统设计。


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

    关注

    41

    文章

    3362

    浏览量

    131560
  • 译码器
    +关注

    关注

    4

    文章

    310

    浏览量

    49914
  • vhdl
    +关注

    关注

    30

    文章

    816

    浏览量

    127690
收藏 人收藏

    评论

    相关推荐

    线性分组码原理

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

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

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

    基于IP核的Viterbi译码器实现

    【摘要】:Viterbi译码器在通信系统中应用非常普遍,针对采用DSP只能进行相对较低速率的Vit-erbi译码的问题,人们开始采用FPGA实现
    发表于 04-26 16:08

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

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

    急求基于FPGA的Turbo译码器各模块实现VHDL或verilog HDL程序

    基于FPGA的Turbo译码器各模块实现VHDL或verilog HDL程序。急求啊谢谢大神啦!!
    发表于 06-08 22:45

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

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

    如何利用FPGA和VHDL语言实现PCM的解调?

    利用现场可编程门阵列(FPGA)和VHDL 语言实现了PCM的解调,这样在不改变硬件电路的情况下,能够适应PCM传输速率和帧结构变化,从而正确解调数据。
    发表于 05-07 06:58

    怎么实现DTMB标准BCH译码器设计?

    BCH是目前最为常用的纠错码之一,我国的数字电视广播地面传输标准DTMB也使用了缩短的BCH作为前向纠错编码的外码。针对该BCH的特点,采用BM
    发表于 05-25 07:04

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

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

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

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

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

    线性分组码,线性分组码是什么意思 分组码是一组固定长度的码组,可表示为(n , k),通常它用于前向纠错。在
    发表于 04-03 12:08 9792次阅读

    基于FPGA的RS码译码器的设计

    ,减小了译码器的时延,提高了译码的速率,使用了VHDL语言完成译码器的设计与实现。测试表明,该
    发表于 01-25 16:43 68次下载
    基于FPGA的RS码<b class='flag-5'>译码器</b>的设计

    动态显示-译码器片选实现【C语言

    动态显示-译码器片选实现【C语言】动态显示-译码器片选实现【C语言】动态显示-
    发表于 12-29 15:51 0次下载

    基于RS译码器设计和仿真

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

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

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