一、实验目的
信道编码也叫差错控制编码,指在将要传输的信息序列中人为的添加一些保护成分(监督码元),从而在接收端译码时可以进行自动纠错,从而增强了信号的抗干扰能力。
掌握线性分组码编码原理;
二、实验仪器及材料
计算机
三、实验原理
汉明码是1950年由汉明提出的一种能纠正单个错误的线性分组码
它不仅性能好而且编译码电路非常简单,易于工程实现,因此是工程中常用的一种纠错码
二元汉明码的参数n,k和d分别为
码长:n=2r-1
信息位数:k=2r-r-1
监督位数:r=n-k
最小码距:dmin=3
由于dmin=3,因此能纠正1个随机错误或检测2个错误
汉明码的监督矩阵H的列为所有非零的r维向量组成,所以一旦r给定,就可构造出具体的(n,k)汉明码

四、实验内容
写出实验内容中的程序并附上实现结果。

1、构造一个二元(7,4,3)汉明码并编程给出该码的标准阵列译码表。

  1. 掌握线性分组码的详细算法步骤。
    某(5,2)线性分组码的生成矩阵是
    G=[■(■(1&0&■(1&1&1))@■(0&1&■(1&0&1)))]
    假设接收的码字为R=(10101),试构造该码的标准阵列译码表并进行译码。
import numpy as np
import random

#这个函数,输出标准型监督矩阵H,标准生成矩阵G:(返回数组是为了下面调用)

def hannim(n,k,d):r=n-kp = np.zeros((1,r ),dtype = int)a = []b = []for i in range(1,2**r):p = np.zeros((1,r ),dtype = int)m = iq = 0for j in range(r):p[0,r-1-j] = m%2if  m%2 == 1:q += 1m = m // 2 if q == 0:continueelif q == 1:a.append(p)elif q != 1:b.append(p)a.reverse()random.shuffle(b)a = b+ac = a[0] tp = 0for i in a:tp += 1if tp != 1:c = np.concatenate([c, i], axis=0) print("标准型监督矩阵H:\n",c.T)c = b[0] tp = 0for i in b:tp += 1if tp != 1:c = np.concatenate([c, i], axis=0) m = np.zeros((len(c),len(c)),dtype = int)for i in range(len(c)):m[i][i]=1g = np.hstack((m,c))print("标准生成矩阵G:\n",g)return ghannim(7,4,3)

#这个函数输出标准阵列译码表(也方便上面第二题调用)





第四位错,故译码10

相关代码

a =np.array([[1,0,1,1,1],[0,1,1,0,1]])
def decodertable(a):shape = a.shapel = shape[1]w = shape[0]z = []for i in range(2**w):m =ip = np.zeros((1,w ),dtype = int)for j in range(w):p[0,w-1-j] = m%2m = m // 2 z.append(p)for i in z:re =i.dot(a)for j in range(len(re[0])):while (re[0,j]>1):re[0,j] = re[0,j]%2print("消息:",re,"译码",i)
decodertable(a)
a =np.array([[1,1,1,0,0],[1,0,0,1,0],[1,1,0,0,1]])
b = np.array([1,0,1,0,1])
z = a.dot(b.T)
for i in range(len(z)):z[i] = z[i]%2
z

天津理工大学 信息论与编码实验4 离散信道编码-线性分组码相关推荐

  1. 天津理工大学 信息论与编码实验3 离散信源编码-香农编码

    一.实验目的 离散无记忆信源是一种最简单且最重要的信源,可以用完备的离散型概率空间来描述.本实验通过对给定的信源的进行相应的编码,加深对离散无记忆信源的无失真编码的理解. 掌握香农编码原理: 二.实验 ...

  2. 天津理工大学信息论与编码实验(3)

    2021/11/26 from Xwhite 离散信源编码-香农编码 实验内容 实验代码 from math import * import prettytable# 求信息量函数 def ent(a ...

  3. 天津理工大学信息论与编码实验(1)

    2021/11/23 from Xwhite 实验一离散信源的统计度量-自信量和熵的计算 实验要求 1.请分别完成离散信源自信息量及信源熵 根据所编函数计算如下信源的自信息量及信源熵. 2.有条英文信 ...

  4. 天津理工大学信息论与编码实验(2)

    2021/11/25 from Xwhite 熵的极值性验证 实验要求 实验代码 import numpy as np from math import * import matplotlib.pyp ...

  5. 天津理工大学《操作系统》实验二,存储器的分配与回收算法实现,代码详解,保姆式注释讲解

    天津理工大学<操作系统>实验二,存储器的分配与回收算法实现,代码详解,保姆式注释讲解 实验内容 1. 本实验是模拟操作系统的主存分配,运用可变分区的存储管理算法设计主存分配和回收程序,并不 ...

  6. labview 霍夫曼树_哈夫曼树编码实验报告_信息论与编码实验2 实验报告_信息论与编码报告...

    huffman编码C语言实验报告 今日推荐 180份文档 2014...4页 1下载券 安卓版100 doors 2攻略1... 3页 1下载券 <逃脱本色>doors....语文教育实习 ...

  7. 信息论与编码实验报告——MATLAB实现算术编码

    一.实验内容 试用MATLAB编制算术编码算法实现程序. 二.实验过程 2.1 算术编码实现原理 算术编码的算法思想如下: (1)对一组信源符号按照符号的概率从大到小排序,将[0,1)设为当前分析区间 ...

  8. 线性分组码c语言实验报告,C语言线性分组码(附注释).doc

    C语言线性分组码(附注释).doc 下载提示(请认真阅读)1.请仔细阅读文档,确保文档完整性,对于不预览.不比对内容而直接下载带来的问题本站不予受理. 2.下载的文档,不会出现我们的网址水印. 3.该 ...

  9. 天津理工大学计算机项目管理实验四,天津理工大学计算机专业数据库实验二.doc...

    文档介绍: 实验报告学院(系)名称:计算机与通信工程学院姓名范学号2009专业计算机科学与技术班级中加4班实验项目数据库控制与编程课程名称数据库系统概论课程代码0660096实验时间2011年11月2 ...

最新文章

  1. 区块链相关论文研读2 - vChain,关于可验证的查询
  2. JAVA爬虫三大运营商
  3. Hyperledger Fabric 智能合约实战 (0) 整体步骤
  4. linux 之RAID详解
  5. python bootstrap-fileinput示例_bootstrapfileinput实现文件自动上传
  6. mmsPlayer 2.0 将开源java部分
  7. 【英语学习】【English L06】U05 Appointments L3 Can I cancel my reservation?
  8. 最小路径和--p64--动态规划
  9. fedora22有时不能启动
  10. ModelAndView简介
  11. Python和Java哪个更好找工作?
  12. 上海财经应用统计考python_20上财应用统计415分经验帖(初试第一)
  13. 给定一个候选人编号的集合 candidates 和一个目标数 target ,找出 candidates 中所有可以使数字和为 target 的组合。
  14. Wlan学习备忘(上)
  15. 阿泰水晶报表补空行(分组)
  16. 2021机动车检测站签字授权人考试专业基础知识部分题库与答案
  17. kotlin之开发经验整理
  18. 0002计算机组成原理与体系结构02
  19. Robot Framework(3)——RIDE工具详解
  20. 亲历NSDI 2013

热门文章

  1. 直播系统开发的语言选择
  2. 对传统机器学习和深度学习的一些思考
  3. 西门子1500通讯与西门子1200通讯(1)
  4. 关于win7 打kb4012212补丁失败问题。
  5. Python处理mat文件的三种方式小结
  6. 概率论与数理统计笔记第一天
  7. oracle 闩情况,理解oracle锁和oracle闩(3)TX锁和TM锁
  8. 【Gaze】Generating Image Descriptions via Sequential Cross-Modal Alignment Guided by Human Gaze
  9. Python简单数据处理(静态网页爬取,jupter实现)
  10. 艾永亮超级产品:不知道怎么做产品?看完这篇文章了解你的产品