卷积码编码器

卷积码编码器
卷积码编码器

《数字集成电路设计》课程设计题目:交织器解交织器

学院:电子与信息学院

专业:

学号:

姓名:

一、设计要求

1. 请设计一个交织器和解交织器,完成二进制比特流的交织/ 解交织功能。

2. 设计测试文件,验证设计的功能是否正确。

二、设计卷积交织器目的

在数字传输系统中,因为存在噪声,信道衰落等干扰因素,会使传输的信号发生错误,产生误码。虽然数字信号的传输为了防止误码而会进行信道编码,增加传输码的冗余,例如增加监督位等来克服信号在信道传输过程中的错误,但这种检错纠错能力是有限的。例如当出现突发错误,出现大片误码时,这时信道的纠错是无能为力的。而卷积交织器可以将原来的信息码打乱,这时尽管出现大面积突发性错误,这些可以通过解交织器来进行分散,从而将大面积的错误较为平均地分散到不同的码段,利于信道纠错的实现。

三、卷积码编码器原理

卷积码拥有良好的纠错性能,是一种被广泛应用于移动通信的信道编码系统。一个(n,k,m)卷积码编码器由k个输入,具有m阶存储的n个输出的线形时序电路实现。通常,n和k是较小的整数,且k<n,但m比较大。当k=1时,信息序列不再分成小块,以便可以连续处理。卷积码(n,k,m)表示码率R=k/n,编码器级数m=s-1,其中s是码约束长度。

反向CDMA信道使用(3,1,8)卷积码,码率R=1/3,约束长度为9,由于k=1,n=3,m=8,则该卷积编码器包含单个输入端,一个8级移位寄存器,三个模2加法器和一个3向编码器输出的连续转向器。编码器每输入一位信息比特将产生三位编码输出。这些编码符号中,第一个输出符号G0是生成序列g1⑴编码产生的符号,第二个输出符号G1是由生成序列g1⑵编码产生的符号,最后一个输出符号G2是由生成序列g1⑶编码产生的符号,如下图所示。

该电路由一个八位寄存器、三个码生成逻辑、一个时隙发生器和一个四选一复用器构成。mux的输入为G0、G1和G2,码选择信号C[1:0]和clk1由时隙发生器产生,输出信号即为整个电路的输出Yout。

卷积编码器的初始状态用rst异步清零信号置为0,rst=0时,电路清零。

卷积编码器的初始状态全为0,初始状态之后输出的第一个编码符号由生成序列g1⑴编码产生。这里,三个生成序列分别为g1⑴=(101101111),g1⑵=(110110011), g1⑶=(111001001)。

即三个生成多项式分别为:

C0=1+X+X2+X3+X5+X6+X8 (557)

C1=1+X+X4+X5+X7+X8 (663)

C2=1+X3+X6+X7+X8 (711)

四、实验设计与实现

根据以上实验要求,我们首先设想了分为几个模块,然后将各个模块进行整合实现编码器的功能,根据我们的设想编写相应的verilog程序,进行调试、实现。以下是实验的具体过程。

1.卷积码模块设计

(1)3分频器(fenping)。它的功能是产生clk时钟三分之一频率的时钟信号,命名为clk1,同时产生选择信号sel[1:0]。

(2)4-1多路选择器(mux_4_1)。根据sel[1:0]输入的选择信号,选择4路(in0,in1,in2,in3)输入的1路来输出(out)。后来,根据老师的指导,将卷积的运算逻辑组装在这个模块里。

(3)8位移位寄存器(wyjc_8)。用于记录输入的信息。每经过一个时钟上升沿(clk1)向前移位一次。

2.verilog程序编写

各个模块相应的代码和注释如下所示。

(1)3分频器

module fenping(clear,clk,clk1,count);

input clk,clear;

output clk1,count;

wire clk,clear;

reg clk1;

reg [2:0] count;

always @(posedge clk or posedge clear)

begin

if(clear==1)

count[2:0]<=3’b010;

else

begin//通过循环移位实现3分频

count[0]<=count[2];

count[1]<=count[0];

count[2]<=count[1];

clk1<=count[1];

end;

end

endmodule

(2)4—1多路选择器

module mux_4_1(clk1,clk,sel,in,kin,out);

input[1:0] sel;

input clk,in,clk1;

input[7:0] kin;

output out;

wire [1:0] sel;

reg out;

reg [8:0]k;

always @(posedge clk) //依次计算c0,c1,c2

begin

case(sel)

default out<=0;

2’b00:out<=(k[0]+k[1])+(k[2]+k[3])+(k[5]+k[6]+k[8]);

2’b01:out<=k[0]+k[1]+k[4]+k[5]+k[7]+k[8];

2’b10:out<=k[0] +k[3]+k[6])+k[7]+k[8];

endcase

end

always @(posedge clk1) //采样部分

begin

k[7:0]<=kin[7:0];

k[8]<=in;

end

endmodule

(3)8位移位寄存器

module wyjc_8(clear,clk,in,out);

Input clear,clk,in;

output[7:0] out;

reg[7:0] out;

wire clear,clk,in;

always @(posedge clk or posedge clear)

begin

if(clear==1)

out[7:0]<=8’b0;

else

begin

out[7]<=in;

out[6]<=out[7];

out[5]<=out[6];

out[4]<=out[5];

out[3]<=out[4];

out[2]<=out[3];

out[1]<=out[2];

out[0]<=out[1];

end

end

endmodule

(4)整合模块

`include “fenping.v”//将各模块加入文件

`include “mux_4_1.v”

`include “wyjc_8.v”

module bianma(rst,clk,in,out,clk1);

input rst,clk,in;

output out;

output clk1;

wire clr,clk,in,clk1,rst;

wire[7:0] k;

wire[2:0] sel;

reg g0,g1,g2;

fenping f1(.clk(clk),.clear(clr),.clk1(clk1),.count(sel));//分频器实例化

wyjc_8 w1(.clear(clr),.clk(clk1),.in(in),.out(k));//移位寄存器实例化

mux_4_1 m1(.clk1(clk1),.in(in),.kin(k),.clk(clk),.sel(sel[1:0]),.out(out));

//多路选择器实例化

assign clr=~rst;//复位信号翻转

endmodule

(5)测试程序

·timescale 1 ns/ 1 ns

module bianma_test1;

reg clk,rst,in,code,flag;

wire out,clk1;

integer I,j,r_seed;

reg[31:0] a;

reg[15:0] c0,c1,c2;

bianma b1(.clk1(clk1),.clk(clk),.rst(rst),.in(in),.out(out));

initial clk=0;//时钟产生

always #5 clk=~clk;

initial//复位部分

begin

rst=0;

#7 rst=1;

end

initial//结束仿真

#490 $finish;

Initial//输入与对照分量产生

begin

$monitor($stime,,”clk=%b,rst=%b,in=%b,out=%b,code=%b,error=%b ”,clk,rst,in,out,code,fl ag);

a[31:0]=32’b0;

a[18:0]=$random % (1024*8);

for(i=0;i<16;i=i+1)

begin

c0[i]=a[i+8]^ a[i+6]^ a[i+5]^ a[i+3]^ a[i+2]^ a[i+1]^a[i];

c1[i]=a[i+8]^ a[i+7]^ a[i+5]^ a[i+4]^ a[i+1]^a[i];

c2[i]=a[i+8]^ a[i+7]^ a[i+6]^ a[i+3]^a[i];

end

in=0;

flag=0;

#10 in=a[8];

for(i=0;i<16;i=i+1)

begin

#30 in=a[i+9];

end

end

initial//采样对比

begin

#20 code=0;

for(j=0;j<16;j=j+1)

begin

#5 code=c0[j];

#5 if(out!=code) flag=1;

#5 code=c1[j];

#5 if(out!=code) flag=1;

#5 code=c2[j];

#5 if(out!=code) flag=1;

if(flag==1) $dispaly(“error”);

end

end

initial $sdf_annotate(“bianma.sdf”,b1);//延时文件

endmodule

五、仿真与综合

1.初始波形(输入IN为随机数)

图中out端输出为编码器输出,code端输出为对照输出,从仿真波形图可以看出,两者的输出波形完全一致,即编码器工作正常。

2.门级电路仿真

各模块和综合后仿真结果如下4张图所示。

3.综合后电路信息

4.综合后仿真波形(输入IN为随机数)

在control_test.v 文件中加入以下语句,以便将control.sdf 文件标注到测试文件中:initial $sdf_annotate(“control.sdf”,c1); [c1 为测试文件中调用control 电路模块的标签]在对门级电路control.vg 进行仿真时,在仿真命令中使用-v/home2/student/lib/train/verilog/tsmc25.v将库文件引入,得到的仿真波形如下图所示。

由上图可知,在其他条件不变情况下,编码器工作依然正常,但是out端(实际)的输出与code端(对照)的输出相比,有1ps的延迟。

六、实验总结

本次ASIC实验课程的要求是编写一个(3,1,8)卷积码编码器,实验过程总体还算顺利,不过也难免遇到一些问题,程序的编写和修改是贯穿始终的,除此之外,首先的问题是理论知识的应用方面,因为我之前对卷积码了解不多,因此不得不查阅相关书籍仔细了解了卷积码的概念和编码过程,另外一点就是在我们进行仿真的最后阶段,输出波形和校验波形之间有一点冒险的差异,我们试图从各个方面查找问题都没有成功,最终还是得到了老师的帮助,顺利完成。实验中除了进一步锻炼了我的动手能力和解决实际问题的能力之外,还进一步让我体会到了理论联系实际的重要性,并且巩固和应用了课堂所学的verilog语言,通过实验,我对这门课有了更深入的了解,也让我更加有了学习的兴趣。

卷积码的编码及解码Viterbi解码Word版

卷积码的编码及解码(Viterbi 解码) 一、实验目的 1、了解卷积码的基本原理; 2、掌握卷积码编码的电路设计方法; 2、掌握卷积码 Viterbi 译码的基本方法和电路设计方法。 二、实验仪器 1、移动通信实验箱一台; 2、台式计算机一台; 三、实验原理 1.卷积码编码原理 卷积码是一个有限记忆系统,它也将信息序列切割成长度 k的一个个分组,与分组码不 同的是在某一分组编码时,不仅参看本时刻的分组而且参看本时刻以前的 L 个分组。我们把 L+1 称为约束长度。 2.卷积码的译码算法(硬判决 Viterbi 译码) Viterbi译码算法是一种最大似然算法,它不是在网络图上依次比较所有可能的路径, 而是接收一段,计算,比较一段,保留最有可能的路径,从而达到整个码序列是一个最大似然序列。Viterbi解码算法的基本步骤如下: 1、从某一时间单位j=m开始,对进入每一状态的所有长为j段分支的部分路径,计算部分路径度量。对每一状态,挑选并存储一条有最大度量的部分路径及 其部分度量,称此部分路径为留选(幸存)路径。 2、j增加1,把此时刻进入每一状态的所有分支度量,和同这些分支相连的前一时刻的留选路径的度量相加,得到了此时刻进入每一状态的留选路径,加以存储并删去其他所有的路径。因此留选路径延长了一个分支。 3、若j

基于matlab的2-3卷积码编码译码设计与仿真

西南科技大学 方向设计报告 课程名称:通信工程方向设计 设计名称:2/3卷积码编译码器仿真与性能分析 姓名: 学号: 班级: 指导教师: 起止日期:2011.12.12-2012.1.6 西南科技大学信息工程学院制

方向设计任务书 学生班级:学生姓名:学号: 设计名称:2/3卷积码编译码器仿真与性能分析 起止日期:2011.12.12-2012.1.6指导教师: 设计要求: (1)分析2/3卷积码编码器结构; (2)分析2/3卷积码译码的Viterbi算法; (3)基于SIMULINK进行2/3卷积码的纠错性能仿真; 方向设计学生日志 时间设计内容 12.15-12.17 查看题目及设计要求。 12.18-12.23 查阅相关资料,设计方案。 12.23-12.27 编写报告及调试程序。 12.28-12.29 完善修改课程设计报告。 12.30-12.31 答辩。

方向设计考勤表 周星期一星期二星期三星期四星期五 方向设计评语表 指导教师评语: 成绩:指导教师: 年月日

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

卷积码编码器的设计 (1)剖析

湖南文理学院 课程设计报告 课程名称:通信系统课程设计 专业班级:通信工程11102班09 学生姓名:朱涛 指导教师:侯清莲 完成时间:2014-11-18 报告成绩:

目录 一、设计要求 (1) 二、设计作用与目的 (1) 三、所用设备及软件 (1) 四、卷积码编码的概念 (1) 4.1卷积码的编码描述方法 (1) 4.2 卷积编码 (2) 4.3 卷积码的树状图 (3) 4.4 卷积码的网格图 (3) 五、 EDA设计方法及工具软件QUARTUSⅡ (4) 六、改变卷积编码器的参数仿真以及结论 (4) 6.1 不同回溯长度对卷积编码器性能的影响 (4) 6.2 不同码率对卷积编码器误码性能的影响 (5) 6.3 不同约束长度对卷积编码器的误码性能影响 (6) 七、卷积码编码器的VHDL设计与仿真 (8) 7.1 VHDL设计的优点与设计方法 (8) 7.2 卷积码编码器的VHDL实现 (10) 八、心得体会 (10) 九、参考文献 (11)

卷积编码器的设计 一、设计要求 (1)画出卷积码的原理框图,说明系统中各主要组成部分的功能。 (2)使用EDA技术及VHDL语言对卷积编码器进行设计与仿真并对结果分析。 二、设计作用与目的 (1)巩固加深对通信基本知识分析以及卷积码的掌握,提高综合运用通信知识的能力。(2)掌握采用仿真软件对系统进行仿真分析。 (3)培养学生查阅参考文献,独立思考,设计,钻研电子技术相关问题的能力。 (4)掌握相关电子线路工程技术规范以及常规电子元器件的性能技术指标。 (5)培养严肃认真的工作作风与科学态度,建立严谨的工程技术观念。 (6)了解电气图国家标准,并利用电子CAD等正确绘制电路图。 (7)培养工程实践能力,创新能力与综合设计能力。 三、所用设备及软件 (1)QUARTUSⅡ (2)PC机 四、卷积码编码的概念 4.1卷积码的编码描述方法 编码描述方法有5种:冲激响应描述法、生成矩阵描述法、多项式乘积描述法、状态图描述法和网格图描述法。卷积码的纠错能力随着N的增加而增大,而差错率随着N的增加而指数下降。在编码器复杂性相同的情况下,卷积码的性能优于分组码。分组码有严格的代数结构,但卷积码至今尚未找到如此严密的数学手段。分组码的译码算法可以由其代数特性得到。卷积码虽然可以采用适用于分组码的门限译码(即大数逻辑译码),但性能不如维特比译码和序列译码[2]。 以二元码为例,输入信息序列为u=(u0,u1,…),其多项式表示为u(x)=u0+u1x+…+…。编码器的连接可用多项式表示为g (1,1) (x)=1+x+x2和g(1,2)(x)=1+x2,称为码的子生 成多项式。它们的系数矢量g (1,1)=(111)和g (1,2) =(101)称作码的子生成元。以子生成多项式 为阵元构成的多项式矩阵G(x)=[g (1,1)(x),g (1,2) (x)],称为码的生成多项式矩阵。由生成 元构成的半无限矩阵。

Matlab的卷积码译码器的仿真要点

基于Matlab的卷积码译码器的 设计与仿真 学生姓名:指导老师:** 摘要本课程设计主要解决对一个卷积码序列进行维特比(Viterbi)译码输出, 并通过Matlab软件进行设计与仿真,并进行误码率分析。在课程设计中,系统开发平台为Windows Vista Ultimate,程序设计与仿真均采用Matlab R2007a(7.4),最后仿真详单与理论分析一致。 关键词课程设计;卷积码译码器;Matlab;Simulink;设计与仿真 1引言 本课程设计主要解决对一个卷积码序列进行维特比(Viterbi)译码输出,并通 过Matlab软件进行设计与仿真。卷积码的译码有两种方法——软判决和硬判决,此课程设计采用硬判决的维特比译码。 1.1课程设计目的 卷积码是一种向前纠错控制编码。它将连续的信息比特序列映射为连续的编码器输出符号。这种映射是高度结构化的,使得卷积码的译码方法与分组码译码所采用的方法完全不同。可以验证的是在同样复杂度情况下,卷积码的编码增益要大于分组码的编码增益。对于某个特定的应用,采用分组编码还是采用卷积编码哪一种更好则取决于这一应用的具体情况和进行比较时可用的技术[1]。 本课程设计便是通过Matlab设计一个硬判决维特比译码输出的完整电路,并进行误码率分析。

1.2 课程设计的原理 卷积码,又称连环码,是由伊莱亚斯(P.elias)于1955年提出来的一种非分组码。 卷积编码的最佳译码准则为:在给定已知编码结构、信道特性和接收序列的情况下,译码器将把与已经发送的序列最相似的序列作为传送的码字序列的估值。对于二进制对称信道,最相似传送序列就是在汉明距离上与接收序列最近的序列。 卷积码的译码方法有两大类:一类是大数逻辑译码,又称门限译码(硬判决,编者注);另一种是概率译码(软判决,编者注),概率译码又分为维特比译码和序列译码两种。门限译码方法是以分组码理论为基础的,其译码设备简单,速度快,但其误码性能要比概率译码法差[2]。 当卷积码的约束长度不太大时,与序列译码相比,维特比译码器比较简单,计算速度快。维特比译码算法是1967年由Viterbi提出,近年来有大的发展。目前在数字通信的前向纠错系统中用的较多,而且在卫星深空通信中应用更多,该算法在卫星通信中已被采用作为标准技术。 2维特比译码原理 采用概率译码的基本思想是:把已接收序列与所有可能的发送序列做比较,选择其中码距最小的一个序列作为发送序列。如果发送L组信息比特,那么对于(n,k)卷积码来说,可能发送的序列有2kL个,计算机或译码器需存储这些序列并进行比较,以找到码距最小的那个序列。当传信率和信息组数L较大时,使得译码器难以实现。维特比算法则对上述概率译码做了简化,以至成为了一种实用化的概率算法。它并不是在网格图上一次比较所有可能的2kL条路径(序列),而是接收一段,计算和比较一段,选择一段最大似然可能的码段,从而达到整个码序列是一个最大似然值得序列。 下面以图2.1的(2,1,3)卷积码编码器所编出的码为例,来说明维特比解码的方法和运作过程。为了能说明解码过程,这里给出该码的状态图,如图2.2所

213卷积码编码和译码

No.15 (2,1,3)卷积码的编码及译码 摘要: 本报告对于(2,1,3)卷积码原理部分的论述主要参照啜刚教材和课件,编程仿真部分绝对原创,所有的程序都是在Codeblocks 8.02环境下用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 数组中,然后运算输出卷积码。经过实验仿真,编码完全正确。 以下是举例: a.课件上的输入101 输出11 10 00 的实验

卷积码的设计与实现

湖南文理学院课程设计报告 课程名称:通信系统课程设计 院部:电气与信息工程学院 专业班级: 学生姓名: 指导教师: 完成时间: 2011 年 12 月 29日 报告成绩:

目录 目录 (2) 摘要 (3) Abstract (4) 一、引言 (5) 1.1设计任务及基本要求 (5) 1.2设计目的 (6) 1.3 设计所用仪器设备.................................................................................. 错误!未定义书签。 二、基本概念 (6) 2.1 卷积码的编码原理 (6) 2.2 卷积码编码描述 (6) 2.3 卷积码译码描述 (6) 三、卷积码的编译码原理 (6) 3.1卷积码的图形描述 (6) 3.1.1 树状图 (8) 3.1.2 网格图 (8) 3.1.3 状态图 (9) 3.2 卷积积码的编码算法 (9) 3.3卷积码的Viterbi译码 (10) 四、卷积码的仿真及性能分析 (12) 4.1 SIMULINK仿真模块 (12) 4.2 卷积码的参数对误码率的影响 (13) 4.2.1 码率对误码性能的影响 (13) 4.2.2 约束长度对误码性能的影响 (15) 4.2.3 回溯长度对卷积码性能的影响 (16) 4.3 仿真分析 (17) 总结 (18) 参考文献: (19)

摘要 卷积码是深度空间通信系统和无线通信系统中常用的一种差错控制编码。在编码过程中,卷积码充分利用了各码字间的相关性。在与分组码同样的码率和设备复杂性的条件下,无论从理论上还是从实践上都证明,卷积码的性能都比分组码具有优势。而且卷积码在实现最佳译码方面也较分组码容易。因此卷积码广泛应用于卫星通信,CDMA数字移动通信等通信系统,是很有前途的一种编码方式。对其进行研究有很大的现实意义。为了解决传统的维特比译码器结构复杂、译码速度慢、消耗资源大的问题,提出一种新型的适用于FPGA 特点,路径存储于译码输出并行工作,同步存储路径矢量和状态矢量的译码器设计方案。该设计方案通过在ISE.2i中仿真验证,译码结果正确,得到编码前的原始码元,速度显著提高,译码器复杂程度明显降低。并在实际的软件无线电通信系统中信道编解码部分得到应用,性能优良。 关键词:卷积码;误码性能;原理

14卷积码编解码

实验四 卷积码的编解码 一、实验目的 1、掌握卷积码的编解码原理。 2、掌握卷积码的软件仿真方法。 3、掌握卷积码的硬件仿真方法。 4、掌握卷积码的硬件设计方法。 二、预习要求 1、掌握卷积码的编解码原理和方法。 2、熟悉matlab 的应用和仿真方法。 3、熟悉Quatus 的应用和FPGA 的开发方法。 三、实验原理 1、卷积码编码原理 在编码器复杂度相同的情况下,卷积码的性能优于分组码,因此卷积码几乎被应用在所有无线通信的标准之中,如GSM , IS95和CDMA 2000 的标准中。 卷积码通常记作( n0 , k0 , m) ,它将k 0 个信息比特编为n 0 个比特, 其编码效率为k0/ n0 , m 为约束长度。( n0 , k0 , m ) 卷积码可用k0 个输入、n0 个输出、输入存储为m 的线性有限状态移位寄存器及模2 加法计数器来实现。 本实验以(2,1,3)卷积码为例加以说明。图1就是卷积码编码器的结构。 图1 (2,1,3)卷积码编码器 其生成多项式为: 21()1G D D D =++; 2 2()1G D D =+; 如图1 所示的(2,1,3)卷积码编码器中,输入移位寄存器用转换开关代替,每输入一个信息比特经编码产生二个输出比特。假设移位寄存器的初始状态为全0,当第一个输入比特为0时,输出比特为00;若输入比特为1,则输出比特为11。随着第二个比特输入,第一个比特右移一位,此时输出比特同时受到当前输入比特和前一个输入比特的影响。第三个比特输入时,第一、二个比特分别右移一位,同时输出二个由这三位移位寄存器存储内容所共同决定的比特。依次下去就完成了编码过程。 下面是卷积码的网格图表示。他是比较清楚而又紧凑的描述卷积码的一种方式,它是最常用的描述方

实验九 (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)与接收

卷积码

卷积码 1、什么是卷积码? 卷积码作为一种编码方法,是将k个信息比特编成n个比特,但k和n通常很小,因此时延小,特别适合以串行形式进行传输。通常它更适合于前向纠错,因而对于许多实际情况它的性能优于分组码,而且运算较简单。 2、卷积码的编译原理? (1)编码原理 下图示出卷积码编码器一般原理方框图。编码器由三种主要元件构成,包括Nk级移存器、n个模2加法器和一个旋转开关。每个模2加法器的输入端数目可以不同,它连接到一些移存器的输出端。模2加法器的输出端接到旋转开关上。将时间分成等间隔的时隙,在每个时隙中有k比特从左端进入移存器,并且移存器各级暂存的信息向右移k位。旋转开关每时隙旋转一周,输出n比特(n)k)。 (2)译码原理 卷积码的解码方法可以分为两类:代数解码和概率解码。代数解码是利用编码本身的代数结构进行解码,不考虑信道的统计特性。概率解码则是基于信道的统计特性和卷积码的特点进行计算,其中一种概率解码方法是维特比算法。当码的约束长度较短时,它比序贯解码算法的效率更高、速度更快,目前得到广泛的使用。

维特比算法的基本原理是将接收到的信号序列和所有可能的发送信号序列比较,选择其中汉明距离最小的序列认为是当前发送信号序列。若发送一个k位序列,则有2k种可能的发送序列。计算机应存储这些序列,以便用作比较。当k较大时,存储量太大,使实用受到限制。维特比算法对此作了简化,使之能够实用。 3、与分组码相比,卷积码的优势是什么? 与分组码不同的是,卷积码编码后n个码元不但与本码组的k个信息码元有关,而且与前面的N-1段信息有关,编码的过程中相互关联的码元有N*n个。卷积码的纠错能力同样是随N的增大而增大,其差错率随N的增大而指数的下降。在编码器相同的情况下,卷积码的性能优于分组码。另一点不同是,分组码有严格的代数结构,但是卷积码至今没有严格的数学手段把纠错能力和码结构有机地联系起来,目前大都是采用计算机搜索来搜索好用的码组。 4、卷积码编译电路的组成结构? (1)信号发生器 (2)卷积码编码器 (3)信道 (4)卷积码译码器 参考文献: [1]通信原理(第6版)樊昌信、曹丽娜,国防工业出版社·北京,2012 [2]SystemView通信仿真开发手册,孙屹,国防工业出版社,2004 [3]SystemView动态系统分析及通信系统仿真设计,罗卫兵、孙桦、张捷,西安电子科技大学出版社,2001

无线通信技术实验一卷积码

实验二:卷积码 一、实验仪器: PC两台、USRP两台 二、实验目的: 1、了解grc仿真中的信号处理模块、流程图以及使用方法 2、了解卷积码的基本原理 3、了解GunRadio实现信道编码的方法 4、了解不同SNR对于误码率的影响 5、了解卷积码对误码率的影响 6、了解不同的卷积码对于误码率的影响 三、实验要求: 1.了解Grc的基本操作方法,要求仿真的流程中信道编码部分使用卷积编码 2.通过单机实验和GnuRadio+USRP的实验两种实验方式进行仿真 3.搭建有信道编码与无信道编码的Grc仿真模型 4.比较上述两种情况下的误码率,并且分析结果 5.比较不同的卷积码对于误码率的影响,并且分析结果。 四、实验原理: 卷积码将k个信息比特编码成n个比特,但k和n通常很小,特别适合以串行形式进行传输,时延小。与分组码不同,卷积码编码后的n 个码元不仅与当前段的k个信息有关,还与前面的N-1段信息有关,编码过程中互相关联的码元个数为nN。卷积码的纠错性能随N的增加而增大,而差错率随N的增加而指数下降。卷积码的纠错能力不仅与约束长度有关,还与采用的译码方式有关。 GRC提供译码方式是维特比译码,它是卷积码译码方式中非常经典的以及广泛使用的一种译码方式。该实验可以考察编码前后数据有什么

变化,译码后能不能恢复原来数据,通过Number Sink考察加噪声后误比特率怎么样,对性能有什么提高,并且划出BER图形。下面为卷积码的一般流程: 五、实验步骤及分析: 1、单机实验: 单机实验分成(2,1,3)码、无信道编码、(2,1,8)码三个部分进行。 (一)实验流程图: 首先,我们利用(2,1,3)卷积码进行信道编码,用DPSK进行调制,来进行单机实验,最终设计的流程图和参数如下图所示: 先是Vector Source,即信源,设置的数据是1,0,0,1,1。然后是Throttle限流模块。接下来是Packed to Unpacked模块,将pack成byte或short型的数据以unpacked型的数据输出。然后就是卷积码编码模块,这里需要找到(2,1,3)卷积码在电脑中的位置,再将路径设置到这个模块相应的位置中。接下来一个模块叫做Packet encoder,然后便是调制模块DPSK Mod,我们使用的便是DPSK调制。在噪声模块中设置噪声的大小为0.31,这个数字不能太大,否则就会是解码完全错误,也不能太小,否则误比特率几乎一直为零。

卷积码编码和维特比译码

卷积码编码维特比译码实验设计报告 SUN 一、实验目的 掌握卷积码编码和维特比译码的基本原理,利用了卷积码的特性, 运用网格图和回溯以得到译码输出。 二、实验原理 1.卷积码是由连续输入的信息序列得到连续输出的已编码序列。其编码器将k个信息码元编为n个码元时,这n个码元不仅与当前段的k个信息有关,而且与前面的 (m-1)段信息有关(m为编码的约束长度)。 2.一般地,最小距离d表明了卷积码在连续m段以内的距离特性,该码可以在m个连续码流内纠正(d-1)/2个错误。卷积码的纠错能力不仅与约束长度有关,还与采用的译码方式有关。 3. 维特比译码算法基本原理是将接收到的信号序列和所有可能的发送信号序列比较,选择其中汉明距离最小的序列认为是当前发送序列。卷积码的Viterbi 译码是根据接收码字序列寻找编码时通过网格图最佳路径的过程,找到最佳路径即完成了译码过程,并可以纠正接收码字中的错误比特。 4.所谓“最佳”, 是指最大后验条件概率:P( C/ R) = max [ P ( Cj/ R) ] , 一般来说, 信道模型并不使用后验条件概率,因此利用Beyes 公式、根据信道特性出结论:max[ P ( Cj/ R) ]与max[ P ( R/ Cj) ]等价。考虑到在系统实现中往往采用对数形式的运算,以求降低运算量,并且为求运算值为整数加入了修正因子a1 、a2 。令M ( R/ Cj) = log[ P ( R/ Cj) ] =Σa1 (log[ P( Rm/ Cmj ) ] + a2) 。其中, M 是组成序列的码字的个数。因此寻找最佳路径, 就变成寻找最大M( R/ Cj) , M( R/ Cj) 称为Cj 的分支路径量度,含义为发送Cj 而接收码元为R的似然度。 5.卷积码的viterbi译码是根据接收码字序列寻找编码时通过网格图最佳路径的过程,找到最佳路径即完成了译码过程 并可以纠正接收码字中的错误比特。 三、实验代码 #include #include "Conio.h" #define N 7 #include "math.h" #include #include #define randomize() srand((unsigned)time(NULL)) encode( unsigned int *symbols, /*编码输出*/ unsigned int *data, /*编码输入*/ unsigned int nbytes, /*nbytes=n/16,n为实际输入码字的数目*/ unsigned int startstate /*定义初始化状态*/

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

卷积码的仿真

湖南科技大学 信息与电气工程学院 课程设计报告 课程:通信原理 题目:卷积码的仿真 专业:电子信息工程 班级:电子二班 姓名:高二奎 学号: 1104030205

任务书

目录 一、任务与要求 (4) 1.1设计的目的 (4) 1.2 设计的基本内容 (4) 二、卷积码的介绍 (4) 2.1 卷积码的介绍 (4) 2.2 编码原理 (4) 2.3 译码原理 (7) 三、SystemView软件简介 (8) 3.1 SystemView基本特点 (8) 3.2 各单元模块功能介绍及电路设计 (8) 3.3 各模块的原理及介绍 (10) 3.4 图符库选择按钮 (10) 3.5 system view 的操作步骤 (11) 3.6 分析窗的接收计算器 (12) 四、系统仿真和调试 (12) 4.1 系统仿真 (12) 4.2 调试结果 (13) 五、总结 (15) 5.1 设计小结 (15) 5.2 心得体会 (15) 参考文献 (16)

一、任务与要求 1.1设计的目的 这次的课程设计就是基于SystemView软件的卷积码仿真设计,要学会运用SystemView,理解卷积码系统的原理,并用SystemView进行仿真设计。 1.2 设计的基本内容 SystemView是一种动态系统分析软件,也是一个非常好的仿真工具。它能按照物理概念直接建立分析和仿真,对通信技术的发展起到很大的作用。本次课程设计就是利用软件SystemView对卷积码进行可视化仿真,对信息数据的编码,传输及译码等功能的实现,充分展示了SystemView在通信仿真中灵活的应用实例。 二、卷积码的简介 2.1 卷积码介绍 非分组码的卷积码的编码器是在任一段规定时间内产生n个码元,但它不仅取决于这段时间中的k个信息位,还取决于前(K-1)段规定时间内的信息位,这K段时间内的码元数目为K·k,称参数K为卷积码的约束长度,每k 个比特输入,得到n比特输出,编码效率为k/n,约束长度为K。在k=1的条件下,移位寄存器级数m=K-1。 卷积码一般可用(n,k,K)来表示,其中k为输入码元数,n为输出码元数,而K则为编码器的约束长度。典型的卷积码一般选n和k ( k< n ) 值较小,但约束长度K可取较大值(K<10),以获得既简单又高性能的信道编码 [6]。 卷积码是1955年Elias最早提出,1957年Wozencraft提出了序列译码。 1963年Massey提出了一种性能稍差,但比较实用的门限译码方法。1967年维特比(Viterbi)提出了最大似然译码。它对存储器级数较小的卷积码的译码很容易实现,称为维特比算法或维特比译码。

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 - 二、设计目的和意义 因为信道中信号不可避免会受到干扰而出错。为实现可靠性通信,主要有两种途径:一种

移动通信中的语音编码和信道编码

移动通信中的语音编码和信道编码 目录 摘要---------------------------------------------------2 前言---------------------------------------------------3 1 基础理论---------------------------------------------3 2 语音编码---------------------------------------------3 2.1 PHS系统的语音编码-------------------------------4 2.2 GSM系统的语音编码------------------------------4 2.3 IS95 CDMA系统的语音编码-------------------------4 2.4 语音编码比较-------------------------------------5 2.5 语音编码展望-------------------------------------5 3 信道编码----------------------------------------------6 3.1 GPRS的信道编码----------------------------------6 3.2 WCDMA的信道编码---------------------------------6 3.3 信道编码比较-------------------------------------7 3.4 编码速率对网络规划的影响-------------------------7

北邮ASIC实验报告 (3,1,8)卷积码编码器

北京邮电大学 ASIC原理课程实验 实验报告 设计要求:(3,1,8)卷积码编码器 学院:电子工程学院 专业:电子信息科学与技术 班级: 学号: 姓名: 2013年6月20日

一、设计要求 运用verilog语言编写一个(3,1,8)卷积码编码器,并对其进行仿真。 二、卷积码编码器原理 卷积码拥有良好的纠错性能,是一种被广泛应用于移动通信的信道编码系统。一个(n,k,m)卷积码编码器由k个输入,具有m阶存储的n个输出的线形时序电路实现。通常,n和k是较小的整数,且k<n,但m比较大。当k=1时,信息序列不再分成小块,以便可以连续处理。卷积码(n,k,m)表示码率R=k/n,编码器级数m=s-1,其中s是码约束长度。 反向CDMA信道使用(3,1,8)卷积码,码率R=1/3,约束长度为9,由于k=1,n=3,m=8,则该卷积编码器包含单个输入端,一个8级移位寄存器,三个模2加法器和一个3向编码器输出的连续转向器。编码器每输入一位信息比特将产生三位编码输出。这些编码符号中,第一个输出符号G0是生成序列g1⑴编码产生的符号,第二个输出符号G1是由生成序列g1⑵编码产生的符号,最后一个输出符号G2是由生成序列g1⑶编码产生的符号,如下图所示。 该电路由一个八位寄存器、三个码生成逻辑、一个时隙发生器和一个四选一复用器构成。mux的输入为G0、G1和G2,码选择信号C[1:0]和clk1由时隙发生器产生,输出信号即为整个电路的输出Yout。 卷积编码器的初始状态用rst异步清零信号置为0,rst=0时,电路清零。 卷积编码器的初始状态全为0,初始状态之后输出的第一个编码符号由生成序列g1⑴编码产生。这里,三个生成序列分别为g1⑴=(101101111),g1⑵=(110110011), g1⑶=(111001001)。

相关文档
最新文档