当前位置:文档之家› 卷积码的设计与实现

卷积码的设计与实现

卷积码的设计与实现
卷积码的设计与实现

湖南文理学院课程设计报告

课程名称:通信系统课程设计

院部:电气与信息工程学院

专业班级:

学生姓名:

指导教师:

完成时间: 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中仿真验证,译码结果正确,得到编码前的原始码元,速度显著提高,译码器复杂程度明显降低。并在实际的软件无线电通信系统中信道编解码部分得到应用,性能优良。

关键词:卷积码;误码性能;原理

Abstract

Convolution code is deep space communication system and wireless communication system nowadays.but the error-controlling codes. The coding process, convolution code makes full use of the correlation between each code words. With the same code block code rate and equipment and the complexity of conditions, either in theory or in practice proved that the performance of convolution code than block code has advantage. And convolution code in the realization of the optimal decoding with block code easier. Therefore convolution code is widely applied in satellite communications, such as CDMA digital mobile communication system, is very promising a encoding. Conducts the research has great practical significance. In order to solve the traditional victor than decoder structure is complex, decoding speed is slow, consume resources big problems, and put forward a new kind of applicable to the FPGA characteristics, the path stored in decoding output parallel work, synchronous storage path vector and state vector decoder design scheme. The design through 2i ISE. In simulation test, decoding of results are correct, get before encoding source of yuan, speed increased significantly, decoder complexity significantly reduced. And in the actual software radio communication system channel decoding parts and get application and excellent performance.

Keywords: convolution code; The ber performance, principle

一、引言

1.1设计任务及基本要求

信道编码是数字通信系统中的重要组成部分,他是保证信号可靠传输的一种重要方式.卷积码以其优越的性能被广泛使用在数字通信系统中。本课题要求掌握卷积码的组成、功能以及卷积码的译码及其算法,对卷积编码器进行设计和验证。整个设计要达到以下要求:(1)画出卷积码的原理框图,说明系统中各主要组成部分的功能。

(2)根据选用的软件编好用于系统仿真的测试文件。

(3)给出仿真结果及进行分析。

(4)独立完成课程设计报告。

(5)电路图中的图形符号必须符合国家或国际标准。

1.2设计目的

(1)巩固加深对通信基本知识分析以及卷积码的掌握,提高综合运用通信知识的能力;(2)培养学生查阅参考文献,独立思考、设计、钻研电子技术相关问题的能力;

(3)掌握采用仿真软件对系统进行仿真分析。

(4)掌握相关电子线路工程技术规范以及常规电子元器件的性能技术指标;

(5)了解电气图国家标准以及电气制图国家标准,并利用电子CAD等正确绘制电路图;(6)培养严肃认真的工作作风与科学态度,建立严谨的工程技术观念;

(7)培养工程实践能力、创新能力和综合设计能力。

1.3设计所用仪器设备

电脑、MATLAB软件

二、基本概念

2.1卷积码的编码原理

卷积码通常用(n,k,m)表示,它是把k个信息比特编成n个编码比特,通常k和n很小,特别适宜于以串行方式传输信息,延时小。m为编码约束长度,说明编码过程中互相约束的码段个数。卷积码编码后的n 个码元不仅与当前组的k 个信息比特有关,而且与前m- 1 个输入的信息比特有关,这样编码过程中相互关联的码元有m*n个。定义R=k/n 为卷积码的码率,码率和约束长度是衡量卷积码性能的两个重要参数。

卷积码的编码描述方法分为两类:解析表示法与图形表示法。前者又包括离散卷积法、

生成矩阵法和码多项式法等;后者包括状态图法、树图法和格图法等。通常卷积码通过移位寄存器组成的网络结构来描述。

2.2卷积码编码的描述

卷积码的编码描述方法有5 种:冲激响应描述法、生成矩阵描述法、多项式乘积描述法、状态图描述法和网格图描述法。卷积码的纠错能力随着N的增加而增大,而差错率随着N的增加而指数下降。在编码器复杂性相同的情况下,卷积码的性能优于分组码。分组码有严格的代数结构,但卷积码至今尚未找到如此严密的数学手段。分组码的译码算法可以由其代数特性得到。卷积码虽然可以采用适用于分组码的门限译码(即大数逻辑译码),但性能不如维特比译码和序列译码。

2.3卷积码译码的描述

卷积编码的最佳译码准则为:在给定已知编码结构、信道特性和接收序列的情况下,译码器将把与已经发送的序列最相似的序列作为传送的码字序列的估值。对于二进制对称信道,最相似传送序列就是在汉明距离上与接收序列最近的序列。

卷积码的译码方法有两大类:一类是大数逻辑译码,又称门限译码(硬判决,编者注);另一种是概率译码(软判决,编者注),概率译码又分为维特比译码和序列译码两种。门限译码方法是以分组码理论为基础的,其译码设备简单,速度快,但其误码性能要比概率译码法差。

当卷积码的约束长度不太大时,与序列译码相比,维特比译码器比较简单,计算速度快。维特比译码算法是1967年由Viterbi提出,近年来有大的发展。它是根据接收序列在码的格图上找出一条与接收序列距离(或其他量度)为最小的一种算法。目前在数字通信的前向纠错系统中用的较多,而且在卫星深空通信中应用更多,该算法在卫星通信中已被采用作为标准技术。

三、卷积码编译码原理

3.1卷积码的图形描述

以图3-1的(3,1,3)卷积码编码器为例说明卷积码编码器的工作过程二它由

3触点转换开关和一组3位移存器及模2加法器组成每输入一个信息比特,经该编码器后产生3个输出比特。为方便起见,先假设该移位寄存器的起始状态全为零,当第一个输人比特为”0”时,输出比特为OO0;若第一个输人比特为1时,则输出比特为111;当输人第二比特时,第一比特右移一位。此时的输出比特显然与“当前输人比特和前一输人比特”有关当输人第成比特时,第一和第二比特皆右移一位,可看到此时的输出比特与“当前输入比特和前二位愉人比特”有关。当第四比特输人时,原第一输人比特已移出移位寄存器而消失,即第一输人比特已不再影响当前的输人比特,如图3-2所示,以上编码器在移位过程中可能产生的各种序列,可用树状图、网格图或状态图来描述。

图3-2 编码器输入-输出关系

3.1.1树状图

图3-3给出了(3,1,3)卷积码的树状图。按照习惯的做法。码树的起始节点 位于左边;移位寄存器的初始状态取00,取12M M =00,用a 来表示,

并把该a 标注于起始节点处。当输人码元是0时,则由节点出发走上支路;当输人码元是1时.则由节点出发走下支路。例如,当该编码器第一输入比特为0时,则走上支路,此时移存器的输出码“000”就写在上支杈的上方;当该编码器第一输人比特为1时,则走下支路,此时移存器的输出码“111”就写在图中下支杈的上方。在输人第二比特时,移位寄存器右移一位,此时上支路情况下的移位寄存器的状态为00,即a ,并标注于上支路节点处;此时下支路情况下的移位寄存器状态为O1,即b ,并标注于下支路节点处;同时上下支路都将分两杈。以后每一个新输人比特都会使上下支路各分两杈。经过4个输人比特后,得到的该编码器的树状图如图3-3所示。树状图中,

节点上标注的a 表示12M M =00, b 表示12M M =O1,。C 表示12M M = 10, d 表示12M M =11。

3.1.2网格图

由树状图看到,对于第j 个输人信息比特,相应出现有2j 条支路,且在3j N ≥=时树状图出现节点,自上而下重复取4种状态。又看到,当j 变大时,图的纵向尺寸越来越大。于是提出一种网格图,注意到码树状态的重复性,使图形变得紧凑。上例(3,1,3)码的网格图示于图3-4。网格图中,把码树中具有相同状态的节点合并在一起;码树中的上支路用实线表示,下支路用虚线表示;支路上标注的码元为输出比特;自上而下的4行节点分别表示a ,b,c,d 的四种状态。网格图中的状态,通常有1N z -种状态。从第N 个节点开始.图形开始重复,且完全相同。

3.1.3状态图

当网格图达到稳定状态后,取出两个节点间的一段网格图,即得到图3-5( a)的状态转移图。此后,再把目前状态与下一节拍状态合并起来,即可得到图3-5(b)的最简的状态转移图,称之为卷积码状态图。

3.2卷积积码的编码算法

卷积码的编码描述方法有5种:冲激响应描述法、生成矩阵描述法、多项式乘积描述法、状态图描述法和网格图描述法。本文采用的是冲击响应描述法编码思想,下面以

b

b

图3-5 (3,1,3)卷积码状态图

a

b

c

d

000 000 000 000 000 图3-4 (3,1,3)卷积码网格图

n=2,k=1,N=3,(2,1,3)卷积码为例展开研究,其编码方式如图3-6所示

冲激响应,就是编码器对移入的单个“1”比特的响应(假设寄存器初始状态为0 0 0),当一位1通过图1的寄存器时,寄存器的内容为:

表一:寄存器内容

输入序列:1 0 0

输出序列:1 1 1 0 1 1

输入“1”所对应的输出序列就是这个编码的响应,输入序列m=101

时,对应的输出可按如

下方式线性叠加时移输入“脉冲”得到。

由于可以通过将按时间移位的脉冲进行线性叠加,或者将输入序列和编码器的脉冲响应相卷积来产生输出编码,因此这种编码器称为卷积编码器。

表二:卷积编码器输出

3.3卷积码的Viterbi译码

Viterbi译码是最大似然译码,译码的任务是在树状图或网格图中选择一条路径,计算

图3-6(2,1,3)卷积码编码器

出各支路与接收到的信息序列的距离。从中选出距离最小的一条支路作为译码输出。这样选出来的输出序列和发送端发出的序列最为相似。换句话说,此序列出错的概率最低。因此,Viterbi 译码是一种极大似然译码。如果发送L 组信息比特,对于(n,k)的卷积码来说,可能发送的序列有2kL 个,计算机或译码器需存储这些序列并进行比较,以找到码距最小的那个序列。当传信率和信息组数L 较大时,使得译码器难以实现。VB 算法则对上述概率译码(又称最大似然解码)傲了简化,以至成为了一种实用化的概率算法。它并不是在网格图上一次比较所有可能的2kL 条路径(序列),而是接收一段,计算和比较一段,选择一段有最大似然可能的码段,从而达到整个码序列是一个有最大似然值的序列。

通常把可能的译码序列与接收序列之间的距离称为量度。Viterbi 译码分为硬判决Viterbi 译码和软判决Viterbi 译码,他们之间惟一不同之处在于支路量度的计算方法。硬判决Viterbi 译码以序列之间的汉明距离作为量度,适用于二进制对称信道(BSC);而软判决Viterbi 译码则是将信道输出的信号进行Q(>2)电平量化,然后再进行Viterbi 译码,这样充分利用了信道输出信号的信息,提高了译码的可靠性,是一种适用于离散无记忆信道(DMC)的译码方法。如图3-7和图3-8所示,以(2,1,3)卷积码说明维特比译码原理。

从图3-7中可以看出,序列m 是发送方卷积编码器的输入序列,即为通信系统要传输的数字信号,码字U 为序列m 按相应参数卷积编码后得到的码字,也是信道中传输的信号,接收码字Z 是U 加上信道噪声后在接收方接收到的码字序列。网格图的每个时间间隔内,标

t1

t2

t 3

t 4

t 5

t 6

输入数据序列 1 1 0 11 01 01 01 00 1 1 发送码字 接收序列

01

01

10

01

Z

U m 11 状态

图3-7 (2,1,3)Viterbi 译码器的网格图

注的是各个分支上接收码元Z 和编码器网格图相应各个分支上分支字之间的汉明距离即分支路径距离(Branch Metric)。Viterbi 译码算法正是利用了编码网格图的特殊结构,计算网格图上在时刻ti 到达各个状态的路径和接收序列之间的相似度(Measureof Similarity),即上面标注的分支路径距离,经过“加一比一选”操作,去除不可能成为最大似然选择对象的网格图上的路径。即如果两条路径到达同一状态,则选择具有最小路径距离的路径,这条路径被称为幸存路径(Surviving Path)。对所有的状态进行这样的路径操作,译码器不断在网格图上深入,根据最后得到的幸存路径实现最终判决。由于较早的抛弃了不可能的路径,从而降低了译码器的复杂性。由上述可见,译码器的运行是前向的、无反馈的。他接收一段,计算一段,选择一段最可能的码段(分支),从而达到整个码序列是一个有最大似然函数的序列。

由图3-7给出了前6个时刻各个分支路径距离,得在码的第6时刻的一条幸存路径,如图3-8所示。由此看到译码器输出是Z' =1101010001,即可变换成序列(11011),恢复了发端原始信息。比较Z'和Z 序列,可以看到在译码过程中已纠正了在码序列第4位上的差错。

四、 卷积码的仿真及性能分析

4.1 SIMULINK 仿真模块

通过MATLAB 下的SIMULINK 仿真,首先建立卷积的仿真模块并组合起来如图4-1所示

a

b

c

d

t1

t2

t3

t4 t5 t6

图3-8 第六时刻幸存路径

图4-1 卷积码的编译码模块图

如图4-1所示,信源由Bernoulli Binary Generator(贝努利二进制序列产生器)产生一个0,1等概序列,经过卷积码编码器对输入信号进行卷积编码,并用BPSK调制方式调制信号。加入高斯白噪声做为信道噪声后在经过BPSK接调器后送入Viterbi Decoder (Viterbi译码器)进行硬判决译码。最后经过Error Rate Calculation(误码统计)后由Display(显示)输出。然后通过Selector(数据选通器)将结果输出到To workspace (工作区间)。

4.2卷积码的参数对误码率的影响

4.2.1码率对误码性能的影响

下面图4-9是通过改变卷积码的码率为1/2和1/3而得到的二条对比曲线。上面的一条曲线是码率为1/2,下面的是码率为1/3。卷积码的码率R = k/ n,他是卷积码的一个重要参数,当改变卷积码的码率时,系统的误码性能也将随之发生变化。从图4-9中的误比特率曲线可以看出,当码率一定时,随着信道噪声的逐渐减小,系统的误比特率也逐渐减小,当改变系统码率时,随着卷积码码率的逐渐提高,系统的误比特率也呈现出增大的趋势,也就是说码率越低,系统的误比特率就越小,误码性能就越好。

分析不同码率对卷积码误码性能的影响时用到的程序如下:

x=0:5; %x表示信噪比

y=x; %y表示信号的误比特率

hold off; %准备一个空白图形

for i=1:length(x) %重复运行convh.mdl,检验不同条件下硬判决译码的性能 SNR=x(i); %信道的信噪比依次取x中的元素

sim('yima'); %运行仿真程序,得到的误比特率保存在工作区变量BitErrorRate中 y(i)=mean(BitErrorRate); %计算BitErrorRate的均值作为本次仿真的误比特率end

semilogy(x,y); %绘制x和y的关系曲线图,纵坐标采用对数坐标

hold on; %保持已经绘制的图形

%修改SIMULINK模块参数,重复运行,检验不同码率对硬判决译码的性能

for i=1:length(x)

SNR=x(i);

sim('yima');

y(i)=mean(BitErrorRate);

end

semilogy(x,y);

4.2.2约束长度对误码性能的影响

如下图4-10,对于码率一定的卷积码,当约束长度N 发生变化时,系统的误码性能也会随之发生变化, 我们以码率R = 1/ 2的(2 ,1 ,3)和(2,1,7)卷积码为例展开分析。上面的曲线是(2,1,3)卷积码的误码性能曲线。下面的曲线是(2,1,7)卷积码的误码性能曲线。从图4-4中的误比特率曲线可以清楚地看到,随着约束长度的逐渐增加,系统的误比特率明显降低,所以说当码率一定时,增加约束长度可以降低系统的误比特率,但是随着约束长度的增加,译码设备的复杂性也会随之增加,所以对于码率为1/ 2 的卷积码,我们在选取约束长度时一般为3~9 。

图4-10 不同约束长度对卷积码误码性能的影响

分析不同约束长度对卷积码误码性能影响用到的程序如下:

x=0:5; %x表示信噪比

y=x; %y表示信号的误比特率

hold off; %准备一个空白图形

for i=1:length(x) %重复运行convh.mdl,检验不同条件下硬判决译码的性能 SNR=x(i); %信道的信噪比依次取x中的元素

sim('yima'); %运行仿真程序,得到的误比特率保存在工作区变量BitErrorRate中 y(i)=mean(BitErrorRate); %计算BitErrorRate的均值作为本次仿真的误比特率end

semilogy(x,y); %绘制x和y的关系曲线图,纵坐标采用对数坐标

hold on; %保持已经绘制的图形

%修改SIMULINK模块参数,重复运行,检验不同约束长度对硬判决译码的性能for i=1:length(x)

SNR=x(i);

sim('yima');

y(i)=mean(BitErrorRate);

end

semilogy(x,y);

4.2.3回溯长度对卷积码性能的影响

下面将以(2,1,7)卷积码来建立模块仿真。将译码模块中的Traceback depth分别设置为20,35,45并在一个图中画出这三种方式下的误码性能曲线得到下图4-8。从上到下的三条曲线分别是Traceback depth为20,35,45。可以看出:回溯长度是在Viterbi 译码过程中一个很重要的参数,他决定了译码延迟,随着他的不断变化,误码性能也随误比特率曲线可以清楚地看到,当回溯长度一定时,随着信道噪声的逐渐减小,系统的误比特率逐渐降低;当回溯长度逐渐增加,系统的误比特率随之逐渐降低,但是当回溯程度τ增加到τ≥5 N 时( N 为编码的约束长度) ,误比特率数值趋于稳定,因此,在确定回溯长度时既要考虑到随着τ的增加误比特率随之降低的趋势,也要考虑到译码延迟会变大,在选取回溯长度时,通常取τ= 5 N。

图4-8 不同回溯长度对误码性能的影响

分析不同回溯长度对卷积码误码性能的影响时用到的程序如下:

x=-10:5; %x表示信噪比

y=x; %y表示信号的误比特率

hold off; %准备一个空白图形

for i=1:length(x) %重复运行convh.mdl,检验不同条件下硬判决译码的性能 SNR=x(i); %信道的信噪比依次取x中的元素

sim('yima'); %运行仿真程序,得到的误比特率保存在工作区变量BitErrorRate中 y(i)=mean(BitErrorRate); %计算BitErrorRate的均值作为本次仿真的误比特率end

semilogy(x,y); %绘制x和y的关系曲线图,纵坐标采用对数坐标

hold on; %保持已经绘制的图形

%修改SIMULINK模块参数,重复运行,检验不同回溯长度对硬判决译码的性能

for i=1:length(x)

SNR=x(i);

sim('yima');

y(i)=mean(BitErrorRate);

end

semilogy(x,y);

hold on;

for i=1:length(x)

SNR=x(i);

sim('yima');

y(i)=mean(BitErrorRate);

end

semilogy(x,y);

4.3仿真分析

(1)在利用MATLAB仿真分析时,遇到以下问题:

对SIMULINK整体模块仿真时报告模块出错;

(2)解决办法:

对于问题,需要根据要求修改仿真模块的参数即可;

总结

通过这次的课程设计,我受益良多。关于Viterbi译码,原理上是明白的了,但是具体实现还是有相当的难度,理清思路花的时间比编写程序花的时间多很多。在写的过程中老师对我们的帮助很多,在细节上偶尔也会钻牛角尖,通过本次课程设计自己亲手实践,对卷积码的编码及译码有了更深的认识。同时对一些常用软件操作的更加的熟悉。总之做完整个课程设计,获益良多。在课程设计的过程中,我对于程序的仿真有很多的不明白地方。但是,在老师和同学的帮助下,我认真学习,努力的做到最好。在过程中,我渐渐地学会了很多程序仿真的内容。终于,在最后的几天,我成功地仿真出我想要的程序内容。总的来说,我们无论遇到什么问题都不要放弃,而要努力认真地去对待它,从而解决它。

参考文献:

[1]田耘.《无线通信FPGA设计》.电子工业出版社.2008

[2]樊昌信.《通信原理》.国防工业出版社.2009

[3]苏金明.《MATLAB实用教程》.电子工业出版社.2005

[4]周炯盘.《通信原理》(第3版).北京邮电出版社

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所

卷积码的编解码Matlab仿真

卷积码的编解码Matlab仿真摘要 卷积码是一种性能优越的信道编码。它的编码器和译码器都比较容易实现,同时它具有较强的纠错能力D随着纠错编码理论研究的不断深入,卷积码的实际应用越来越广泛。本文简明地介绍了卷积码的编码原理和译码原理o并在SIMULINK模块设计中,完成了对卷积码的编码和译码以及误比特统计整个过程的模块仿真。最后,通过在仿真过程中分别改变卷积码的重要参数来加深理解卷积码的这些参数对卷积码的误码性能的影响。经过仿真和实测,并对测试结果作了分析。得出了以下三个结论z (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.An d it has a strong ability to correct e盯ors. As correcting coding theory has a long development,the practice of convolution code is more and more extensive.In由1S由esis,the principle of convolution coding and decoding is introduced simply白rstly. Then由e whole simulation module process of encoding,decoding and the Error Rate Calculation is completed in由is design. Finally,in order to understand 由eir performances of error rate,many changes in parameters of convolution code are calculated in the simulation process.Af ter simulation and me皿UTe,an analysis of test results is presented.Th e following由ree conclusions are draw: (l)Wh en the rate of convolution Code ch皿ges,HER performance of the systemwill change. (2) For a certain rate of convolution code,when由ere is a change in the constraint length of N,BER perfonnance of由e system will change. (3) Re位ospec咀ve length will affect BE R. Key words: convolution code; rate; cons缸aint leng由; retrospective length;

卷积码编码器的设计 (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)],称为码的生成多项式矩阵。由生成 元构成的半无限矩阵。

卷积码的设计与实现

湖南文理学院课程设计报告 课程名称:通信系统课程设计 院部:电气与信息工程学院 专业班级: 学生姓名: 指导教师: 完成时间: 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中仿真验证,译码结果正确,得到编码前的原始码元,速度显著提高,译码器复杂程度明显降低。并在实际的软件无线电通信系统中信道编解码部分得到应用,性能优良。 关键词:卷积码;误码性能;原理

Matlab中卷积码译码器的误码率分析

长沙理工大学 《通信原理》课程设计报告 郭林 学院计算机与通信工程专业通信工程 班级540802 学号11 学生姓名郭林指导教师龙敏 课程成绩完成日期2008年1月11日

基于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所

实验九 (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程序

卷积编码程序: function [output, len_tal] = cnv_encd(secrettext, encodetext) g = [0 0 1 0 0 1 0 0; 0 0 0 0 0 0 0 1; 1 0 0 0 0 0 0 1; 0 1 0 0 1 1 0 1]; k0 = 1; % 读入文本文件并计算文件长度 frr = fopen(secrettext, 'r'); [msg, len] = fread(frr, 'ubit1'); msg = msg'; % check to see if extra zero padding is necessary if rem(length(msg), k0) > 0 msg = [msg, zeros(size(1:k0-rem(length(msg),k0)))]; end n = length(msg)/k0; % 把输入比特按k0分组,n为所得的组数。 % check the size of matrix g if rem(size(g, 2), k0) > 0 error('Error, g is not of the right size.'); end % determine L and n0 L = size(g, 2)/k0; n0 = size(g, 1); % add extra zeros,以保证编码器是从全0开始,并回到全0状态。 u = [zeros(size(1:(L-1)*k0)), msg, zeros(size(1:(L-1)*k0))]; % generate uu, a matrix whose columns are the contents of conv. encoder at % various clock cycles. u1 = u(L*k0: -1 :1); for i = 1:n+L-2 u1 = [u1, u((i+L)*k0:-1:i*k0+1)]; end uu = reshape(u1, L*k0, n+L-1); % determine the output output = reshape(rem(g*uu, 2), 1, n0*(L+n-1)); len_tal = n0*(L + n - 1);

基于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

毕业设计61基于System View的卷积码译码器的设计

基于System View的卷积码译码器的设计 摘要本课程设计在SystemView 平台上设计了卷积码译码器,SystemView系统中提供了专门的卷积码编码和译码图符,使用户能快速地建立基于卷积码的仿真系统,本课程设计对(2,1,6)的大数逻辑译码原理,以及维比特译码原理进行了解释,利用SystemView 进行了(2,1,3)卷积码译码器的仿真。系统运行以后将译码后得到的波形与原始的码元输入信号进行比较,系统参数经过修改以后能够正确地将编码后的信号译码为原始的码元。 关键字卷积码译码器,System View,(2,1,3)卷积码译码器 1 引言 卷积码的译码方法主要有两类,代数译码和概率译码。代数译码是根据卷积码的本身编码结构进行译码,译码时不考虑信道的统计特性。概率译码在计算时要考虑信道的统计特性。典型的算法如:最大似然译码、维比特译码、序列译码等。本课程设计利用SystemView 平台进行卷积码译码器的实现,SystemView系统中提供了专门的卷积码编码和译码图符,使用户能快速地建立基于卷积码的仿真系统,本课程设计对(2,1,6)的大数逻辑译码原理,以及维比特译码原理进行了解释,利用System View进行了(2,1,3)卷积码译码仿真,系统参数经过修改以后能够正确地将编码后的信号译码为原始的码元。 1.1 卷积码简介 卷积码也称为连环码是一种非分组码,分组码编码时,先将输入的信息序列分为长度为k的码元的字段,然后按照一定的编码规则,给含k个信息元的段附加上r长的监督元,于是生成n 长的码组。在编码时,各n长码组是分别编码的,各码组之间没有约束关系,因此译码时各码组之间是分别独立进行的。卷积码则不同于此,卷积编码属于信道编码,主要用来纠正码元的随机差错,它是以牺牲效率来换取可靠性的,利用增加监督位,进行检错和纠错。卷积码把k个信息位编成n位,k和n通常很小,特别适宜于串行形式传输,延时小,n个码元与当前段的k个信息位有关,而且与前N-1段的信息有关,编码过程相互关联的码元为Nn个,N或Nn称为卷积码的约束长度,常把卷

基于MATLAB的卷积码的分析与应用

基于MATLAB的卷积码的分析与应用

毕业设计(论文)任务书

基于MATLAB的卷积码的分析与应用 摘要 随着现代通信的发展,特别是在未来4G通信网络中,高速信息传输和高可靠性传输成为信息传输的两个主要方面,而可靠性尤其重要。因为信道状况的恶劣,信号不可避免会受到干扰而出错。为实现可靠性通信,主要有两种途径:一种是增加发送信号的功率,提高接收端的信号噪声比;另一种是采用编码的方法对信道差错进行控制。前者常常受条件限制,不是所有情况都能采用。因此差错控制编码得到了广泛应用。 介绍了多种信道编码方式,着重介绍了卷积码的编码方法和解码方式。介绍了MATLAB的使用方法、编程方法、语句、变量、函数、矩阵等。介绍了TD-SCDMA通信系统和该系统下的卷积码,搭建了系统通信模型。编写卷积码的编码和解码程序。用MATLAB仿真软件对TD-SCDMA系统的卷积码编解码进行仿真。对其纠正错码性能进行验证,并且对误码率进行仿真和分析。卷积码的编码解码方式有很多,重点仿真Viterbi算法。Viterbi算法就是利用卷积码编码器的格图来计算路径度量,选择从起始时刻到终止时刻的惟一幸存路径作为最大似然路径。沿着最大似然路径回溯到开始时刻,所走过的路径对应的编码输出就是最大似然译码输出序列。它是一种最大似然译码方法,当编码约束长度不大、或者误码率要求不是很高的情况下,Viterbi译码器设备比较简单,计算速度快,因而Viterbi译码器被广泛应用于各种领域。 关键词:卷积码;信道编码;TD-SCDMA;MATLAB

目录 毕业设计(论文)任务书 ............................................................................................I 摘要........................................................................................................................... II Abstract......................................................................................... 错误!未定义书签。第1章绪论 . (1) 1.1课题研究的背景和来源 (1) 1.2主要内容 (2) 第2章相关理论介绍 (3) 2.1信道编码 (3) 2.1.1 信道编码的分类 (3) 2.1.2 编码效率 (3) 2.2线性分组码 (3) 2.3循环码 (5) 2.4卷积码 (6) 2.4.1 卷积码简介 (7) 2.4.2 卷积码的编码 (7) 2.4.3 卷积码的解码 (13) 第3章MATLAB应用 (21) 3.1数和算术的表示方法 (21) 3.2向量与矩阵运算 (21) 3.2.1 通过语句和函数产生 (21) 3.2.2 矩阵操作 (22) 3.3矩阵的基本运算 (22) 3.3.1 矩阵乘法 (22) 3.3.2 矩阵除法 (23) 3.4MATLAB编程 (23) 3.4.1 关系运算 (23) 3.4.2 控制流 (25) 第4章卷积码的设计与仿真 (27) 4.1TD-SCDMA系统 (27) 4.1.1 系统简介 (27) 4.1.2 仿真通信系统模型 (27)

基于MATLAB对卷积码的性能分析

基于MATLAB对卷积码的性能分析 【摘要】本文对比了在加性高斯白噪声(AWGN)信道下经BPSK调制后的数据不编码与添加卷积编码后接收到的信道输出的误码性能,并通过对比对卷积码性能进行分析。采用MATLAB自编函数对[2,1,8]卷积码以及维特比译码进行仿真,且对其性能进行分析。由于卷积码有性能floor,编码增益随信噪比降低而体现不明显。仿真结果表明:当信噪比等于-1dB时,一个序列通过加性高斯白噪声信道后接收到的信道输出误比特率大于10-1,且该序列运用[2,1,8]卷积码编码,维特比译码(硬判决)后所得的序列误比特率升高。当信噪比为2dB时,一个序列通过加性高斯白噪声信道后接收到的信道输出误比特率约为4*10-2,且该序列运用[2,1,8]卷积码编码,维特比译码后所得的序列误比特率小于10-3,误码率远低于不编码时的误码率。因此卷积码适用于信道输出误码率比较低时候。 【关键词】维特比译码;卷积码;误比特率;马尔科夫性 1.引言 卷积码的编码器是由一个有k位输入、n位输出,且具有m位移位寄存器构成的有限状态的有记忆系统,通常称它为时序网络。[1]编码器的整体约束长度为v,是所有k个移位寄存器的长度之和。具有这样的编码器的卷积码称作[n,k,v]卷积码。对于一个(n,1,v)编码器,约束长度v等于存储级数m。卷积码是由k个信息比特编码成n(n>k)比特的码组,编码出的n比特码组值不仅与当前码字中的k个信息比特值有关,而且与其前面v个码组中的v*k个信息比特值有关。 卷积码有三种译码方式:序列译码、门限译码和概率译码。其中,概率译码根据最大似然译码原理在所有可能路径中求取与接收路径最相似的一条路径,具有最佳的纠错性能,[2]维特比译码是概率译码中极重要的一种方式。 序列译码和门限译码则不一定能找出与接收路径最相似的一条路径。不同于维特比译码,门限译码与序列译码所需的计算量是可变的且对于给定信息分组的最终判决仅仅基于(m+1)个接收分组,而不是基于整个接收序列。[3]与维特比译码所使用的对数似然量度不同,序列译码所使用的量度为Fano量度。在接收序列受扰严重的情况下,序列译码的计算量大于维特比译码所需的固定计算量,虽然序列译码要求的平均计算次数通常小于维特比译码。在采用并行处理的情况下,维特比译码的速度会优于序列译码。在同样码率和存储级数的条件下,门限译码的性能比维特比译码低大约3dB。 维特比译码的数据输出方式有硬判决及软判决两种方式,本文选取生成多项式为561,753的(2,1,8)卷积码对硬判决的性能进行分析,并依据维特比译码的原理以及卷积码的特性,对卷积码编码和维特比译码过程在加性高斯白噪声(AWGN)信道下进行仿真,并且根据仿真结果对维特比译码(硬判决)的结果

MATLAB OFDM卷积编码程序及代码

%bin22deci.m function y=bin22deci(x) %将二进制数转化为十进制数 t=size(x,2); y=(t-1:-1:0); y=2.^y; y=x*y'; %************************end of file*********************************** %comb.m %AWGN加噪声程序 function[iout,qout]=comb(idata,qdata,attn) %******************variables************************* %idata:输入I信道数据 %qdata:输入Q信道数据 %iout输出I信道数据 %qout输出Q信道数据 %attn:由信噪比导致的衰减系数 %****************************************************** iout=randn(1,length(idata)).*attn; qout=randn(1,length(qdata)).*attn; iout=iout+idata(1:length(idata)); qout=qout+qdata(1:length(qdata)); %************************end of file*********************************** %crdemapping.m %数据逆映射载波程序 function[iout,qout]=crdemapping(idata,qdata,fftlen,nd); %******************variables************************* %idata:输入I信道的数据 %qdata:输入Q信道的数据 %iout:输出I信道的数据 %qout:输出Q信道的数据 %fftlen:FFT的长度 %nd:OFDM符号数 %***************************************************** iout(1:26,:)=idata(2:27,:); qout(1:26,:)=qdata(2:27,:); iout(27:52,:)=idata(39:64,:); qout(27:52,:)=qdata(39:64,:); %********************end of file*************************** %crmapping.m

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

基于matlab的卷积码译码器的仿真设计

数字通信原理课程设计报告书

基于matlab的卷积码译码器的仿真设计 ) 1设计目的 卷积码是一种向前纠错控制编码。它将连续的信息比特序列映射为连续的编码器输出符号。这种映射是高度结构化的,使得卷积码的译码方法与分组码译码所采用的方法完全不同。可以验证的是在同样复杂度情况下,卷积码的编码增益要大于分组码的编码增益。对于某个特定的应用,采用分组编码还是采用卷积编码哪一种更好则取决于这一应用的具体情况和进行比较时可用的技术。 本课程设计便是通过Matlab设计一个硬判决维特比译码输出的完整电路,并进行误码率分析。 2设计的主要内容和要求 (1)要求能熟练地运用Matlab技术对卷积码译码器进行仿真。 (2)运用Matlab中Simulink单元来创建信源模块、信道模块、信宿模块、简易译码器模块等,并运用所有设计的模块来进行仿真。 3 设计原理 3.1卷积码 卷积码,又称连环码,是由伊莱亚斯(P.elias)于1955年提出来的一种非分组码。 卷积编码的最佳译码准则为:在给定已知编码结构、信道特性和接收序列的情况下,译码器将把与已经发送的序列最相似的序列作为传送的码字序列的估值。对于二进制对称信道,最相似传送序列就是在汉明距离上与接收序列最近的序列。 卷积码的译码方法有两大类:一类是大数逻辑译码,又称门限译码(硬判决,编者注);另一种是概率译码(软判决,编者注),概率译码又分为维特比译码和序列译码两种。门限译码方法是以分组码理论为基础的,其译码设备简单,速度快,但其误码性能要比概率译码法差。

当卷积码的约束长度不太大时,与序列译码相比,维特比译码器比较简单,计算速度快。维特比译码算法是1967年由Viterbi 提出,近年来有大的发展。目前在数字通信的前向纠错系统中用的较多,而且在卫星深空通信中应用更多,该算法在卫星通信中已被采用作为标准技术。 3.2 维特比译码原理 采用概率译码的基本思想是:把已接收序列与所有可能的发送序列做比较,选择其中码距最小的一个序列作为发送序列。如果发送L 组信息比特,那么对于(n,k )卷积码来说,可能发送的序列有2kL 个,计算机或译码器需存储这些序列并进行比较,以找到码距最小的那个序列。当传信率和信息组数L 较大时,使得译码器难以实现。维特比算法则对上述概率译码做了简化,以至成为了一种实用化的概率算法。它并不是在网格图上一次比较所有可能的2kL 条路径(序列),而是接收一段,计算和比较一段,选择一段最大似然可能的码段,从而达到整个码序列是一个最大似然值得序列。 下面以图3.2.1的(2,1,3)卷积码编码器所编出的码为例,来说明维特比解码的方法和运作过程。为了能说明解码过程,这里给出该码的状态图,如图3.2.2 示。维特比译码需要利用图来说明移码过程。根据卷积码画网格的方法,我们可以画出该码的网格图,如图3.2.3所示。该图设输入信息数目L=5,所以画L+N=8个时间单位,图中分别标以0至7。这里设编码器从a 状态开始运作。该网格图的每一条路径都对应着不同的输入信息序列。由于所有可能输入信息序列共有2kL 个,因而网格图中所有可能的路径也为2kL 条。这里节点a=00,b=01,c=10, b 图3.2.1 (2,1,3)卷积码编码器 图3.2.2 (2,1,3)卷积码状态图

图的矩阵表示及习题-答案汇总

177 图的矩阵表示 图是用三重组定义的,可以用图形表示。此外,还可以用矩阵表示。使用矩阵表示图,有利于用代数的方法研究图的性质,也有利于使用计算机对图进行处理。矩阵是研究图的重要工具之一。本节主要讨论无向图和有向图的邻接矩阵、有向图的可达性矩阵、无向图的连通矩阵、无向图和有向图的完全关联矩阵。 定义9.4.1 设 G =是一个简单图,V =?v 1,v 2,…,v n ? A (G )=(ij a ) n ×n 其中: 1j i v v v v a j i j i ij =???=无边或到有边到 i ,j =1,…,n 称A (G )为G 的邻接矩阵。简记为A 。 例如图9.22的邻接矩阵为: ?????? ? ? ?=011110101101 1010)(G A 又如图9.23(a)的邻接矩阵为: ?????? ? ? ?=0001101111000010 )(G A 由定义和以上两个例子容易看出邻接矩阵具有以下性质: ①邻接矩阵的元素全是0或1。这样的矩阵叫布尔矩阵。邻接矩阵是布尔矩阵。 ②无向图的邻接矩阵是对称阵,有向图的邻接矩阵不一定是对称阵。

178 ③邻接矩阵与结点在图中标定次序有关。例如图9.23(a)的邻接矩阵是A (G ),若将图9.23(a)中的接点v 1和v 2的标定次序调换,得到图9.23(b),图9.23(b)的邻接矩阵是A ′(G )。 ?????? ? ? ?='001010110001 1100)(G A 考察A (G )和A ′(G )发现,先将A (G )的第一行与第二行对调,再将第一列与第二列对调可 得到A ′(G )。称A ′(G )与A (G )是置换等价的。 一般地说,把n 阶方阵A 的某些行对调,再把相应的列做同样的对调,得到一个新的n 阶方阵A ′,则称A ′与A 是置换等价的。可以证明置换等价是n 阶布尔方阵集合上的等价关系。 虽然,对于同一个图,由于结点的标定次序不同,而得到不同的邻接矩阵,但是这些邻接矩阵是置换等价的。今后略去结点标定次序的任意性,取任意一个邻接矩阵表示该图。 ④对有向图来说,邻接矩阵A (G )的第i 行1的个数是v i 的出度, 第j 列1的个数是v j 的入度。 ⑤零图的邻接矩阵的元素全为零,叫做零矩阵。反过来,如果一个图的邻接矩阵是零矩阵,则此图一定是零图。 设G =为有向图,V =?v 1,v 2,…,v n ?,邻接矩阵为A =(a ij )n ×n 若a ij =1,由邻接矩阵的定义知,v i 到v j 有一条边,即v i 到v j 有一条长度为1的路;若a ij =0,则v i 到v j 无边,即v i 到v j 无长度为1的路。故a ij 表示从v i 到v j 长度为1的路的条数。 设A 2=AA ,A 2=(2 ij a )n ×n ,按照矩阵乘法的定义, nj in j i j i ij a a a a a a a +++= 22112 若a ik a kj =1,则a ik =1且a kj =1,v i 到v k 有边且v k 到v j 有边,从而v i 到v j 通过v k 有一条长 度为2的路;若 kj ik a a =0,则a ik =0或a kj =0,v i 到v k 无边或v k 到v j 无边,因而v i 到v j 通过 v k 无长度为2的路,k =1,…,n 。故2 ij a 表示从v i 到v j 长度为2的路的条数。 设A 3=AA 2,A 3=(3 ij a ) n ×n ,按照矩阵乘法的定义, 22222113nj in j i j i ij a a a a a a a +++= 若2kj ik a a ≠0,则ik a =1且2kj a ≠0,v i 到v k 有边且v k 到v j 有路,由于2kj a 是v k 到v j 长度为2 的路的条数,因而2kj ik a a 表示v i 到v j 通过v k 长度为3的路的条数;若2kj ik a a =0, ik a =0或2kj a =0, 则v i 到v k 无边或v k 到v j 无长度为2的路,所以v i 到v j 通过v k 无路,k =1,…,n 。故3 ij a 表示从v i 到v j 长度为3的路的条数。 …… 可以证明,这个结论对无向图也成立。因此有下列定理成立。 定理9.4.1 设A (G )是图G 的邻接矩阵,A (G )k =A (G )A (G )k-1,A (G )k 的第i 行,第j 列元素 k ij a 等于从v i 到v j 长度为k 的路的条数。其中k ii a 为v i 到自身长度为k 的回路数。 推论 设G =是n 阶简单有向图,A 是有向图G 的邻接矩阵,B k =A +A 2+…+A k ,

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