文档库 最新最全的文档下载
当前位置:文档库 › 卷积码的编解码Matlab仿真

卷积码的编解码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:

(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;

目录

论文总页数:21页

1 引言 ..................................................... 错误!未定义书签。

1.1 课题背景............................................ 错误!未定义书签。

1.2 国内外研究现状...................................... 错误!未定义书签。

1.3 本课题的意义........................................ 错误!未定义书签。

1.4 本课题的研究方法.................................... 错误!未定义书签。

2 卷积码的基本概念 (1)

2.1 信道 (1)

2.2 纠错编码 (1)

2.3 卷积码的基本概念 (1)

2.4 卷积码编码的概念 (1)

2.4.1 卷积编码 (1)

2.4.2 卷积码的树状图 (2)

2.4.3 卷积码的网格图 (3)

2.4.4 卷积码的解析表示 (4)

3 卷积码的译码 (5)

3.1 卷积码译码的概述 (5)

3.2 卷积码的最大似然译码 (5)

3.3 VITEBI 译码的关键步骤 (6)

3.3.1 输入与同步单元 (6)

3.3.2 支路量度计算 (6)

3.3.3 路径量度的存储与更新 (6)

3.3.4 信息序列的存储与更新 (7)

3.3.5 判决与输出单元 (7)

4 结论 (8)

4.1 卷积码的仿真 (8)

4.1.1 SIMULINK仿真模块的参数设置以及重要参数的意义 (8)

4.2 改变卷积码的参数仿真以及结论 (11)

4.2.1 不同回溯长度对卷积码性能的影响 (11)

4.2.2 不同码率对卷积码误码性能的响 (13)

4.2.3 不同约束长度对卷积码的误码性能影响 (14)

结论 (16)

参考文献 (17)

致谢.................................................... 错误!未定义书签。声明.................................................... 错误!未定义书签。

1 卷积码的基本概念

1.1 信道

信道是任何一个通信系统所必不可少的组成部分。由于信道中可能存在着各种干扰,通信设备中也可能存在种种造成错码的因素。随着数据处理、计算机通信、卫星通信以及高速数据通信网的飞速发展,用户对数据传输的可靠性提出了越来越高的要求。因此如何在保证数据传输速率的前提下,提高传输数据的可靠性,就成为一个迫切需要解决的问题。根据干扰对数据传输影响可分为随机干扰和突发干扰。其中,电子热噪声产生的干扰可以看作是随机的高斯白噪声,它对信道主要的影响是产生码元的随机错误[6]。

1.2 纠错编码

因为信道状况的恶劣,信号不可避免会受到干扰而出错。为实现可靠性通信,主要有两种途径:一种是增加发送信号的功率,提高接收端的信号噪声比;另一种是采用编码的方法对信道差错进行控制。前者常常受条件限制,不是所有情况都能采用。编码理论可以解决这个问题,使得成本降低,实用性增强。

1.3 卷积码的基本概念

卷积码是一种性能优越的信道编码。(n ,k ,N) 表示把k个信息比特编成n 个比特,N 为编码约束长度,说明编码过程中互相约束的码段个数。卷积码编码后的n 个码元不仅与当前组的k 个信息比特有关,而且与前N - 1 个输入组的信息比特有关[6]。编码过程中相互关联的码元有N ×n 个。R = k/ n 是卷积码的码率,码率和约束长度是衡量卷积码的两个重要参数[1]。

1.4 卷积码编码的概念

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

1.4.1 卷积编码

卷积码的编码器一般都比较简单。

输入图2-1 卷积码编码器框图

图1-1是一般情况下的卷积码编码器框图。它包括NK 级的输入移位器,一组n 个模2和加法器和n 级的输出移位寄存器 [6]。对应于每段k 比特的输入序列,输出n 个比特。由图可知,n 个输出比特不但与当前的k 个输入比特有关,而且与以前的(N-1)k 个输入信息比特有关。整个编码过程可以看成是输入信息序列与由移位寄存器和模2加法器的连接方式所决定的另一个序列的卷积,卷积码由此得名。本文采用的是冲击响应描述法编码思想。

输入输出

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

如图1-2是卷积码(2,1,3)卷积编码器的一个框图[6]。左边是信息的输入。下面分别是系统位输出和校验位输出。其中间是3个移位寄存器和一个模2加法器。简单的说就是信息位经过移位寄存器和一个模2加法器产生一个系统位和校验位加在一起输出。可以看出:每输入一个比特,移位寄存器中就向右移动一个位子。原来的第三个寄存器就被移出。可见卷积编码不只与现在的输入比特有关还与前面的3-1个比特有关。所以约束长度是3。在这里,其中K=1 ,n=2所以码率R=K/ n=1/2。

1.4.2 卷积码的树状图

对于图2-2所示的(2,1,3 )卷积码编码电路,其树状图如下图3-3所示。这里,分别用a,b,c 和d 表示寄存器的4种状态:00, 01, 10,和11,作为树状图中每条支路的节点。以全零状态a 为起点,当输入位信息位为0时,输出码元

c1c2= 00,寄存器保持状态a 不变,对应图中从起点出发的上支路;当输入位为1时,输出码元c1c2 =11,寄存器则转移到状态b,对应图中的下支路;然后再分别以这两条支路的终节点a 和b 作为处理下一位输入信息的起点,从而得到4条支路.以此类推,可以得到整个树状图。如下图2-3[6]

状态A=00B=01C=10

D=111信息起点a 0011a 0011a

b 00

11a b 00a c d 1001c 110001

101110

d 01

b 1001

c 1100a 00

11b 1001

d 1001

c 110010

d 01a b c d a b c d b a b c d 图2-3(2,1,3)树状图

1.4.3 卷积码的网格图

如下图2—4是(2,1,3)卷积编码的网格图[6]。

图2-4 (2,1,3)卷积编码的网格图

图2-5 卷积码状态图[6]

1.4.4 卷积码的解析表示

除上述三种图解表示方法外,常常还用解析表示方法描述卷积码,即延时算子多项式。在延时算子多项式表示中,编码器中的移位寄存器与模2加法器的连接关系以及输入、输出序列都表示为延时算子D 的多项式。在一般情况下,输入序列可表示为[6]:

...M(D)2321D m D m m ++= (2-1)

变量D 的幂的次数等于相对于时间起点的单位延时数目,时间起点通常选在第1个输出比特,ml,m2,m3,m...为输入比特的二进制表示(1或0)。用D 算子多项式表示移位寄存器各级与各模2项连接关系时。若某级寄存器与某模2和相连,则多项式中相应项的系数为1,否则为0(表示无连接)。以图3.2所示(2,1,3)卷积码为例,左、右两个模2和与寄存器各级的连接关系可表达为[6]:

222

11)(1)(D D D G D D G ++=+= (2-2)

通常把表示移位寄存器与模2和连接关系的多项式称为生成多项式,因为由它们可以用多项式相乘计算出输出序列。卷积码的图解与解析表示方法各有特点。用延时算子多项式表示卷积码编码器的生成多项式最为方便。网格图对于分析卷积码的译码算法十分有用。

2 卷积码的译码

2.1 卷积码译码的概述

卷积码的译码方式有三种[2]:(1)1963年由梅西((Massey)提出的门限译码,这是一种基于码代数结构的代数译码,类似于分组码中的大数逻辑译码;(2) 1963年由费诺(Fano)改进的序列译码,这是基于码的树状图结构上的一种准最佳的概率译码;(3) 1967年由维特比提出的Viterbi算法。这是基于码的网(trellis)图基础上的一种最大似然译码算法,是一种最佳的概率译码方法[8]。其中,代数译码,利用编码本身的代数结构进行译码,不考虑信道本身的统计特性。该方法的硬件实现简单,但性能较差,其中具有典型意义的是门限译码。另一类是概率译码,这种译码通常建立在最大似然准则的基础上。由于计算是用到了信道的统计特性.因而提高了译码性能,但这种性能的提高是以增加硬件的复杂度为代价的。常用的概率译码方法有维特比译码和序列译码。维特比译码具有最佳性能,但硬件实现复杂;门限译码性能最差,但硬件简单;序列译码在性能和硬件方面介于维特比译码和门限译码之间。

2.2 卷积码的最大似然译码

卷积码概率译码的基本思路是[3]:以接收码流为基础,逐个计算它与其他所有可能出现的、连续的网格图路径的距离,选出其中可能性最大的一条作为译码估值输出。概率最大在大多数场合可解释为距离最小,这种最小距离译码体现的正是最大似然的准则。卷积码的最大似然译码与分组码的最大似然译码在原理上是一样的,但实现方法上略有不同。[2]主要区别在于:分组码是孤立地求解单个码组的相似度,而卷积码是求码字序列之间的相似度。基于网格图搜索的译码是实现最大似然判决的重要方法和途径。用格图描述时,由于路径的汇聚消除了树状图中的多余度,译码过程中只需考虑整个路径集合中那些使似然函数最大的路径。如果在某一点上发现某条路径已不可能获得最大对数似然函数,就放弃这条路径,然后在剩下的“幸存”路径中重新选择路径。这样一直进行到最后第L级(L为发送序列的长度)。由于这种方法较早地丢弃了那些不可能的路径,从而减轻了译码的工作量,Viterbi译码正是基于这种想法。对于(n, k, K )卷积码,其网格图中共2kL种状态。由网格图的前K-1条连续支路构成的路径互不相交,即最初2k_1条路径各不相同,当接收到第K条支路时,每条路径都有2条支路延伸到第K级上,而第K级上的每两条支路又都汇聚在一个节点上。在Viterbi译码算法中,把汇聚在每个节点上的两条路径的对数似然函数累加值进行比较,然后把具有较大对数似然函数累加值的路径保存下来,而丢弃另一条路径,经挑选后第K 级只留下2K条幸存路径。选出的路径同它们的对数似然函数的累加值将一起被存储起来。由于每个节点引出两条支路,因此以后各级中路径的延伸都增大一倍,

但比较它们的似然函数累加值后,丢弃一半,结果留存下来的路径总数保持常数。由此可见,上述译码过程中的基本操作是,“加-比-选”,即每级求出对数似然函数的累加值,然后两两比较后作出选择。有时会出现两条路径的对数似然函数累加值相等的情形,在这种情况下可以任意选择其中一条作为“幸存”路径。

卷积码的编码器从全零状态出发,最后又回到全零状态时所输出的码序列,称为结尾卷积码。因此,当序列发送完毕后,要在网格图的终结处加上(K-1)个己知的信息作为结束信息。在结束信息到来时,由于每一状态中只有与已知发送信息相符的那条支路被延伸,因而在每级比较后,幸存路径减少一半。因此,在接收到(K-1)个己知信息后,在整个网格图中就只有唯一的一条幸存路径保留下来,这就是译码所得的路径。也就是说,在己知接收到的序列的情况下,这条译码路径和发送序列是最相似的。

由上述可见,Viterbi译码过程并不复杂,译码器的运行是前向的、无反馈的。它接收一段,计算一段,选择一段最可能的码段(分支),从而达到整个码序列是一个有最大似然函数的序列。传输序列很长时,判决需要的长延时和相当大的存储量是我们无法承受的。

因此,实际应用中采用截短Viterbi算法,即不需要接收到所有序列才进行判决,当译码器接收并处理完了固定的T (T <

2.3 VITEBI 译码的关键步骤

2.3.1 输入与同步单元

输入同步单元为译码器提供正确的支路同步,每次正确地输出属于一条支路的n个比特。显然,当支路定时失步时,译码过程中将会出现大量的差错,只要能检测出这种状态,即能有效地调整支路同步。一种方法是监视路径量度的增长率;另一种方法是检查网格图的路径合并性质。当译码器出现失步时,网格图中幸存路径合并的速率比同步时慢得多[2]。

2.3.2 支路量度计算

每当接收到一条新支路的一组n个量度值(硬判决时为n比特),支路量度计算单元就对网格图中每一条不同的支路确定一新的量度值。对R=k/n码来说,每次将有2个不同的量度值。在软判决Viterbi译码时,支路量度值不但随支路不同而异,而且还与接收信号的量化值有关[2]。

2.3.3 路径量度的存储与更新

在此单元中,支路量度与以前所存储的路径量度相加,然后对汇聚到同一节

点处的支路进行路径量度比较,选择一条路径量度最小的路径保留下来[2]。

2.3.4 信息序列的存储与更新

一种最佳的也是最常用的方法是基于最大似然译码。对于R=1/n卷积码而言,每接收一组新的支路信息,在各个状态的路径存储器中存入经“加一比一选”电路选出的一位假想信息比特,同时将最先存入路径存储器的一位比特输出给判决单元。因此,每接收到一条新支路,路径存储器就更新一次它所存储的假想信息序列[2]。

2.3.5 判决与输出单元

在R=1/n卷积码最佳译码时,应选择具有最小路径量度的假想信息序列中最早存入的一个比特做译码输出[2]。

3 结论

3.1 卷积码的仿真

本文通过MATLAB下的SIMULINK仿真。首先建立卷积码的仿真模块并组合起来。

图3-1卷积码的编码译码框图

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

3.1.1 SIMULINK仿真模块的参数设置以及重要参数的意义

在建立如图4-1的仿真模块后,对各个模块分别一一进行设置后并运行仿真。

图3-2贝努利二进制序列产生器模块的设置框图

如上图3-2是贝努利二进制序列产生器模块的设置框图,其中参数有三项:第一项probability of a zero取值为0.5,表示0和1出现的概率相等。Initial seed 表示随机种子数。不同的随机种子数将产生不同的二进制序列,特定的随机种子数可以产生一个特定的二进制序列。Sample time=0.0001表示抽样时间,也就是说输出序列中每个二进制符号的持续时间是0.0001秒。Samples per frame 表示每帧的抽样数用来确定每帧的抽样点的数目。Frame-based outputs 是用来确定帧的输出格式。

图3-3 BPSK调制器模块的设置框图

如上图3-3是BPSK调制器模块的设置框图中有二项,第一项是Phase offset(rad)(相位偏移),这里设置为0。第二项是Samples per symbol(输出信号采样数)这里设置为1。

图3-4卷积编码器模块的设置框图

如上图3-4是卷积编码器模块的设置框图。其中Trellis structure(Trellis结构)中通过poly2trellis()函数把卷积码的约束长度,生成多项式以及反馈多项式转换成Trellis结构的形式。如上面是(2,1,3)卷积码的参数设置。(3,[6,7])说明约束长度是3,生成多项式是(八进制)6和7,无反馈多项式。后面还要用到的(2,1,7)的参数是(7,[171,133])是约束长度是7,生成多项式是171和133。Reset是复位方式,这里设置为on each frame,它表示卷积码编码器在每帧数据开始之前自动对寄存器复位。

图3-5误比特统计模块的设置框图

如上图3-5是误比特统计模块的设置框图。其中Receive delay表示接收延迟,意思是在通信接收端口需要对接收到的信号进行解调,解码或解交织而带来一定的延迟,使得到达误码统计模块接收端的信号滞后于发送端的信号。为了补偿这种延迟这里设置为0。Computation delay表示计算延迟,在仿真过程中,有时间需要忽略最初的若干个输入数据就通过计算延迟来实现。这里设置为0。Computation mode表示计算模式,帧的计算模式(Entire frame),误码统计模块对发送端和接收端的所有输入数据进行统计。output data是输出数据,这里设置为

Port的意思是表示把统计数据从端口中输出。workspace表示把统计数据输出到工作区。

图3-6 数据选通器模块的设置框图

如上图3-6是数据选通器模块的设置框图。对应图4-1看Elements是指输出端口的个数为1。Input port width表示输入端口的个数为3。

图3-7卷积码译码器模块的设置框图

如上图3-7是卷积码译码器模块的设置框图。Trellis structure: Trellis结构(前面已说明)。Decision type是指判决类型,有3种:(1)Unquantized(非量化)(2)Hard Decision(硬判决),(3)Soft Decision(软判决)Traceback depth表示反馈深度。它的值会影响译码精度和解码延迟。Operation mode是指操作模式。在Truncated模式下,解码器在每帧数据结束的时候总能恢复到全0状态,它与卷积编码器的on each frame复位方式相对应。

3.2 改变卷积码的参数仿真以及结论

3.2.1 不同回溯长度对卷积码性能的影响

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

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

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

x=-10:5;

y=x;

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('yima1');

y(i)=mean(BitErrorRate);

end

semilogy(x,y);

hold on;

for i=1:length(x)

SNR=x(i);

sim('yima2');

y(i)=mean(BitErrorRate);

end

semilogy(x,y);

3.2.2 不同码率对卷积码误码性能的响

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

图3-9卷积码不同码率对误码性能的影响

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

x=0:5;

y=x;

for i=1:length(x)

SNR=x(i);

sim('yima1');

y(i)=mean(BitErrorRate);

end

semilogy(x,y);

hold on;

for i=1:length(x)

SNR=x(i);

sim('yima2');

y(i)=mean(BitErrorRate);

end

semilogy(x,y);

3.2.3 不同约束长度对卷积码的误码性能影响

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

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

x=0:5;

y=x;

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('yima1');

y(i)=mean(BitErrorRate);

end

semilogy(x,y);

通过上面从(1)回溯长度;(2)码率;(3)约束长度这三个卷积码的重要参数的变化后对译码性能的分析,我们得到在卷积码的编码,译码过程中有很多条件是不可能同时满足的。所以我们要根据具体情况来选择合适的参数。

结论

通过本次课题的研究,针对Viterbi算法在理论和实现两方面分别进行了较深的研究。理论方面,在深入了解了用于卷积码的Viterbi译码算法基本原理后,进一步将其拓展到SIMULINK模块仿真方面的应用,主要给出了基于Matlab的卷积编码和Viterbi算法应用过程。在实现方面,本文重点研究的是用SIMULINK 实现不同码率;不同约束长度;不同回溯长度下的卷积码的误码性能的对比研究.最后仿真得到对比图,达到了研究的预期目的。

经过自己的努力和曾老师的耐心指导,毕业设计顺利按时完成。它是对我们把本科四年所学的理论知识运用到实践中的一次系统的检验。从接到题目到设计结束的过程中经历了很多,总的来说可以概括为以下几点。

(1)设计中要用到的Simulink仿真软件是我第一次接触,所以刚接到题目时无从下手,后来通过上网和借助图书馆的书籍,学习这门新的软件,学习过程中遇到很多困难,但通过自己的努力和老师的帮助,最终掌握了仿真的基本方法。

(2)由于面临找工作的问题,和此次设计工作的时间安排上有一定的冲突。为了顺利完成设计工作,老师安排了每周的工作量和所要达到的目标,自己也制定了相应的时间表,以求更充分的利用时间。

(3)刚开始在设计的步骤和方法上比较混乱,后通过借阅各种资料和请教老师,有了明确的工作方向和清晰的设计步骤,使我能在更短的时间内很好的完成了本次毕业设计。

由于时间原因,本文的工作在很多方面未能更深入地研究下去。如对于Viterbi译码的软,硬判决的误码性能对比和应用还有必要进一步研究。

参考文献

[1]《信息论与编码》高等教育出版社仇佩亮编著

[2]《现代通信系统—使用MATLAB》西安交通大学出版社约翰.G.普罗克斯马苏德.萨勒赫编刘树棠译

[3]《SIMULINK通信仿真教程》国防工业出版社主编李贺冰副主编袁杰萍孔俊霞

[4]《MA TLAB通信仿真及应用实例详解》人民邮电出版社邓华等编著

[5]《MA TLAB基础与编程入门》西安电子科技大学出版社张威编

[6]《通信原理》国防工业出版社樊昌信吴成柯编

[7] 王新梅,肖国镇.《纠错码--原理与方法》修订版西安西安电子科技大学出版社 2001.

[8] Train Communication Network(TCN),IEC61375—1,1999

卷积码的编解码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;

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所

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程序

卷积编码程序: 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的卷积码的分析与应用

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

卷积码的编解码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: (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;

基于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)卷积码状态图

CA码生成原理及matlab程序实现

C A码生成原理及 m a t l a b程序实现 The Standardization Office was revised on the afternoon of December 13, 2020

作业:用Matlab写C/A码生成器程序,并画生成码的方波图。 C/A码生成原理 C/A 码是用 m 序列优选对组合形成的 Gold 码。Gold码是由两个长度相同而互相关极大值为最小的 m 序列逐位模2 相加所得到的码序列。它是由两个10 级反馈移位寄存器组合产生的,其产生原理如图1 所示。 图1 C/A码生成原理 发生器的抽头号为3和10,发生器的抽头号为2、3、6、8、9、10;发生器的第10位输出的数字即为码,而码是由的两个抽头的输出结果进行模2相加得到。 卫星的PRN码与延时的量是相关联的,对C/A码来说,每颗卫星都有特别的延时,如第1颗GPS卫星的G2 抽为2、6,第2颗为3、7,第3 颗为4、8,第4 颗

为5、9 等,如图2所示。通过G2 相位选择可以产生结构不同的伪随机码,从而可以实现不同卫星之间的码分多址技术与卫星识别。 图2 prn序号与G2抽头、时延对应关系

基于MATLAB的GPS信号实现 编写成“codegen”程序,输入[ca_used]=codegen(svnum),其中svnum为卫星号,ca_used为得到的C/A码序列。程序具体实现流程如下:在程序中定义一个数组,使得卫星号与G2的码片延时一一对应。 gs2=[5;6;7;8;17;18;139;140;141;251;252;254;255;256;257;258;469;470;471;472;473 ;474;509;512;513;514;515;516;859;860;861;862]; 定义两个 1×1 023 的数组 g1、g2 用来存放生成的Gold 码。定义一个全1 的 10 位数组,作为移位寄存器,相当于G1、G2 生成模块的初值均置为全“1”。按原理式 来生成两个 Gold 码序列。设定两个 Gold 码产生器的反馈抽头: save1=reg(3)*reg(10); % g1 码的反馈值; save2=reg(2)*reg(3)*reg(6)*reg(8)*reg(9)*reg(10);%g2 码的反馈值。 在移位寄存器数组reg 中逐位移动,将末端值reg(10)送入g1(g2),将反馈抽头的模2 值输出 save1、save2 送入寄存器首位reg(1)。g1 码这样重复运算1 023 次后即可生成。g2 码在此基础上要引入与卫星号相对应的码片延时 g2s(s),s 为输入的卫星号。以码片延时时间作为分界点,将其后半段数据前移,前半段数据后移,这样就得到 g2 码。将产生的 g1 和g2 码逐点相乘,反向,即得 C/A 码。

基于MATLAB的卷积码的分析与应用毕业设计

毕业设计 基于MATLAB的卷积码的分析与应用

东北大学本科毕业设计(论文)毕业设计(论文)任务书毕业设计(论文)任务书 毕业设计(论文)题目: 基于MATLAB的卷积码的分析与应用 设计(论文)的基本内容: (1)介绍纠错控制编码的相关理论,重点分析卷积码的相关编码和解码理论。 (2)在MATLAB中编写卷积码的编码和解码程序,模拟通信系统,针对TD-SCDMA系统中的卷积码进行仿真。 (3) 进行纠错译码验证,纠错比较及误码率相关因素分析。 毕业设计(论文)专题部分: 题目: 设计或论文专题的基本内容: 学生接受毕业设计(论文)题目日期 第2周 指导教师签字: 2010年3月8日

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

matlab卷积码程序

1、卷积码编码 function [output]=cnv_encd(input) %output=cnv_encd(g,k0,input) 卷积码编码函数 %g 生成矩阵 %k0 输入码长 %input 输入信源序列 %output 输出卷积编码序列 g=[1 1 1;1 0 1];编码矩阵 k0=1; input=[1 1 0 1]; if rem(length(input),k0)>0 input=[input,zeros(size(1:k0-rem(length(input),k0)))]; end n=length(input)/k0; if rem(size(g,2),k0)>0 error('Error,g is not of the right size.') end li=size(g,2)/k0; n0=size(g,1); u=[zeros(size(1:(li-1)*k0)),input,zeros(size(1:(li-1)*k0))]; u1=u(li*k0:-1:1); for i=1:n+li-2 u1=[u1,u((i+li)*k0:-1:i*k0+1)]; end uu=reshape(u1,li*k0,n+li-1); output=reshape(rem(g*uu,2),1,n0*(n+li-1)); 2、Viterbi译码程序 1) function y=bin2deci(x) l=length(x); y=(l-1:-1:0); y=2.^y; y=x*y'; 2) function y=deci2bin(x,l) y=zeros(1,l);

(完整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加法器合成的输出)

相关文档
相关文档 最新文档