161|0

4745

帖子

12

TA的资源

版主

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

 
wd_150626y242d94d4ort6nmk.png
目录章节
第四节:信息恢复
内容:
  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设计框图
wd_150626wgwc6nignrseswsw.png
设计框图
4.1.2.2 hmm_crt实现
  1. 恢复汉明码
    wd_150626uxw0gzk7ggk7979z.png
    代码设计程序
    ///////////////////////////////////////////////////////////////////////////////////////////////
    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程序实现
wd_150626gx3vf9iw1ul9i803.png
unpack程序实现
 


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

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/10 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

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

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

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

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