Matlab的卷积码译码器的仿真要点
卷积运算的matlab命令及其参数设置规则
卷积运算是数字信号处理和图像处理中常用的一种运算方式,它在图像滤波、特征提取等领域中发挥着重要作用。在Matlab中,卷积运算可以通过一些内置的函数实现,同时可以通过设置不同的参数来实现不同的卷积操作。本文将结合实际案例,介绍卷积运算在Matlab 中的常用命令及其参数设置规则。
一、卷积运算的基本概念
在数字信号处理和图像处理中,卷积运算是一种重要的数学运算。它通常用于图像滤波、特征提取等方面。卷积运算的基本原理是将一个函数与另一个函数的翻转及平移进行积分。
在离散情况下,卷积运算可以用离散的形式来表示如下:
\[y[n] = \sum_{k=-\infty}^{\infty} x[k] \cdot h[n-k]\]
其中,\(x[k]\)和\(h[n]\)分别代表输入信号和卷积核,\(y[n]\)代表卷积运算的输出结果。
二、Matlab中的卷积运算函数
在Matlab中,可以使用conv函数来进行一维和二维的卷积运算。conv函数的基本语法如下:
```
y = conv(x, h)
```
其中,x和h分别代表输入信号和卷积核,y代表卷积运算的输出结果。这里需要注意的是,x和h的长度必须是有限的,而且二者不能交换
位置。
在进行二维卷积运算时,可以使用conv2函数。conv2函数的基本语法如下:
```
y = conv2(x, h)
```
其中,x和h分别代表输入图像和卷积核,y代表二维卷积运算的输出结果。
三、卷积运算参数的设置规则
在进行卷积运算时,需要注意一些参数的设置规则,以确保卷积运算
的正确性和有效性。以下是一些常见的参数设置规则:
基于Matlab的卷积码译码器的设计与仿真
基于Matlab的卷积码译码器的设计与仿真作者:曹亚陆
来源:《硅谷》2011年第15期
摘要:主要解决对一个卷积码序列进行维特比(Viterbi)译码输出,并通过Matlab软件进行设计与仿真,并进行误码率分析。系统开发平台为Windows Vista Ultimate,程序设计与仿真均采用Matlab R2007a(7.4),最后仿真详单与理论分析一致。
关键词:卷积码译码器;Matlab;Simulink;设计与仿真
中图分类号:TP314 文献标识码:A 文章编号:1671-7597(2011)0810049-01
1 概述
设计主要解决对一个卷积码序列进行维特比(Viterbi)译码输出,并通过Matlab软件进行设计与仿真。卷积码的译码有两种方法——软判决和硬判决,此课程设计采用硬判决的维特比译码。
1.1 设计目的。卷积码是一种向前纠错控制编码。它将连续的信息比特序列映射为连续的编码器输出符号。这种映射是高度结构化的,使得卷积码的译码方法与分组码译码所采用的方法完全不同。可以验证的是在同样复杂度情况下,卷积码的编码增益要大于分组码的编码增益。对于某个特定的应用,采用分组编码还是采用卷积编码哪一种更好则取决于这一应用的具体情况和进行比较时可用的技术[1]。
本设计便是通过Matlab设计一个硬判决维特比译码输出的完整电路,并进行误码率分析。
1.2 设计的原理。卷积码,又称连环码,是由伊莱亚斯(P.elias)于1955年提出来的一种非分组码。
卷积编码的最佳译码准则为:在给定已知编码结构、信道特性和接收序列的情况下,译码器将把与已经发送的序列最相似的序列作为传送的码字序列的估值。对于二进制对称信道,最相似传送序列就是在汉明距离上与接收序列最近的序列。
卷积码的编解码Matlab仿真
在卷积码中,因为Viterbi算法效率高,速度快,结构相对筒单等特点,被广泛 应用于各种数据传输系统。特别是深空通信、卫星通信系统中。在现代信息处理系 统中,需要处理的信息量越来越大,实时性要求越来越高。为减少对主处理器各种 资源的占用,要求通信模块方面的大部分士作能独立完成。因此采用Viterbi译码算 法具有非常现实的意义o
(l)When 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
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 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.After simulation and me皿UTe, an analysis of test results is presented.The following由ree conclusions are draw:
matlab 循环递归系统卷积码
MATLAB循环递归系统卷积码
概述
MATLAB是一种强大的数学计算软件,广泛应用于工程、科学和金融等领域。在通信领域中,卷积码是一种重要的纠错码,能够有效地提高通信系统的可靠性和性能。本文将从MATLAB循环递归系统卷积码的原理、实现方法和应用进行详细介绍。
一、卷积码的原理
1.1 卷积码的基本概念
卷积码是一种线性的纠错码,它利用置换、加法和乘法等运算对信息进行编码。在通信系统中,卷积码通常采用编码器对输入数据进行编码,接收端则利用译码器对接收到的码字进行译码。卷积码具有良好的纠错性能和较高的复杂度,广泛应用于数字通信系统中。
1.2 卷积码的特点
卷积码是一种具有记忆性的码制,其编码过程是通过产生状态转移图来实现的。在编码器中,输入的信息比特会依次经过一系列的状态转移,最终输出编码比特。由于卷积码具有较长的约束长度和较复杂的状态转移图,因此其译码复杂度较高,但能够提供良好的纠错性能。
二、MATLAB实现卷积码的方法
2.1 卷积码编码器的实现
在MATLAB中,可以利用编程语言对卷积码进行编码器的实现。首先需要定义卷积码的生成多项式和约束长度,然后利用状态转移图的方
法来实现编码器。在MATLAB中,可以利用有限状态机的方法来实现卷积码的编码器,通过状态转移图的定义和输入比特的移位来生成编
码比特。
2.2 卷积码译码器的实现
在MATLAB中,可以利用Viterbi算法来实现卷积码的译码器。Viterbi算法是一种动态规划算法,通过计算每个状态的路径度量来实现译码过程,最终选择路径度量最小的状态作为最优路径。在MATLAB中,可以利用编程语言编写Viterbi算法的程序来实现卷积
matlab 卷积编解码函数
主题:Matlab中的卷积编解码函数
1. 概述
Matlab是功能强大的科学计算软件,广泛应用于工程、科学和数学领域。在通信系统设计和数字信号处理领域,卷积编解码函数是非常重要的工具。本文将介绍Matlab中的卷积编解码函数,包括函数的基本原理、参数设置、使用方法和实际应用。
2. 卷积编解码函数的基本原理
卷积编码是一种利用卷积操作来对数字信号进行编码的技术,主要用于在数字通信系统中实现信号的纠错和增强。在Matlab中,卷积编码函数通常包括convenc和vitenc两个主要函数。convenc函数用于对输入信号进行卷积编码,生成纠错编码后的输出信号;vitenc函数用于对卷积编码后的信号进行译码,还原原始信号。
3. 卷积编解码函数的参数设置
在Matlab中,卷积编解码函数有一系列参数需要设置,以满足不同的应用需求。其中包括生成多项式和约束长度等参数,用于指定卷积编码器的结构和特性;还有输入信号和输出信号的数据类型、结构和尺寸等参数。设置这些参数可以对卷积编解码函数进行灵活的控制和定制化。
4. 卷积编解码函数的使用方法
在使用Matlab中的卷积编解码函数时,通常需要按照一定的步骤进行。首先是设置参数和初始化编解码器,然后是输入原始信号并进行
编码,最后是对编码后的信号进行译码并输出结果。在使用过程中,
还需要注意对编解码过程中可能出现的错误进行处理和修正。
5. 实际应用举例
在实际工程和科研项目中,卷积编解码函数有着广泛的应用。比如在
数字通信系统中,卷积编码可以用于对传输的数字信号进行纠错编码,提高信号的可靠性和稳定性;在无线通信系统中,卷积编码可以用于
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
matlab 信道编码卷积码
【文章内容】
1. 介绍
在通信系统中,信道编码是一种非常重要的技术,它可以提高数据传
输的可靠性和抗干扰能力。其中,卷积码是一种常见的信道编码方式,而Matlab作为一种广泛使用的编程工具,也提供了丰富的信道编码
相关函数和工具箱。本文将以"matlab 信道编码卷积码"为主题,探讨其在通信领域中的应用和实现。
2. 卷积码基本概念
卷积码是一种纠错能力强、运算复杂度低的线性码。它通过将信息位
编码成多个输出位的形式,来增加冗余度以实现纠错能力。在Matlab 中,可以使用通信工具箱中的convenc函数来实现卷积码的编码过程。具体而言,可以使用poly2trellis函数来定义卷积码的生成多项式和约束长度,然后利用convenc函数来进行编码操作。
3. Matlab中的卷积码仿真
除了编码操作外,Matlab还提供了丰富的工具和函数来进行卷积码的仿真和性能分析。可以使用vitdec函数对接收到的码字进行解码操作,同时结合使m.ErrorRate函数来评估解码性能,得到误码率等重要性
能指标。通过Matlab的Simulink工具,还可以进行通信系统的建模和仿真,从而全面评估卷积码在整个通信系统中的性能表现。
4. 对主题的个人观点和理解
在我看来,掌握Matlab中的卷积码相关工具和函数,对于深入理解信道编码以及通信系统的整体性能至关重要。通过对卷积码编码和解码过程的模拟和仿真,可以更加直观地了解其在数据传输过程中的作用和价值。Matlab提供的丰富工具也为工程实践和科研探索提供了便利和支持。
5. 总结
基于matlab的卷积码译码器的仿真设计
数字通信原理课程设计报告书
基于matlab的卷积码译码器的仿真设计
)
1设计目的
卷积码是一种向前纠错控制编码。它将连续的信息比特序列映射为连续的编码器输出符号。这种映射是高度结构化的,使得卷积码的译码方法与分组码译码所采用的方法完全不同。可以验证的是在同样复杂度情况下,卷积码的编码增益要大于分组码的编码增益。对于某个特定的应用,采用分组编码还是采用卷积编码哪一种更好则取决于这一应用的具体情况和进行比较时可用的技术。
本课程设计便是通过Matlab设计一个硬判决维特比译码输出的完整电路,并进行误码率分析。
2设计的主要内容和要求
(1)要求能熟练地运用Matlab技术对卷积码译码器进行仿真。
(2)运用Matlab中Simulink单元来创建信源模块、信道模块、信宿模块、简易译码器模块等,并运用所有设计的模块来进行仿真。
3 设计原理
3.1卷积码
卷积码,又称连环码,是由伊莱亚斯(P.elias)于1955年提出来的一种非分组码。
卷积编码的最佳译码准则为:在给定已知编码结构、信道特性和接收序列的情况下,译码器将把与已经发送的序列最相似的序列作为传送的码字序列的估值。对于二进制对称信道,最相似传送序列就是在汉明距离上与接收序列最近的序列。
卷积码的译码方法有两大类:一类是大数逻辑译码,又称门限译码(硬判决,编者注);另一种是概率译码(软判决,编者注),概率译码又分为维特比译码和序列译码两种。门限译码方法是以分组码理论为基础的,其译码设备简单,速度快,但其误码性能要比概率译码法差。
当卷积码的约束长度不太大时,与序列译码相比,维特比译码器比较简单,计算速度快。维特比译码算法是1967年由Viterbi 提出,近年来有大的发展。目前在数字通信的前向纠错系统中用的较多,而且在卫星深空通信中应用更多,该算法在卫星通信中已被采用作为标准技术。
matlab(n,k,m)卷积码原理及仿真
matlab(n,k,m)卷积码原理及仿真
====================
卷积码是一种重要的纠错码,它在通信系统中扮演着重要的角色。特别是在高噪环境下,卷积码具有较好的性能表现,因此被广泛用于卫星通信、光纤通信等领域。本文将介绍Matlab中实现(n,k,m)卷积码的基本原理以及仿真过程。
一、卷积码原理
-------
卷积码是一种非线性编码技术,它通过将信息序列与多个冗余序列进行卷积运算,生成新的编码序列。卷积码具有较高的编码增益,同时具有较低的编码复杂度。在(n,k,m)卷积码中,n表示编码长度,k 表示信息比特数,m表示每个码字所包含的冗余比特数。
二、Matlab仿真环境
---------
Matlab是一种强大的数学计算和仿真软件,它提供了丰富的工具和函数库,可以方便地实现各种数字通信系统。在Matlab中,我们可以利用卷积码工具箱实现(n,k,m)卷积码的编码、译码和仿真。
三、仿真步骤
------
1.定义系统参数:包括信息比特数k、编码长度n、冗余比特数m 等。
2.生成随机信息序列:在Matlab中,可以使用rand函数生成随机比特序列作为信息序列。
3.编码:使用卷积码工具箱中的函数实现编码过程,生成冗余比特序列。
4.添加噪声:在通信系统中,噪声是不可避免的。为了模拟高噪环境,可以在编码后的数据上添加高斯噪声。
5.译码:使用卷积码工具箱中的函数实现译码过程,恢复原始信息序列。
6.仿真结果分析:通过比较译码结果和原始信息序列,可以评估卷积码的性能。
四、示例代码
------
对卷积码的编译码实现进行仿真编程和仿真实验
实验二:卷积码编译器
1120510217 吴宏晶
一、实验目的
对卷积码的编译码实现进行仿真编程和仿真实验
二、仿真软件
LabVIEW 2013版(前面版用于数据显示,后面板为程序源代码)
三、实验流程
1.卷积码的编码
以(3,1,2)卷积码为例,下图为LabVIEW仿真前面板
每一时刻都有一个信息比特进入第一个寄存器中,如图中D1。编码器利用D1和D2这两个寄存器来产生3比特的输出码字如图中所示C1、C2、C3。
编码的规则是C1=M1,C2=M1+D1+D2,C3=M1+D2。
定义D1和D2的状态为S1和S2,S1和S2共有四种组合状态。描述的在不同的输入比特状态下,编码器对应的输出和下一个时刻的状态变化。它们的转化关系如下图所示
2.卷积码的译码
卷积码的译码采用维特比译码法。
维特比算法的思路:在每个节点处,留下到达该节点处局部度量最大的路径,丢弃其余的局部路径,这条留下来的路径叫做幸存路径。如果所有幸存路径在某个支路处是重合的,就可以输出这个支路上数据的译码结果。为了避免延时,在当前局部路径中,找出局部累积量最大的,沿着这个路径回退N步会有一个分支,输出这个分支的数据。
(3,1,2)卷积码t0~t5六个时刻,第一次选取幸存路径发生在从t2到t3转移时刻。
四、实验源程序说明
1.卷积码的编码
程序源代码如下图所示
1.坐标1处是输入码元数组,它经过一个FOR循环依次进入循环中。
2.坐标2处是D1和D2两个移位寄存器,D1的结果在一次循环过后移入D2中。
3.坐标3处表示C1的值为每次直接进来的码元值。
卷积码编译码matlab仿真
一、概述
卷积码是一种常用的编码技术,用于提高数字通信系统的可靠性和抗
干扰能力。而编码的解码过程则需要运用编译码技术,以恢复原始数据。Matlab作为一种强大的工程仿真软件,可以用来对卷积码编译码进行仿真分析,帮助工程师们更好地理解和优化卷积码系统,提高通
信系统的性能。
二、卷积码原理
1. 卷积码的概念
卷积码是一种线性块码,它采用移位寄存器和模2加法器进行编码,
通过引入冗余比特来提高信号的可靠性。卷积码的编码过程可以简单
描述为:将输入信息数据与特定的生成多项式进行卷积运算,得到编
码后的输出数据。
2. 卷积码的特点
卷积码具有较高的编码效率和能够很好地控制码长、纠错能力等特性,因此在实际通信系统中得到广泛应用。
三、编译码原理
1. Viterbi算法
卷积码的译码过程通常采用Viterbi算法,它是一种最大似然译码算法,通过计算最小距离路径的方式来进行译码。Viterbi算法能够有效地对卷积码进行解码,提高译码的准确性。
2. 编译码的实现
在Matlab中,编译码的实现通常是通过编写一定的程序来模拟Viterbi算法的译码过程。通过仿真分析,可以评估不同的编码方案对通信系统性能的影响。
四、Matlab仿真环境
1. Matlab的特点
Matlab作为一种强大的仿真软件,具有丰富的工具和函数库,能够方便地进行数字通信系统设计与仿真分析。Matlab提供了直观的图形界面和强大的数据处理能力,可用于展示仿真结果和进行数据分析。
2. 使用Matlab进行卷积码编译码仿真
在Matlab环境中,可以编写程序来实现卷积码的编码和Viterbi算法的译码过程。通过调用Matlab中的工具函数和绘图函数,可以直观
Matlab的卷积码译码器的设计与仿真
Matlab的卷积码译码器的设计与仿真
540802 11
2008111
郭林《基于Matlab的卷积码译码器的设计与仿真》第1页共17页
Matlab
**
本课程设计主要解决对一个输入信号进行卷积码编码,以及维特比
(Viterbi)译码输出,并通过Matlab软件进行设计与仿真,并进行误码率分析。程序
设计与仿真均采用Matlab R2007a(7.4),最后仿真详单与理论分析一致。
卷积码编码器;卷积码译码器;Matlab;设计与仿真
1
本课程设计主要解决对一个信号进行信道编解码,采用卷积码编码,维特比
(Viterbi)译码输出,并通过Matlab软件进行设计与仿真。卷积码的译码有两种方法
——软判决和硬判决,此课程设计采用硬判决的维特比译码。 1.1
卷积码是一种向前纠错控制编码。它将连续的信息比特序列映射为连续的编码器输出符号。这种映射是高度结构化的,使得卷积码的译码方法与分组码译码
所采用的方法完全不同。可以验证的是在同样复杂度情况下,卷积码的编码增益
要大于分组码的编码增益。对于某个特定的应用,采用分组编码还是采用卷积编
码哪一种更好则取决于这一应用的具体情况和进行比较时可用的技术。
本课程设计便是通过Matlab,构造了一个卷积码编码后,通过产生加性高斯白噪声的信道,再进行译码的过程,译码后计算误码率,并进行分析。
郭林《基于Matlab的卷积码译码器的设计与仿真》第2页共17页 1.2 2
卷积码,又称连环码,是由伊莱亚斯(P.elias)于1955年提出来的一种非分组码。
卷积编码的最佳译码准则为:在给定已知编码结构、信道特性和接收序列的情况下,译码器将把与已经发送的序列最相似的序列作为传送的码字序列的估值。对于二进制对称信道,最相似传送序列就是在汉明距离上与接收序列最近的
matlab卷积的原理及应用
MATLAB卷积的原理及应用
概述
MATLAB(Matrix Laboratory)是一种常用的数学软件,可以用于进行数值计算、数据分析、算法开发等多种科学计算任务。其中,卷积是MATLAB中常用的数字信号处理技术,被广泛应用于图像处理、音频处理等领域。本文将介绍MATLAB中卷积的原理以及其在不同领域的应用。
原理
卷积操作是一种数学运算,用于将两个函数之间的关系转化为一个新的函数。在MATLAB中,卷积操作可以通过conv函数实现。其原理如下:
1.对于输入函数f(x)和g(x),首先需要将其离散化。对连续函数可以使
用采样或插值的方式进行离散化,得到f(n)和g(n)。
2.将g(n)进行翻转操作得到g(-n)。
3.将f(n)和g(-n)进行逐元素相乘,并求和得到卷积结果h(n)。
4.h(n)即为f(n)和g(n)的卷积结果。
MATLAB中的conv函数可以直接实现以上的卷积操作。下面通过一个简单的示例来演示如何使用MATLAB进行卷积运算。
应用
图像处理
卷积在图像处理中有广泛的应用。其中,图像模糊、边缘检测、图像锐化都是基于卷积的算法。以下是一些常见的图像处理应用:
•图像模糊:可以通过卷积一个平滑的核函数,将图像中的噪声进行模糊处理。
•边缘检测:可以通过卷积一个边缘检测的核函数,找出图像中的边缘信息。
•图像锐化:可以通过卷积一个锐化的核函数,增强图像中的细节。
音频处理
卷积在音频处理中也有着重要的应用。以下是一些常见的音频处理应用:
•混响效果:通过卷积一个混响的冲激响应函数,给音频信号增加混响效果。
卷积码的编解码Matlab仿真
卷积码的编解码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:
卷积码编译码的Matlab仿真及其性能研究
摘 要 : 出 了一 种 ( ,,) 积 编码 及 其 维特 比 ( tri 译码 的软 件 实现 方案 , Ma a 提 217 卷 Vi b ) e 在 d b环境 中应 用 软件 技 术 实现 了( ,, 卷 积 码 的 217)
V tri i b 译码 器功 能 。 测 试证 明 , V tri 码 算 法在 低 信 噪 比 下 的误 码 率 仍 能 达到 1 一 e 该 i b译 e 0。
础 上 的一 种 最 大 似 然 译 码 算 法 , 一 种 最 佳 的概 率 译 码 方 法 。 当编 码 约 束 度 不 太 大 ( 于 等 于 1) 者 误 码 率 要 求 不 太 高 ( 1 是 小 0或 约 0)
时 , 的设 备 比较 简 单 , 硬 件译 码计 算 速 度 快 。本 文 将 给 出 一 种 用 软 件 实 现 它 用 (,, 卷 积 码 的 V tri 码 算 法 的设 计 方 法 。 21 ) 7 i b译 e
无 论 从 理 论 上还 是 实 际 上 均 已证 明卷 积 码 的性 能 至少 不 比分 组 码 差 , 实 现 最 佳 和 准 最 佳译 码也 较 分 组 码 容 易 。 本 文所 要 讨 论 的 且 (,,) 积 码 是 目前 国 际 卫 星 通信 和其 它 通 信 系 统 中广 泛 使 用 的一 种 标 准 卷 积 码 , 是 国际 空 间 数 据 系 统 协 调 委 员 会 正 式 推 荐 作 217卷 也
卷积码的MATLAB仿真设计
卷积码的MATLAB仿真设计
摘要本论文介绍了卷积码的概念和编译码原理,介绍了卷积码的部分并利用Systemview软件将卷积码实现。仿真运行后参考纠错理论对波形图进行分析。
关键词卷积码;MATLAB
中图分类号TN911 文献标识码 A 文章编号1673-9671-(2012)071-0104-02
1 卷积码简介
1.1 卷积码的编码
卷积码编码器的一般形式如下图所示,包括一个由N段组成的输入移位寄存器,每段有K级,共N×k位寄存器;一组n个模2和相加器;一个n级输出移位寄存器。对应于每段K个比特的输入序列,输出n个比特。
图1 卷积码编码器的一般情况
上图为(n,k,N)卷积码编码器的一般结构。它由移入移位寄存器、模2加法器、输出移位寄存器3部分构成。输入移位寄存器共有N段,每段有k级,共有N*K位寄存器,信息序列由此不断输入。输入端的信息序列进入这种结构的输入移位寄存器即被自动划分为N段,每段k位,它使输出的n个比特的卷积码与N段每段有k为的信息位相关联。通常把N称为约束长度。由于该N段信息共有N*K个信息比特,所以也称N*K为约束长度;一组模2加法器共有n 个,它实现卷积码的编码算法;输出移位寄存器,共有n级,输入移位寄存器每移入k位,就输出n个比特的编码。所以编码效率为。
1.2 卷积码的译码
译码器的功能就是要根据某种法则以尽可能低的错误概率对编码输入信息作出估计。卷积码译码通常是按最大似然法则译码,对二进制对称信道来说,它就等效于最小汉明距离译码。在这种译码器中,把接收序列和所有可能发送序列进行比较,选择一个汉明距最小的序列判作发送序列。由于信息序列、编码序列有着一一对应的关系,而这种关系又唯一对应网格图的一条路径。因此译码就是根据接收序列R在网格图上全力搜索编码器在编码时所经过的路径,即寻找与R 有最小汉明距离的路径。最大似然译码在实际应用中遇到的问题是当2M很大时,计算量是很大的,这是困难所在。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
基于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.3所示。该图设输入信息数目L=5,所以画L+N=8个时间单位,图中分别标以0至7。这里设编码器从a 状态开始运作。该网格图的每一条路径都对应着不同的输入信息序列。由于所有可能输入信息序列共有2kL 个,因而网格图中所有可能的路径也为2kL 条。这里节点a=00,b=01,c=10,d=11。
设输入编码器的信息序列为(11011000),则由编码器对应输出的序列为Y=(1101010001011100),编码器的状态转移路线为abdcbdca 。若收到的序列R=(0101011001011100),对照网格图来说明维特比译码的方法。
由于该卷积码的约束长度为6位,因此先选择接收序列的前6位序列R 1=(010101)同到达第3时刻的可能的8个码序列(即8条路径)进行比较,并计算出码距。该例中到达第3时刻a 点的路径序列是(000000)和(111011),他们与R 1
b
a b
c d
节点号
1
2
3
4
5
6
7
图2.1 (2,1,3)卷积码编码器
图2.2 (2,1,3)卷积码状态图
图2.3 (2,1,3)卷积码网格图
的距离分别为3和4;到达第3时刻b 点的路径序列是(000011)和(111000),他们与R 1的距离分别为3和4;到达第3时刻c 点的路径序列是(001110)和(110101),他们与R 1的距离分别为4和1;到达第3时刻d 点的路径序列是(001101)和(110110),他们与R 1的距离分别为2和3。上述每个节点都保留码距较小的路径作为幸存路径,所以幸存路径码序列是(000000)、(000011)、(1101001)和(001101),如图2.4所示。用于上面类似的方法可以得到第4、5、6、7时刻的幸存路径。
需要指出的是,对于某个节点,如果比较两条路径与接收序列的累计码距值
相等时,则可以任意选者一条路径作为幸存路径,吃时不会影响最终的译码结果。在码的终了时刻a 状态,得到一条幸存路径。如果2.5所示。由此可看到译码器
a b c d
节点号
1
2
3
a b c d
节点号
1
2
3
4
5
6
7 8
图2.4 维特比译码第3时刻幸存路径
图2.5 第8时刻幸存路径