首页/文章/ 详情

MATLAB仿真专题——编译码仿真之汉明码(2)

5年前浏览6009

我在网上找了一个程序进行调试,发现一堆的问题,好在我是个老算法程序员,有能力把程序的错误一一纠正。

在百度输入关键词,然后得到很多搜索结果!

这是被阅读了五千次的帖子!我的天啊,为什么没有人指出程序的错误呢?我现在一边讲解错误一边讲解汉明码的原理。这样才能帮助同学们真正的掌握汉明码编译码!

错误一:编码出错!

为什么第一个是source(i,1),

而后面就是source(1,2)呢?

我们一起来看校验码的生成原理。

通过程序中的关系式就可以得到生成矩阵。

和下面展示的矩阵一致!

最终落实到如何生成校验比特就采用上图!

根据校验矩阵来写出校验码!!!

程序怎么写呢?

% 产生信息序列,100000个码

len = 100000 ;  

code = randi([0 1],1,len);

% 产生3bits的校验码

hamming_code = reshape(code,len/4,[]);

for i = 1:len/4

    hamming_code(i,5) = xor(hamming_code(i,1),xor(hamming_code(i,2),hamming_code(i,3)));

    hamming_code(i,6) = xor(hamming_code(i,2),xor(hamming_code(i,3),hamming_code(i,4)));

    hamming_code(i,7) = xor(hamming_code(i,1),xor(hamming_code(i,2),hamming_code(i,4)));

end 

文章中理论部分来自于一本经典书籍!学习编解码算法不能没有它!

我现在已经找不到当年我买的那本书了!

太久远的事情了!

下堂课继续分析网络程序的错误!

未完,待续!


MATLAB
著作权归作者所有,欢迎分享,未经许可,不得转载
首次发布时间:2019-04-24
最近编辑:5年前
算法工匠
博士后 | 高级工程师 诚信做事 认真讲课 传播知识
获赞 398粉丝 2605文章 362课程 40
点赞
收藏
未登录
还没有评论
课程
培训
服务
行家
VIP会员 学习计划 福利任务
下载APP
联系我们
帮助与反馈