当前位置:文档之家› 一种BCH码编译码的实现

一种BCH码编译码的实现

一种BCH码编译码的实现
一种BCH码编译码的实现

实验九 (2,1,5)卷积码编码译码技术

实验九 (2,1,5)卷积码编码译码技术 一、实验目的 1、掌握(2,1,5)卷积码编码译码技术 2、了解纠错编码原理。 二、实验内容 1、(2,1,5)卷积码编码。 2、(2,1,5)卷积码译码。 三、预备知识 1、纠错编码原理。 2、(2,1,5)卷积码的工作原理。 四、实验原理 卷积码是将发送的信息序列通过一个线性的,有限状态的移位寄存器而产生的编码。通常卷积码的编码器由K级(每级K比特)的移位寄存器和n个线性代数函数发生器(这里是模2加法器)组成。 若以(n,k,m)来描述卷积码,其中k为每次输入到卷积编码器的bit数,n 为每个k元组码字对应的卷积码输出n元组码字,m为编码存储度,也就是卷积编码器的k元组的级数,称m+1= K为编码约束度m称为约束长度。卷积码将k 元组输入码元编成n元组输出码元,但k和n通常很小,特别适合以串行形式进行传输,时延小。与分组码不同,卷积码编码生成的n元组元不仅与当前输入的k元组有关,还与前面m-1个输入的k元组有关,编码过程中互相关联的码元个数为n*m。卷积码的纠错性能随m的增加而增大,而差错率随N的增加而指数下降。在编码器复杂性相同的情况下,卷积码的性能优于分组码。 编码器 随着信息序列不断输入,编码器就不断从一个状态转移到另一个状态并同时输出相应的码序列,所以图3所示状态图可以简单直观的描述编码器的编码过程。因此通过状态图很容易给出输入信息序列的编码结果,假定输入序列为110100,首先从零状态开始即图示a状态,由于输入信息为“1”,所以下一状态为b并输出“11”,继续输入信息“1”,由图知下一状态为d、输出“01”……其它输入信息依次类推,按照状态转移路径a->b->d->c->b->c->a输出其对应的编码结果“110101001011”。 译码方法 ⒈代数 代数译码是将卷积码的一个编码约束长度的码段看作是[n0(m+1),k0(m+1)]线性分组码,每次根据(m+1)分支长接收数字,对相应的最早的那个分支上的信息数字进行估计,然后向前推进一个分支。上例中信息序列 =(10111),相应的码序列 c=(11100001100111)。若接收序列R=(10100001110111),先根据R 的前三个分支(101000)和码树中前三个分支长的所有可能的 8条路径(000000…)、(000011…)、(001110…)、(001101…)、(111011…)、(111000…)、(110101…)和(110110…)进行比较,可知(111001)与接收

MATLAB实现卷积码编译码-

本科生毕业论文(设计) 题目:MATLAB实现卷积码编译码 专业代码: 作者姓名: 学号: 单位: 指导教师: 年月日

目录 前言----------------------------------------------------- 1 1. 纠错码基本理论---------------------------------------- 2 1.1纠错码基本理论 ----------------------------------------------- 2 1.1.1纠错码概念 ------------------------------------------------- 2 1.1.2基本原理和性能参数 ----------------------------------------- 2 1.2几种常用的纠错码 --------------------------------------------- 6 2. 卷积码的基本理论-------------------------------------- 8 2.1卷积码介绍 --------------------------------------------------- 8 2.1.1卷积码的差错控制原理----------------------------------- 8 2.2卷积码编码原理 ---------------------------------------------- 10 2.2.1卷积码解析表示法-------------------------------------- 10 2.2.2卷积码图形表示法-------------------------------------- 11 2.3卷积码译码原理---------------------------------------------- 15 2.3.1卷积码三种译码方式------------------------------------ 15 2.3.2V ITERBI译码原理---------------------------------------- 16 3. 卷积码编译码及MATLAB仿真---------------------------- 18 3.1M ATLAB概述-------------------------------------------------- 18 3.1.1M ATLAB的特点------------------------------------------ 19 3.1.2M ATLAB工具箱和内容------------------------------------ 19 3.2卷积码编码及仿真 -------------------------------------------- 20 3.2.1编码程序 ---------------------------------------------- 20 3.3信道传输过程仿真-------------------------------------------- 21 3.4维特比译码程序及仿真 ---------------------------------------- 22 3.4.1维特比译码算法解析------------------------------------ 23 3.4.2V ITERBI译码程序--------------------------------------- 25 3.4.3 VITERBI译码MATLAB仿真----------------------------------- 28 3.4.4信噪比对卷积码译码性能的影响 -------------------------- 28

34卷积码编码原理分析与建模仿真

3/4卷积码编码原理分析与建模仿真 一、摘要 卷积码是一种性能优越的信道编码。它的编码器和译码器都比较容易实现,同时它具有较强的纠错能力。随着纠错编码理论研究的不断深入,卷积码的实际应用越来越广泛。本文简明地介绍了卷积码的编码原理和Viterbi译码原理。并在SIMULINK模块设计中,完成了对卷积码的编码和译码以及误比特统计整个过程的模块仿真。最后,通过在仿真过程中分析了卷积码误比特率与信噪比之间的关系,及卷积码与非卷积码的对比。经过仿真和实测,并对测试结果作了分析。 关键词:卷积码编码建模 SIMULINK仿真

目录 一、摘要 ................................................................................................................................................................. - 1 - 二、设计目的和意义 ............................................................................................................................................. - 2 - 三、设计原理 ......................................................................................................................................................... - 3 - 3.1 卷积码基本概念 ...................................................................................................................................... - 3 - 3.2 卷积码的结构 .......................................................................................................................................... - 3 - 3.3 卷积码的解析表示 .................................................................................................................................. - 4 - 3.4 卷积码的译码 .......................................................................................................................................... - 4 - 3.4.1 卷积码译码的方式........................................................................................................................ - 4 - 3.5.2 卷积码的Viterbi译码 .................................................................................................................. - 5 - 四、详细设计步骤 ................................................................................................................................................. - 6 - 4.1 卷积码的仿真 .......................................................................................................................................... - 6 - 4.1.1 SIMULINK仿真模块的参数设置及意义 ................................................................................. - 6 - 五、设计结果及分析 ........................................................................................................................................... - 11 - 5.1不同信噪比对卷积码的影响.................................................................................................................. - 11 - 5.2卷积码的对比 ........................................................................................................................................ - 12 - 六、总结 ............................................................................................................................................................... - 14 - 七、体会 ............................................................................................................................................................... - 14 - 八、参考文献 ....................................................................................................................................................... - 14 - 二、设计目的和意义 因为信道中信号不可避免会受到干扰而出错。为实现可靠性通信,主要有两种途径:一种

213卷积码编码和译码

(2,1,3)卷积码的编码及译码 摘要: ¥ 本报告对于(2,1,3)卷积码原理部分的论述主要参照啜刚教材和课件,编程仿真部分绝对原创,所有的程序都是在Codeblocks 环境下用C语言编写的,编译运行都正常。完成了卷积码的编码程序,译码程序,因为对于短于3组的卷积码,即2 bit或4 bit纠错是没有意义的,所以对正确的短序列直接译码,对长序列纠错后译码,都能得到正确的译码结果。含仿真结果和程序源代码。 如果您不使用Codeblocks运行程序,则可能不支持中文输出显示,但是所有的数码输出都是正确的。

一、 卷积码编码原理 卷积码编码器对输入的数据流每次1bit 或k bit 进行编码,输出n bit 编码符号。但是输出的分支码字的每个码元不仅于此时可输入的k 个嘻嘻有关,业余前m 个连续式可输入的信息有关,因此编码器应包含m 级寄存器以记录这些信息。 通常卷积码表示为 (n,k,m). 编码率 k r n = ( 当k=1时,卷积码编码器的结构包括一个由m 个串接的寄存器构成的移位寄存器(成为m 级移位寄存器、n 个连接到指定寄存器的模二加法器以及把模二加法器的输出转化为穿行的转换开关。 本报告所讲的(2,1,3)卷积码是最简单的卷积码。就是2n =,1k =,3m =的卷积码。每次输入1 bit 输入信息,经过3级移位寄存器,2个连接到指定寄存器的模二加法器,并把加法器输出转化为串行输出。 编码器如题所示。 二、卷积码编码器程序仿真 C 语言编写的仿真程序。 为了简单起见,这里仅仅提供数组长度30 bit 的仿真程序,当然如果需要可以修改数组大小。为了更精练的实现算法,程序输入模块没有提供非法字符处理过程,如果需要也可以增加相应的功能。 进入程序后,先提示输入数据的长度,请用户输入int (整型数)程序默认用户输入的数据小于30,然后提示输入01数码,读入数码存储与input 数组中,然后运算输出卷积码。经过实验仿真,编码完全正确。 } 以下是举例:

(完整word版)卷积码的编译码MATLAB程序

%survivor state是一个矩阵,它显T了通过网格的最优路径,这个矩阵通过一个单独的函 数metric(x,y)给出。 %其中G是一个矩阵,它的任一行决定了从移位寄存器到模2加法器的连接方式.为生成矩阵 %这里,我们做了一个简单的(2,1,7)卷积码编码器。 k=1; G=[1 0 1 1 0 1 1;1 1 1 1 0 0 1];%G1=133,G2=171 %以下3种输入序列,可任选一种% %input=[0 0 0 0 0 0 0];%全0输入 %input=[1 1 1 1 1 1 1];%全1输入 input=[round(rand(1,7)*1)];%随机系列输入,也可用 randint(1,7,[0 1]) figure;plot(input,'*r') %figure1:画图:目标input,红色(red,r),形状为* s=input; g1=G(1,:); g2=G(2,:); c1=conv(s,g1);%作卷积 %disp(c1); c2=conv(s,g2); %disp(c2); n=length(c1);%7位输入时n=13 c=zeros(1,2*n);%生成全0矩阵,1*26 %disp(c); for i=1:n c(2*i-1)=c1(i);c(2*i)=c2(i);%两个模2加法器分别输出卷积结果序列后,由旋转开关读取的结果(此时仅为卷积结果,非2进制0/1) end for i=1:2*n if(mod(c(i),2)==0)% mod(c(i),2)==0意思:c(i)除以2,余数为0 c(i)=0; else c(i)=1; end end output=c; channel_output=output;%输出矩阵 %disp(channel_output); figure;plot(output,'*b') %画图:目标:卷积码编码输出,蓝色(blue,b)* %————————————————以上为编码部分,以下为维特比译码———————————————— n=size(G,1);%取矩阵G的行数,故n=2。即得到输出端口,即2个模2加法器 %检验G的维数 if rem(size(G,2),k)~=0 %当矩阵G的列数不为k的整数倍时,rem为求余函数 error('Size of G and k do not agree')%报错 end if rem(size(channel_output,2),n)~=0 %当输出矩阵的列数不是输出端口n的整数倍时。(注:size(channel_output,2)=26,2个模2加法器合成的输出)

卷积码的编解码Matlab仿真与模拟

卷积码的编解码Matlab仿真 摘要 卷积码是一种性能优越的信道编码。它的编码器和译码器都比较容易实现,同时它具有较强的纠错能力。随着纠错编码理论研究的不断深入,卷积码的实际应用越来越广泛。本文简明地介绍了卷积码的编码原理和译码原理。并在SIMULINK模块设计中,完成了对卷积码的编码和译码以及误比特统计整个过程的模块仿真。最后,通过在仿真过程中分别改变卷积码的重要参数来加深理解卷积码的这些参数对卷积码的误码性能的影响。经过仿真和实测,并对测试结果作了分析。得出了以下三个结论: (1)当改变卷积码的码率时,系统的误码性能也将随之发生变化。 (2)对于码率一定的卷积码,当约束长度N 发生变化时,系统的误码性能也会随之发生变化。 (3)回溯长度也会不同程度上地影响误码性能。 关键词:卷积码;码率;约束长度;回溯长度

目录 论文总页数:21页 1 引言 (1) 1.1 课题背景 (1) 1.2 国内外研究现状 (1) 1.3 本课题的意义 (1) 1.4 本课题的研究方法 (1) 2 卷积码的基本概念 (2) 2.1 信道 (2) 2.2 纠错编码 (2) 2.3 卷积码的基本概念 (2) 2.4 卷积码编码的概念 (2) 2.4.1 卷积编码 (2) 2.4.2 卷积码的树状图 (3) 2.4.3 卷积码的网格图 (4) 2.4.4 卷积码的解析表示 (5) 3 卷积码的译码 (6) 3.1 卷积码译码的概述 (6) 3.2 卷积码的最大似然译码 (6) 3.3 VITEBI 译码的关键步骤 (7) 3.3.1 输入与同步单元 (7) 3.3.2 支路量度计算 (7) 3.3.3 路径量度的存储与更新 (7) 3.3.4 信息序列的存储与更新 (8) 3.3.5 判决与输出单元 (8) 4 结论 (9) 4.1 卷积码的仿真 (9) 4.1.1 SIMULINK仿真模块的参数设置以及重要参数的意义 (9) 4.2 改变卷积码的参数仿真以及结论 (12) 4.2.1 不同回溯长度对卷积码性能的影响 (12) 4.2.2 不同码率对卷积码误码性能的响 (14) 4.2.3 不同约束长度对卷积码的误码性能影响 (15) 结论 (17) 参考文献 (18) 致谢.................................................... 错误!未定义书签。声明.................................................... 错误!未定义书签。

实验九-(2-1-5)卷积码编码译码技术教学内容

实验九-(2-1-5)卷积码编码译码技术

实验九 (2,1,5)卷积码编码译码技术 一、实验目的 1、掌握(2,1,5)卷积码编码译码技术 2、了解纠错编码原理。 二、实验内容 1、(2,1,5)卷积码编码。 2、(2,1,5)卷积码译码。 三、预备知识 1、纠错编码原理。 2、(2,1,5)卷积码的工作原理。 四、实验原理 卷积码是将发送的信息序列通过一个线性的,有限状态的移位寄存器而产生的编码。通常卷积码的编码器由K级(每级K比特)的移位寄存器和n个线性代数函数发生器(这里是模2加法器)组成。 若以(n,k,m)来描述卷积码,其中k为每次输入到卷积编码器的bit数,n为每个k元组码字对应的卷积码输出n元组码字,m为编码存储度,也就是卷积编码器的k元组的级数,称m+1= K为编码约束度m称为约束长度。卷积码将k元组输入码元编成n元组输出码元,但k和n通常很小,特别适合以串行形式进行传输,时延小。与分组码不同,卷积码编码生成的n元组元不仅与当前输入的k元组有关,还与前面m-1个输入的k元组有关,编码过程中互相关联的码元个数为n*m。卷积码的纠错性能随m的增加而增大,而差错率随N的增加而指数下降。在编码器复杂性相同的情况下,卷积码的性能优于分组码。 编码器 随着信息序列不断输入,编码器就不断从一个状态转移到另一个状态并同时输出相应的码序列,所以图3所示状态图可以简单直观的描述编码器的编码过程。因此通过状态图很容易给出输入信息序列的编码结果,假定输入序列为110100,首先从零状态开始即图示a状态,由于输入信息为“1”,所以下一状态为b并输出“11”,继续输入信息“1”,由图知下一状态为d、输出“01”……其它输入信息依次类推,按照状态转移路径a->b->d->c->b->c->a 输出其对应的编码结果“110101001011”。 译码方法 ⒈代数 代数译码是将卷积码的一个编码约束长度的码段看作是[n0(m+1), k0(m+1)]线性分组码,每次根据(m+1)分支长接收数字,对相应的最早的那个分支上的信息数字进行估计,然后向前推进一个分支。上例中信息序列 =(10111),相应的码序列 c=(11100001100111)。若接收序列 R=(10100001110111),先根据R的前三个分支(101000)和码树中前三个分支长的所有可能的 8条路径(000000…)、(000011…)、(001110…)、(001101…)、(111011…)、(111000…)、(110101…)和(110110…)

卷积码的编译码MATLAB程序

%survivor state 是一个矩阵,它显 T 了通过网格的最优路径,这个矩阵通过一个单独的函 数 metric(x,y) 给岀。 %其中G 是一个矩阵,它的任一行决定了从移位寄存器到模 %这里,我们做了一个简单的 (2,1,7) 卷积码编码器。 k=1; G=[1 0 1 1 0 1 1;1 1 1 1 0 0 1]; %以下3种输入序列,可任选一种 c1=c on v(s,g1); %dis p(c1); c2=c on v(s,g2); %dis p(c2); c(2*i-1)=c1(i);c(2*i)=c2(i); 开关读取的结果(此时仅为卷积结果,非 end %i np ut=[0 0 0 0 0 0 0];% %i np ut=[1 1 1 1 1 1 1];% inp ut=[rou nd(ra nd(1,7)*1)]; figure ;pl ot(i np ut, s=i nput; g1=G(1,:); g2=G(2,:); 全0输入 全1输入 %随机系列 输入, %figure1 :画图: 也可用 ran di nt(1,7,[0 1]) 目标input ,红色(red ,r ),形状为* n=len gth(c1); c=zeros(1,2* n); %dis p(c); for i=1: n %7位输入时 %生成全0矩阵, n=13 1*26 for i=1:2*n if (mod(c(i),2)==0) c(i)=0; else c(i)=1; end % mod(c(i),2)==0 意思:c(i)除以2,余数为0 end out put=c; cha nn el_out put=out put; %dis p( cha nn el_out put); %输岀矩阵 figure ;pl ot(out put, % ------------------- '*b' )%画图:目标:卷积码编码输岀,蓝色( blue ,b ) * —以上为编码部分,以下为维特比译码 ----------------- n=size(G,1); %取矩阵G 的行数,故n=2。即得到输岀端口,即 %检验G 的维数 2个模2加法器 if rem(size(G,2),k)~=0 error( 'Size of G and k do not agree' end %当矩阵G 的列数不为k 的整数倍时,rem 为求余函数 )%报错 if rem(size(cha nn el_out put,2), n)~=0 时。(注:size(channel_output,2)=26 %当输岀矩阵的列数不是输岀端口 n 的整数倍 ,2个模2加法器合成的输岀) 2加法器的连接方式.为生成矩阵 %G1=133,G2=171 %作卷积 %两个模 进制0/1 2加法器分别输岀卷积结果序列后, 由旋转 )

卷积码(2,1,3)编译码课程设计

电信系08信息工程 《信息论与编码课程设计》 ——卷积码(2,1,3) 杨耀武 任刚 张明航 王飞 唐军 指导老师:梁维海刘晓丽 2010.6.25

目录 目录........................................................................................................ - 2 - (2,1,3)卷积码 .................................................................... - 3 - 1 摘要: ............................................................................... - 3 - 2 信道编码发展简史: ............................................................... - 3 - 3 卷积码编码: ........................................................................... - 5 - 3.1 编码原理 ........................................................................ - 5 - 3.2 编码器的一般结构 ........................................................ - 6 - 3.3 编码原理框图 ................................................................ - 7 - 3.4 卷积码(2,1,3)状态转移方程 .................................... - 7 - 3.5 卷积码(2,1,3)状态转移表 ........................................ - 8 - 3.6 卷积码(2,1,3)状态转移图 ........................................ - 9 - 4 维特比译码.............................................................................. - 10 - 4.1 维比特译码原理 .......................................................... - 11 - 4.2 维特比译码器原理图 .................................................. - 13 - 5 编程思路.................................................................................. - 13 - 6 卷积码编译码程序 ................................................................. - 14 - 6.1 主函数main.m ............................................................. - 14 - 6.2 状态积state_machine.m .............................................. - 14 - 6.3 汉明距离hamming_distance.m ................................... - 15 - 6.4 213编码程序encode_conv213.m ................................ - 15 - 6.5 213维比特译码decode_conv213.m ............................ - 15 - 7 实验结果及分析 ..................................................................... - 17 - 8 心得体会.................................................................................. - 17 - 9 参考文献.................................................................................. - 18 -

(2,1,2)卷积码的译码设计(0)

前言 卷积码是由伊莱亚斯(Elias)于1954 年首先提出来的。它充分利用了各组之间的相关性,本组的信息元不但决定本组的监督元,而且也参与决定以后若干组的监督元。同时在译码过程中,不但从该时刻所收到的码组中提取译码信息,而且还利用以后若干时刻内所收到的码组来提取有关信息。无论从理论上还是实际上均已证明其性能优于线性分组码。近年来众多有关卷积码研究结果表明,卷积码最有希望实现香农信道编码定理。但卷积码在译码理论及实际应用较为复杂,这些缺点限制了其进一步发展和应用。 维特比译码算法由维特比(Viterbi)1964年提出,算法实质是最大似然译码,但它利用了编码网格图的特殊结构,在网格图中选择一条路径,使相应的译码序列与接收到的序列之间的汉明距(即量度)最小的一种最大似然译码方法,从而大大降低了计算的复杂性。 目前,第三代移动通信系统(3G) 在我国已经开始紧锣密鼓地实施,它带来的高速度、高品质的无线通信服务,将使我们领略到信息技术的无穷魅力。信道纠错编码技术作为保证信息可靠传输的技术,在3G各系统中广泛采用,并且我们现在所使用的第二代移动通信系统,如GSM、CDMA 通信系统,还有卫星与空间通信系统广泛采用了卷积码信道编、译码技术。 本次设计将以(2,1,2)卷积码为例,通过单片机,实现卷积码的译码,借助RS232完成单片机与单片机、单片机与计算机的串口通信,借助7279完成键盘扫描和数码管显示。

第一章系统组成及工作原理 本次设计的(2,1,2)卷积码的译码由89C52单片机为工具,接收来自另一单片机或计算机的编码信息,通过7279的键盘扫描和数码管显示功能可以方便地观察到单片机接收的信息和译码结果。其系统框图如下图1-1所示。 MAX232芯片能实现EIA-RS-232C的正负电压与TTL的高低电平之间的转换,通过它能够方便实现单片机与单片机、单片机与计算机间的串口通信。 HD7279是一片具有串行接口的, 可同时驱动8位共阴极数码管的智能显示驱动芯片, 该芯片同时还可连接多达64键的键盘矩阵, 单片即可独立完成显示、键盘接口的全部功能。采用7279芯片能够节省单片机资源,降低编程复杂度。 1.1 总体系统分析 本系统的具体设计要求为:系统框图 1. 用汇编语音进行(2,1,2)卷积码的译码,并要求在数码管上显示输入的信 息; 2. 用RS232串行芯片实现单片机与计算机的信息传输; 3. 用RS232串行芯片实现单片机与单片机的信息传输; 4. 在上位机上显示所传输的译码结果。 1.2 系统单元功能模块 本系统具有以下单元功能模块: 1. 单片机译码部分; 2. RS232串口通信部分; 3. 数据显示部分。

卷积码编译码实验报告

厦门理工学院实验报告书 课程名称:信息论与编码实验 实验名称:卷积码编译码

m 个有效的寄存器单元,而输出移位寄存器仅中输入移位寄存器最多只有k 起一个并串转换作用。因此称参量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);

(完整word版)卷积码的编译码MATLAB程序.doc

%survivor state 数 metric(x,y) 是一个矩阵,它显 给出。 T 了通过网格的最优路径,这个矩阵通过一个单独的函 %其中G 是一个矩阵,它的任一行决定了从移位寄存器到模 2 加法器的连接方式. 为生成矩阵 %这里,我们做了一个简单的(2,1,7) 卷积码编码器。 k=1; G=[1 0 1 1 0 1 1;1 1 1 1 0 0 1]; %G1=133,G2=171 %以下 3 种输入序列,可任选一种% %input=[0 0 0 0 0 0 0];%全0输入 %input=[1 1 1 1 1 1 1];%全1输入 input=[round(rand(1,7)*1)];%随机系列输入,也可用randint(1,7,[0 1]) figure;plot(input,'*r') %figure1:画图:目标input,红色(red,r),形状为* s=input; g1=G(1,:); g2=G(2,:); c1=conv(s,g1);%作卷积 %disp(c1); c2=conv(s,g2); %disp(c2); n=length(c1);%7 位输入时n=13 c=zeros(1,2*n);%生成全 0 矩阵, 1*26 %disp(c); for i=1:n c(2*i-1)=c1(i);c(2*i)=c2(i);%两个模 2 加法器分别输出卷积结果序列后,由旋转开关读取的结果(此时仅为卷积结果,非 2 进制0/1 ) end for i=1:2*n if(mod(c(i),2)==0) c(i)=0; % mod(c(i),2)==0 意思:c(i) 除以 2 ,余数为0 else c(i)=1; end end output=c; channel_output=output; %输出矩阵 %disp(channel_output); figure;plot(output, '*b' ) %画图:目标:卷积码编码输出,蓝色(blue , b) * %————————————————以上为编码部分,以下为维特比译码———————————————— n=size(G,1); %取矩阵G 的行数,故n=2 。即得到输出端口,即 2 个模 2 加法器 %检验G 的维数 if rem(size(G,2),k)~=0%当矩阵error('Size of G and k do not agree' G 的列数不为k 的整数倍时, ) %报错 rem 为求余函数 end if rem(size(channel_output,2),n)~=0 时。(注: size(channel_output,2)=26 , 2 %当输出矩阵的列数不是输出端口 个模 2 加法器合成的输出) n 的整数倍

(完整word版)卷积码(3 1 2)编译码程序

电子信息与计算机工程系2011级信息工程 ——卷积码(3 1 2) 1.卷积码编译码程序 1.1内嵌函数trel1.m clear;clc trel = poly2trellis(3,[06,05,07]); msg = randint(1,10) code = convenc(msg,trel) code1 = encode312(msg) code-code1 msg1=decode_312(code) msg-msg1 1.2编码程序encode31 2.m function code = encode312(msg) code = zeros(1,length(msg)*3); current = [0 0]; for i = 1:length(msg) [out,next] = state_machine(msg(i),current); current = next; code(3*i-2) = out(1); code(3*i-1) = out(2); code(3*i) = out(3); end

1.3 状态积state_machine.m function[output,nextState]=stat_machine(input,current_state) output(1) =mod(input+current_state(1),2); output(2) =mod(input+current_state(2),2); output(3) =mod(input+current_state(1)+current_state(2),2); nextState(1) =input; nextState(2) =current_state(1); 1.4汉明距离hamming.m function distance = hamming(a,b) temp = a+b; temp = mod(temp,2); distance = sum(temp); 1.5译码程序decode_31 2.m function msg=decode_312(code) chip = 6; for i = 1:2^chip M(i,:) =de2bi(i-1,chip); W(i,:) =encode312(M(i,:)); D(i)=hamming(W(i,:),code(1:chip*3)); end [val,index] = sort(D); ret_msg = zeros(1,length(code)/3); for i = 1:4 ret_msg(i,1:chip) =M(index(i),:); ret_dis(i) = D(index(i)); end iter = (length(code)-chip*3)/3; for i=1:iter for j=1:4 msg_temp1 = [ret_msg(j,1:chip+i-1) 0]; msg_temp2 = [ret_msg(j,1:chip+i-1) 1]; code_temp1 = encode312(msg_temp1); code_temp2 = encode312(msg_temp2); dis_temp1 = hamming(code_temp1,code(1:chip*3+3*i));

卷积码的编解码Matlab仿真

卷积码的编解码Matlab仿真 摘要:卷积码是一种性能优越的信道编码。它的编码器和译码器都比较容易实现,同时它具有较强的纠错能力。随着纠错编码理论研究的不断深入,卷积码的实际应用越来越广泛。本文简明地介绍了卷积码的编码原理和译码原理。并在SIMULINK模块设计中,完成了对卷积码的编码和译码以及误比特统计整个过程的模块仿真。最后,通过在仿真过程中分别改变卷积码的重要参数来加深理解卷积码的这些参数对卷积码的误码性能的影响。经过仿真和实测,并对测试结果作了分析。得出了以下三个结论: (1)当改变卷积码的码率时,系统的误码性能也将随之发生变化。 (2)对于码率一定的卷积码,当约束长度N 发生变化时,系统的误码性能也会随之发生变化。 (3)回溯长度也会不同程度上地影响误码性能。 关键词:卷积码;码率;约束长度;回溯长度

Simulation and Research on Encoding and Decoding of Convolution Code Abstract:Convolution code has a superior performance of the channel code. It is easy to coding and decoding. And it has a strong ability to correct errors. As correcting coding theory has a long development, the practice of convolution code is more and more extensive. In this thesis, the principle of convolution coding and decoding is introduced simply firstly. Then the whole simulation module process of encoding, decoding and the Error Rate Calculation is completed in this design. Finally, in order to understand their performances of error rate, many changes in parameters of convolution code are calculated in the simulation process. After simulation and measure, an analysis of test results is presented. The following three conclusions are draw: (1) When the rate of convolution Code changes, BER performance of the system will change. (2) For a certain rate of convolution code, when there is a change in the constraint length of N, BER performance of the system will change. (3) Retrospective length will affect BER. Key words: convolution code; rate; constraint length; retrospective length;

相关主题
文本预览
相关文档 最新文档