卷积码编译码实验报告.doc

  1. 1、本文档共6页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
卷积码编译码实验报告

厦 门 理 工 学 院 实 验 报 告 书 课程名称: 信息论与编码实验 实验名称: 卷积码编译码 一、实验目的 1、使用MATLAB进行卷积码编/解码器的代码编写、运行、仿真等操作。 2、熟练掌握MATLAB软件、语句。 3、理解卷积码编 解码器的原理、知识。 二、实验环境 MATLAB环境 二、实验要求 (1)实验前编写源程序、准备测试数据。 (2)在 MATLAB环境下完成程序的编辑、编译、运行,获得程序结果。如果结果有误,应找出原因,并设法更正之。 四、实验原理 1 、编码原理 卷积码编码的当前输出v(l)不仅与当前输入消息u(l)相关,还与此去前输入的m个消息u(l-1),…,u(l-m)相关,即v(l)=f(u(l),u(l-1),…,u(l-m)), l=0,1,2… 卷积编码电路中移位寄存器初态可设定为全0,电路为按段工作方式,即对每段k比特输出入,产生一段n比特输出。任意一输入段u(l-h)与输出v(l)的关系都是一个特殊的(n,k)线性分组码的编码关系,即存在kn的二元矩阵G,使得 v(l)=u(l-h)G, h=0,1,2,…,m 因此对于消息段序列u=(u(0),u(1),…,u(m),u(m+1),…),相应的输出端序列为v=(v(0),v(1),…,v(m),v(m+1),…),并满足v(0)=u(0)G v(1)=u(0)G+u(1)G v(m)=u(0)G+u(1)G+…+u(m-1)G+u(m)G v(m+1)=u(1)G+u(2)G…+u(m)G+u(m+1) 卷积编码电路在按段工作方式下只需存储或者记忆m段的消息输入,电路中输入移位寄存器最多只有个有效的寄存器单元,而输出移位寄存器仅起一个并串转换作用。因此称参量m为卷积吗的记忆长度(段) 2、维比特译码原理 它的基本思想是把接收到的矢量,和网格图上诸种可能的路径比较,删去距离大的路径,保留距离小的路径,以距离最小路径作为发码的估值 五、实验内容 在MATLAB环境下卷积码编/解码器的实现。 1、 主函数main.m clear;clc; msg = randint(1,20,[0,1]) word = encode_conv213(msg) word(1) =~word(1); %信道中存在污染,人为的模拟传输过word(10) =~word(10); %程中的出错码字 word(15) =~word(15); word1=word msg_1 = decode_conv213(word1) msg-msg_1 2 、状态积state_machine.m function [output,nextState] = state_machine(input,current_state) output(1) = mod(current_state(1)+current_state(3),2); output(2) = mod(input+current_state(2)+current_state(1),2); nextState(1) = current_state(2); nextState(2) = current_state(3); nextState(3) = input; 3、 汉明距离hamming_distance.m function distance = hamming_distance(a,b) temp = a+b; temp = mod(temp,2); distance = sum(temp); 4 、213编码程序encode_conv213.m function word = encode_conv213(msg) word = zeros(1,length(msg)*2); current = [0 0 0]; for i = 1:length(msg) [out,next] = state_machine(msg(i),current); current = next; word(2*i-1) = out(1); word(2*i) = out(2); End 5、 213维比特译码decode_conv213.m function msg = decode_c

文档评论(0)

shenlan118 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档