619|0

4932

帖子

19

TA的资源

版主

楼主
 

通信应用实战:汉明码纠错典型程序设计Verilog代码设计 [复制链接]

 
内容:
  1. 理解检纠错原理与拆包;
  2. 设计编写检纠错与拆包的程序,恢复原始信息数据程序;
4.1检纠错
在通信过程种对信息惊醒信道编码,保证可靠性,其中检纠错是可靠性的主要的体现,检纠错包括2方面,一方面检查接收数据是否正确,两一方面也可以对错误数据按照一定的算法进行纠错,因此检纠错在通信系统种是非常有必要的。
4.1.1汉明码检纠错算法
汉明码是一种典型的信道编码,是分组码一种,它具有对每个码的检错能力(每接收到一个汉明码,可以判断该码是否正确),除此之外还具备1bit纠错能力。
假如定义S1,S2,S3
S1 = D6 ^ D5 ^ D4^D2 如果S1==0则说明D6 ,D5,D4,D2数据都是对的,否则说明,该组数据有错误,错误的数据个数不可控。
S2 = D6 ^ D5 ^ D3^D1 如果S2==0则说明D6 ,D5,D3,D1数据都是对的,否则说明,该组数据有错误,错误的数据个数不可控。
S3 = D6 ^ D4 ^ D3^D0 如果S3==0则说明D6 ,D4,D3,D0数据都是对的,否则说明,该组数据有错误,错误的数据个数不可控。
通过以上分析可以看出,当S1=0,S2=0,S3=0,说明汉明码全是对的。
  1. 如何纠错?
所有纠错都是限定在错误1bit的情况,如果错误2bit以及以上,汉明码是无能无力
习惯上,S1,S2,S3叫做矫正子,通过它可以对接收到的汉明码进行纠错。
4.1.2汉明纠错典型程序设计
4.1.2.1设计框图
设计框图
4.1.2.2 hmm_crt实现
  1. 恢复汉明码

    代码设计程序
    ///////////////////////////////////////////////////////////////////////////////////////////////
    always @(posedge clk_d )
    if( (cnt ==5)&& (flag_seq_rec) )
    D1<= seq_rec;
    always @(posedge clk_d )
    if( (cnt ==6)&& (flag_seq_rec) )
    hmm<= {D6,D5,D4,D3 ,seq_rec ,D1,D0};C
    /////////////////////////////////////////////////////////////////////////////////////////////
  2. 纠错输出
always @(posedge clk_d )
case( {S1,S2,S3})
3’b011 : data<={ hmm[6:4] ,~hmm [3]};
3’b101 : data<={ hmm[6:5] ,~hmm [4], hmm [3]};
3’b110 : data<={ hmm[6] ,~hmm [5], hmm [4:3]};
3’b111 : data<={ ~hmm[6] , hmm [5:3]};
default : data<=hmm[6:3];
endcase
reg flag_hmm;
always @(posedge clk_d or negedge rst_n)
if(~rst_n)flag_hmm <=0;
else if( (cnt ==6) && (flag_seq_rec) ) flag_hmm <=1;else flag_hmm <=0;
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
4.1.2.3unpack程序实现
unpack程序实现
 

此帖出自FPGA/CPLD论坛
点赞 关注
 

回复
举报
您需要登录后才可以回帖 登录 | 注册

查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
推荐帖子
老外做的7个LED的旋转电子钟

下面是网址,使用PIC做的,有源码。 http://www.bobblick.com/techref/projects/propclock/propclock.html 大家好!我将资料放上 ...

谈谈技术之外的学习经验

大事化小,成功一点点做起 我是搞工程的,我自己在做事的时候喜欢把任务分为许多块,没完成一个就有一次成就感,这样愉快的进行 ...

雕刻机自制PCB电路板

雕刻机买回来一年多了,平时就是用来做一下外壳和五金件的样品加工,但从来没有用来做过PCB电路板,当时买这个机器的时候,同时 ...

数字电源,你肯定会做!--- 从“傻瓜”电源做起!

本帖最后由 dontium 于 2015-3-19 17:34 编辑 数字电源,说起来高级,实际上很普通,跟我一起做一做,你就会掌握它。 ...

同一个封装中没有使用到的运放怎么接?

我使用了ADA4891-2双路运放,只使用到一个放大器放大信号10倍,剩下一个放大器没有使用,收据手册上说“以单位增益配置连接 ...

声音检测系统

# 声音检测系统 ##声音检测系统 ###声音检测系统用来捕获声音,并将声音的时域图和频谱图显示出来,检测系统的界面如下: 5 ...

颁奖:有奖直播:贝能国际推出基于英飞凌技术的毫米波雷达模组,完美解决PIR市场痛点

有奖直播:贝能国际推出基于英飞凌技术的毫米波雷达模组,完美解决PIR市场痛点活动颁奖啦! 名单详见下方列表。请获奖者 ...

关于(汽车)电机控制器IGBT隔离供电电源电路

现在(汽车)电机控制器中,其IGBT驱动功率大概就只有几W(单项),三项+上下桥总计可能有几十W的需求。电源电路需要将原边供电 ...

低气压试验箱操作技巧及其特点概论

  低气压试验箱是一种用于对产品或设备进行低气压环境下测试的设备。它可以模拟高海拔地区、太空等低气压环境,对产品的性能、 ...

过孔的设计孔径是真的很重要,但高速先生也是真的不关心

高速先生成员--黄刚 这不马上就要过年了嘛,高速先生就不打算给大家上难度了,整一篇简单但很实用的文章给大伙瞧瞧好了。相信 ...

关闭
站长推荐上一条 1/8 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表