天津理工大学 信息论与编码实验4 离散信道编码-线性分组码
一、实验目的
信道编码也叫差错控制编码,指在将要传输的信息序列中人为的添加一些保护成分(监督码元),从而在接收端译码时可以进行自动纠错,从而增强了信号的抗干扰能力。
掌握线性分组码编码原理;
二、实验仪器及材料
计算机
三、实验原理
汉明码是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)汉明码并编程给出该码的标准阵列译码表。
- 掌握线性分组码的详细算法步骤。
某(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 离散信道编码-线性分组码相关推荐
- 天津理工大学 信息论与编码实验3 离散信源编码-香农编码
一.实验目的 离散无记忆信源是一种最简单且最重要的信源,可以用完备的离散型概率空间来描述.本实验通过对给定的信源的进行相应的编码,加深对离散无记忆信源的无失真编码的理解. 掌握香农编码原理: 二.实验 ...
- 天津理工大学信息论与编码实验(3)
2021/11/26 from Xwhite 离散信源编码-香农编码 实验内容 实验代码 from math import * import prettytable# 求信息量函数 def ent(a ...
- 天津理工大学信息论与编码实验(1)
2021/11/23 from Xwhite 实验一离散信源的统计度量-自信量和熵的计算 实验要求 1.请分别完成离散信源自信息量及信源熵 根据所编函数计算如下信源的自信息量及信源熵. 2.有条英文信 ...
- 天津理工大学信息论与编码实验(2)
2021/11/25 from Xwhite 熵的极值性验证 实验要求 实验代码 import numpy as np from math import * import matplotlib.pyp ...
- 天津理工大学《操作系统》实验二,存储器的分配与回收算法实现,代码详解,保姆式注释讲解
天津理工大学<操作系统>实验二,存储器的分配与回收算法实现,代码详解,保姆式注释讲解 实验内容 1. 本实验是模拟操作系统的主存分配,运用可变分区的存储管理算法设计主存分配和回收程序,并不 ...
- labview 霍夫曼树_哈夫曼树编码实验报告_信息论与编码实验2 实验报告_信息论与编码报告...
huffman编码C语言实验报告 今日推荐 180份文档 2014...4页 1下载券 安卓版100 doors 2攻略1... 3页 1下载券 <逃脱本色>doors....语文教育实习 ...
- 信息论与编码实验报告——MATLAB实现算术编码
一.实验内容 试用MATLAB编制算术编码算法实现程序. 二.实验过程 2.1 算术编码实现原理 算术编码的算法思想如下: (1)对一组信源符号按照符号的概率从大到小排序,将[0,1)设为当前分析区间 ...
- 线性分组码c语言实验报告,C语言线性分组码(附注释).doc
C语言线性分组码(附注释).doc 下载提示(请认真阅读)1.请仔细阅读文档,确保文档完整性,对于不预览.不比对内容而直接下载带来的问题本站不予受理. 2.下载的文档,不会出现我们的网址水印. 3.该 ...
- 天津理工大学计算机项目管理实验四,天津理工大学计算机专业数据库实验二.doc...
文档介绍: 实验报告学院(系)名称:计算机与通信工程学院姓名范学号2009专业计算机科学与技术班级中加4班实验项目数据库控制与编程课程名称数据库系统概论课程代码0660096实验时间2011年11月2 ...
最新文章
- 区块链相关论文研读2 - vChain,关于可验证的查询
- JAVA爬虫三大运营商
- Hyperledger Fabric 智能合约实战 (0) 整体步骤
- linux 之RAID详解
- python bootstrap-fileinput示例_bootstrapfileinput实现文件自动上传
- mmsPlayer 2.0 将开源java部分
- 【英语学习】【English L06】U05 Appointments L3 Can I cancel my reservation?
- 最小路径和--p64--动态规划
- fedora22有时不能启动
- ModelAndView简介
- Python和Java哪个更好找工作?
- 上海财经应用统计考python_20上财应用统计415分经验帖(初试第一)
- 给定一个候选人编号的集合 candidates 和一个目标数 target ,找出 candidates 中所有可以使数字和为 target 的组合。
- Wlan学习备忘(上)
- 阿泰水晶报表补空行(分组)
- 2021机动车检测站签字授权人考试专业基础知识部分题库与答案
- kotlin之开发经验整理
- 0002计算机组成原理与体系结构02
- Robot Framework(3)——RIDE工具详解
- 亲历NSDI 2013
热门文章
- 直播系统开发的语言选择
- 对传统机器学习和深度学习的一些思考
- 西门子1500通讯与西门子1200通讯(1)
- 关于win7 打kb4012212补丁失败问题。
- Python处理mat文件的三种方式小结
- 概率论与数理统计笔记第一天
- oracle 闩情况,理解oracle锁和oracle闩(3)TX锁和TM锁
- 【Gaze】Generating Image Descriptions via Sequential Cross-Modal Alignment Guided by Human Gaze
- Python简单数据处理(静态网页爬取,jupter实现)
- 艾永亮超级产品:不知道怎么做产品?看完这篇文章了解你的产品