_2_1_7_维特比译码软件实现方法研究
- 格式:pdf
- 大小:904.43 KB
- 文档页数:3
卷积编码设计与仿真实验报告一、实验目的了解卷积码对信号的纠错性能,掌握维特比译码算法,分析卷积码不同码率下纠错能力的强弱,深刻理解CCSDS标准、信道编译码等相关概念和算法。
二、实验内容1、自己编码实现(2,1,3)卷积码的编译码,对比不同信噪比条件下,是否采用编码对于误码率性能的影响;2、基于MATLAB自带的vitdec函数实现对(2,1,7)卷积码以及2/3、3/4码率删除码的编译码,并对于不同码率抗噪声能力的强弱;3、构造BPSK调制、加性高斯白噪声的传输环境。
三、实验原理卷积码一般表示为(n,k,N)的形式,即将k个信息比特编码为n个比特的码组,N为编码约束长度,说明编码过程中相互约束的码段个数。
卷积码编码后的n个码元不仅与当前组的k个信息比特有关,还与前N-1个输入组的信息比特有关。
编码过程中相互关联的码元有N*n个。
R=k/n是编码效率。
编码效率和约束长度是衡量卷积码的两个重要参数。
典型的卷积码一般选n,k较小,但N值可取较大(>10),以获得简单而高性能的卷积码。
1、卷积码的编码原理卷积码的编码器一般比较简单,为一个具有k个输入端,n个输出端,m 级移位寄存器的有限状态有记忆系统。
下图所示为(2,1,7)卷积码的编码器。
图1 (2,1,7)卷积码编码器若输入序列为u=(u0u1u2u3……),则对应两个码字序列 C1=(ca0ca1ca2ca3……)和C2=(cb0cb1cb2cb3……),相应的编码方程可写为 P1=u*C1,P2=u*C2,P=(P1,P2)。
“*”符号表示卷积运算,P1,P2表示编码器的两个冲激响应,即编码器的输出可以由输入序列和编码器的两个冲击响应卷积而得到,故称为卷积码。
这里的冲激响应指:当输入为[1 0 0 0 0 … … ]序列时,所观察到的两个输出序列值。
由于上图N 值为7,故冲激响应至多可持续到第7位,可写为P1=[1 1 1 1 0 0 1],P2=[1 0 1 1 0 1 1]然后将两个输出端的码字序列合并为一个码字序列为C=(ca0cb0ca1cb1ca2cb2……)。
第4卷 第6期信息与电子工程Vo1.4,No.6 2006年12月INFORMATION AND ELECTRONIC ENGINEERING Dec.,2006 文章编号:1672-2892 (2006)06-0467-03(2,1,7)卷积编码及其维特比译码算法的软件实现刘少阳,邹永(国防科技大学电子科学与工程学院,湖南长沙 410073)摘要:提出了一种(2,1,7)卷积编码及其维特比(Viterbi)译码的软件实现方案,在Matlab环境中应用软件技术实现了(2,1,7)卷积码的Viterbi译码器功能。
测试证明,该Viterbi译码算法在低信噪比下的误码率仍能达到10-6。
关键词:卷积编码;维特比译码;Matlab中图分类号:TN957.51+3 文献标识码:ASoftware Implementation of (2,1,7) Convolutional Coding andIts Viterbi Decoding AlgorithmLIU Shao-yang,ZOU Yong(School of Electronic Science and Engineering,National University of Defense Technology,Changsha Hunan 410073,China)Abstract: A software scheme of (2,1,7) convolutional coding and Viterbi decoding technology is presented,which implements Viterbi decoder function of (2,1,7) convolutional code in the Matlab.According to the test, the BER(Bit Error Rate)of Viterbi algorithm can still reach 10-6in the lowSNR( Signal-to-Noise Ratio).Key words: convolutional coding;Viterbi decoding;Matlab1 引言卷积码是由Elias于1955年提出的。
“黑色经典”系列之《DSP嵌入式系统开发典型案例》第9章Viterbi译码及其实现华清远见<ARM开发培训班>培训教材在通信系统中,信息传输的可靠性和有效性是相当重要的。
信息在传输时是经由信道(Channel)传输。
当其在信道传输过程中会受到各种干扰,使得传输信息掺杂各种错误序列在其中。
因此,在通信系统中,良好的纠错码可以有效地应用在信息传输过程中,以降低信息的误码率。
信息在传输时,先由信源发出消息,如语言、图像、文字等,消息进入通信系统后,经由信源编码器编码成信息序列1。
编码过程中,为了使传输有效,还加上一些与传输信息无关的冗余度。
接着信息序列1经过信道编码器编码成信息序列2,序列2是将信息序列1加入了更多的冗余数据(Redundancy Data),以抵抗信道中的各种干扰。
数字信号一般不适合直接在信道上传输,所以调制器是将数字信号转变成模拟信号,使其在信道中传输。
而信道中难免会受到噪声干扰,使信道的输出序列不同于信道的输入序列。
解调器将信道的输出序列由原来的模拟信号转化成数字信号,既是接收序列3,信息序列中因噪声干扰会掺杂一些错误的码元在其中。
信道译码器利用序列中的冗余码元去纠正错误,并且根据信道译码器的结果,产生接近于信息序列1的接收序列1。
整个译码过程是根据信道编码的结果和噪声在信道中的特性所得到的。
理想的结果是所有的错误都被更正回来,即接收序列等同于发送序列。
9.1 Viterbi译码概述在众多的纠错码中,卷积码(Convolutional Code)是一种在实际中得到广泛应用、性能很好的纠错码。
卷积码是不同于分组码的另一种码,它虽然也是把k个信息比特编成n个比特,但k和n都很小,延时小,特别适宜于以串行形式传输信息。
与分组码不同,卷积码中编码后的n个码元不但与当前段的众个信息码元有关,而且与前面(N−1)段的信息有关,编码过程中相互关联的码元为Nn个。
在编码器复杂程度相同的情况下,卷积码的性能优于分组码。
无线通信系统维特比译码的FPGA仿真验证高志斌;黄联芬【摘要】在设计宽带无线通信系统的基带平台中,采用一种基于FPGA仿真工具Active HDL和目前广泛用于数字信号处理、数值分析等的实用软件Matlab相结合的方法,通过实现(2,1,7)卷积编码的全并行维特比软判决译码的FPGA设计仿真和算法验证,提出一种利用Matlab进行测试向量的生成和验证,以简化仿真测试序列的手工输入,提高FPGA设计进程和保证代码质量的方法.【期刊名称】《现代电子技术》【年(卷),期】2006(029)013【总页数】3页(P20-22)【关键词】FPGA;Active HDL;Matlab;维特比译码【作者】高志斌;黄联芬【作者单位】厦门大学,福建,厦门,361005;厦门大学,福建,厦门,361005【正文语种】中文【中图分类】TN402现代宽带无线通信系统设计,基于软件无线电思想,采用各种高速信号处理器件,比如数字信号处理器(DSP),或现场可编程逻辑门阵列(FPGA),把中频信号下变频,进行基带信号处理,可以给通信系统带来很大的灵活性、兼容性和可重构性。
基带信号处理采用FPGA实现时,有必要对各个算法模块,比如CRC编码校验、卷积编码、维特比译码、交织、解交织等,进行功能仿真,通常也称为前仿真,本文提出一种利用Active HDL和Matlab结合的快速设计仿真的方法,实现对宽带无线通信系统中一个(2,1,7)卷积编码的维特比软判决译码的前仿真,以验证该模块的正确性。
1 Active HDL与Matlab简介Aldec公司的Active HDL软件,属于FPGA前端设计工具。
他可以结合其他公司的各种EDA工具,从而提供从程序代码编辑输入、网表综合、布局布线、甚至程序编程下载到CPLD或FPGA芯片上的整个设计平台。
他简单方便的Design Flow Manager设计,可以引导设计者完成完整的FPGA设计项目。
基于维特比算法的卷积码译码实验摘要:本文主要简述了卷积码的编码过程,以及维特比算法译码的主要原理,是将接收到的编码序列与所有可能的发送序列作比较,选出汉明距离最小的一个序列作为译码输出。
本文根据维特比算法译码原理在matlab编写了程序仿真,对(2,1,7)卷积码数据进行加高斯白噪声,对比不同信噪比下的维特比译码误比特率。
关键词:卷积码;维特比;误比特率1引言卷积码是一种非分组码,它在1955年被伊利亚斯提出的卷积码在编码时是把k个比特的信息段编写成n个比特的码组,但是其监督码元不仅与当前编码比特信息有关,还与前面(N-1)个比特有关,N为卷积码的编码约束度,卷积码通常记为(n,k,N)[1]。
根据卷积码的特性,它更适合用于前向纠错,对于许多实际情况下它的效果好于分组码,并且运算简单,它尤其适合用在被高斯白噪声所干扰的传输信道[2]。
本文主要探索的是(2,1,7)卷积码的译码算法。
2卷积码的编码原理卷积码的编码器的主要由移位寄存器、模2加法器组成。
如图1[3]所示,为(2,1,7)卷积码的编码示意图,其卷积码的生成多项式的八进制表示为(133,171),八进制133转化为二进制为1011011,其中1比特的位置即代表那个移位寄存器的值作为模2加法器的输入,即生成多项式133描述的是图1中模2加法器输出Y,与此同理,生成多项式171描述的是模2加法器输出X。
至于生成多项式为什么是133和171,这其中涉及到编码的检错纠错能力问题、编码的复杂程度等因素,本文不深入探索这个。
很显然,共需要6个移位寄存器,和两个模2加法器来完成编码。
初始状态时,编码器的移位寄存器的值为0。
如待编码的信息序列为11,当第一个数据从最左端进去时,输出X的值为1,输出Y的值为1。
移位寄存器最右边的值不要了,然后把剩下的移位寄存器的值往右边移动一位,再把数据1放在移位寄存器的最左边。
然后再输入第二位待编码数据1,同理输出X值为0,输出Y的值为1。
(2,1,7)维特比译码软件实现方法研究
米朔灵
【期刊名称】《微计算机信息》
【年(卷),期】2010(026)036
【摘要】(2,1,7)卷积码作为差错控制手段在卫星通讯领域得到了广泛应用.本文研究并实现了一种软件方式的基于(2,1,7)卷积编码的维特比译码(Viterbi)解决方案,测试结果表明,该方案能够使得误码率为10-3量级的数据经译码处理后误码率降低到10-6,可以满足维特比译码应用需求.
【总页数】3页(P110-111,103)
【作者】米朔灵
【作者单位】100086,中国科学院研究生院
【正文语种】中文
【中图分类】TP311.1
【相关文献】
1.(2,1,7)维特比译码器的并行算法实现 [J], 强秀丽;刘党辉;秦桂枝
2.一种串行结构的2,1,7卷积码维特比译码器的FPGA实现 [J], 黄华柱;刘荣科;王闰昕
3.(2,1,7)维特比译码器结构优化设计与实现 [J], 董时华;乔庐峰;胡庆生;王志功;章丽
4.(2,1,7)卷积编码及其维特比译码算法的软件实现 [J], 刘少阳;邹永
5.一种卷积码维特比译码算法的软件实现 [J], 张海勇;刘文予;芦东昕;吴畏
因版权原因,仅展示原文概要,查看原文内容请购买。