34卷积码编码原理解析总结计划及建模仿真Word文档格式.docx
《34卷积码编码原理解析总结计划及建模仿真Word文档格式.docx》由会员分享,可在线阅读,更多相关《34卷积码编码原理解析总结计划及建模仿真Word文档格式.docx(19页珍藏版)》请在冰点文库上搜索。
![34卷积码编码原理解析总结计划及建模仿真Word文档格式.docx](https://file1.bingdoc.com/fileroot1/2023-5/1/32374a5f-cfec-44b8-986d-42a69a5a47a7/32374a5f-cfec-44b8-986d-42a69a5a47a71.gif)
四、详细设计步骤.................................................................................................................................................
-6-
卷积码的仿真..........................................................................................................................................
SIMULINK仿真模块的参数设置及意义.................................................................................
五、设计结果及解析...........................................................................................................................................
-11-
不相同信噪比对卷积码的影响..................................................................................................................
卷积码的对照........................................................................................................................................
-12-
六、总结...............................................................................................................................................................
-14-
七、领悟...............................................................................................................................................................
八、参照文件.......................................................................................................................................................
二、设计目的和意义
由于信道中信号不可以防范会碰到搅乱而出错。
为实现可靠性通信,主要有两种路子:
一种
是增加发送信号的功率,提高接收端的信号噪声比;
另一种是采用编码的方法对信道过失进行控制。
前者常常受条件限制,不是所有状况都能采用。
而编码理论可以解决这个问题,使得本钱降低,合用性增强。
随着现代通信的张开,卷积码以其高速性和可靠性在实质应用中越来越广泛。
1967年Viterbi译码算法的提出,使卷积码成为信道编码中最重要的编码方式之一。
在卷积码中,因
为Viterbi算法效率高,速度快,结构相对简单等特点,被广泛应用于各种数据传输系统。
特别是深空通信、卫星通信系统中。
所以采用Viterbi译码算法拥有特别现实的意义。
三、设计原理
本文在解析卷积码编译码器原理的基础上,经过MATLAB的SIMULINK模块对卷积编码、解码进行仿真。
经过仿真可以更清楚的认识到卷积码的编码,解码的各个环节,并对仿真结果进
行了解析。
得出卷积码Viterbi译码的误比特点能的解析,从而考据了卷积码的正确性。
卷积码根本看法
(n,k,N)表示把k个信息比特编成n个比特,N为编码拘束长度,说明编码过程中互相拘束的码段个数。
卷积码编码后的n个码元不但与当前组
的k个信息比特有关,而且与前N-1个输入组的信息比特有关。
编码过程中互相关系的码元有N×
n个。
R=k/n是卷积码的码率,码率和拘束长度是衡量卷积码的两个重要参数。
卷积码的编码描述方式有很多种:
冲激响应描述法、生成矩阵描述法、多项式乘积描述法、
状态图描述,树图描述,网格图描述等。
卷积码的纠错能力随着N的增加而增大,而过失率随
着N的增加而指数下降。
在编码器复杂性相同的状况下,卷积码的性能优于分组码。
分组码的
译码算法可以由其代数特点获得。
卷积码诚然可以采用合用于分组码的门限译码(即大数逻辑
译码),但性能不如维特比译码和序列译码。
卷积码的结构
图2-1
卷积码的编码器一般都比较简单。
图2-1是一般状况下的卷积码编码器框图。
它包括:
一个由N段组成的输入移位存放器,每段有k级,共Nk位存放器;
一组n个模2和相加器;
一
个由n级组成的输出移位存放器。
对应于每段k个比特的输入序列,输出n个比特。
由图可知,n个输出比特不但与当前k个比特的输入比特有关,而且与以前的〔N-1〕k个输入信息有关。
整个编码过程可以看作是输入信息序列与由移位存放器和模2加法器的连接方式所决定的另一个序列的卷积,卷积码由此得名。
输入序列
输出序列
图2-2
如图2-2是卷积码〔4,3,2〕卷积编码器的一个框图。
左边是信息的输入。
下面分别是系统位输出和校验位输出。
其中间是6个移位存放器和4个模2加法器。
简单的说就是信息位经过移位存放器和一个模2加法器产生一个系统位和校验位加在一起输出。
可以看出:
每输入一个比特,移位存放器中就向右搬动一个位子。
原来的第四个存放器就被移出。
可见卷积编码不但与现在的输入比特有关还与前面的1个比特有关。
在这里,其中拘束长度是N=2,k=3,n=4所以码率R=k/n=3/4。
卷积码的解析表示
除上述图解表示方法外,常常还用解析表示方法描述卷积码,即延时算子多项式。
在延时算子多项式表示中,编码器中的移位存放器与模2加法器的连接关系以及输入、输出序列都表示为延时算子D的多项式。
在一般状况下,输入序列可表示为:
M(D)m1m2Dm3D2...
〔3-1〕
变量D的幂的次数等于相对于时间起点的单位延时数目,时间起点平时选在第1个输出比
特,ml,m2,m3,m...为输入比特的二进制表示各模2项连接关系时。
假设某级存放器与某模0(表示无连接)。
(1或0)。
用D算子多项式表示移位存放器各级与2和相连,那么多项式中相应项的系数为1,否那么为
平时把表示移位存放器与模2和连接关系的多项式称为生成多项式,由于由它们可以用多项式相乘计算出输出序列。
卷积码的图解与解析表示方法各有特点。
用延时算子多项式表示卷积码编码器的生成多项式最为方便。
网格图对于解析卷积码的译码算法十分适用。
卷积码的译码
卷积码译码的方式
卷积码的译码方式有三种:
(1)1963年由梅西((Massey)提出的门限译码,这是一种基于码
代数结构的代数译码,近似于分组码中的大数逻辑译码;
(2)1963年由费诺(Fano)改良的序列
译码,这是基于码的树状图结构上的一种准最正确的概率译码;
(3)1967年由维特比提出的
Viterbi算法。
这是基于码的网(trellis)图基础上的一种最大似然译码算法,是一种最正确的
概率译码方法。
其中,代数译码,利用编码自己的代数结构进行译码,不考虑信道自己的统计特点。
该方法的硬件实现简单,但性能较差,其中拥有典型意义的是门限译码。
另一类是概率
译码,这种译码平时建立在最大似然准那么的基础上。
由于计算是用到了信道的统计特点.所以提高了译码性能,但这种性能的提高是以增加硬件的复杂度为代价的。
常用的概率译码方法有
维特比译码和序列译码。
维特比译码拥有最正确性能,但硬件实现复杂;
门限译码性能最差,但
硬件简单;
序列译码在性能和硬件方面介于维特比译码和门限译码之间。
卷积码的Viterbi译码
卷积码概率译码的根本思路是:
以接收码流为基础,逐个计算它与其他所有可能出现的、连续的网格图路径的距离,选出其中可能性最大的一条作为译码估值输出。
概率最大在大多数场合可讲解为距离最小,这种最小距离译码表达的正是最大似然的准那么。
卷积码的最大似然译
码与分组码的最大似然译码在原理上是相同的,但实现方法上略有不相同。
主要差异在于:
分组码是孤立地求解单个码组的相似度,而卷积码是求码字序列之间的相似度。
基于网格图找寻的译码是实现最大似然判决的重要方法和路子。
用格图描述时,由于路径的汇聚除掉了树状图中的节余度,译码过程中只需考虑整个路径会集中那些使似然函数最大的路径。
若是在某一点上发现某条路径已不可以能获得最大对数似然函数,就放弃这条路径,尔后在剩下的“幸存〞路径
中重新选择路径。
这样素来进行到最后第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<
<
L〕个码段后,在接收第〔T+1〕个码段的时候,它将比较
前T级的路径量度,尔后从中采用最小者,由此获得与最小量度对应的幸存路径,将此路径对应的T个码段判决输出。
T称为截短深度,T选的足够大时,那么对译码器输出的译码错误概率影响很小。
四、详细设计步骤
卷积码的仿真
图
4-1
卷积码的编码译码框图
如上图4-1的信号流程可以表示为先由BernoulliBinaryGenerator〔贝努利二进制序
列产生器〕产生一个0,1等概序列,经过ConvolutionalEncoder〔卷积编码器〕对输入的二进制序列进行卷积编码,并用BPSK调制方式调制信号。
参加信道噪声〔高斯白噪声〕后再经过BPSK解调制后送入ViterbiDecoder〔Viterbi译码器〕进行硬判决译码。
最后经过ErrorRateCalculation〔误码统计〕后由Display〔显示〕输出。
尔后经过Selector〔数据选通器〕将结果输出到Toworkspace〔工作区间〕。
4.1.1SIMULINK仿真模块的参数设置及意义
在建立如图4-1的仿真模块后,对各个模块分别一一进行设置后并运行仿真。
图4-2贝努利二进制序列产生器模块的设置框图
如上图4-2是贝努利二进制序列产生器模块的设置框图,其中参数有三项:
第一项
probabilityofazero取值为,表示0和1出现的概率相等。
Initialseed表示随机种
子数。
不相同的随机种子数将产生不相同的二进制序列,特定的随机种子数可以产生一个特定的二
进制序列。
Sampletime=0.0001表示抽样时间,也就是说输出序列中每个二进制符号的连续时间是0.0001秒。
Samplesperframe表示每帧的抽样数用来确定每帧的抽样点的数目。
Outputdatetype是用来确定帧的输出格式。
4-3
卷积编码器模块的设置框图
如上图4-3是卷积编码器模块的设置框图。
其中Trellisstructure〔Trellis
经过poly2trellis()函数把卷积码的拘束长度,生成多项式以及反应多项式变换成
结构的形式。
结构〕中Trellis
图4-4BPSK调制器模块的设置框图
如上图4-4是BPSK调制器模块的设置框图。
Phaseoffset(rad)〔相位偏移〕,这里设置
为0。
图4-5误比特统计模块的设置框图
如上图4-5是误比特统计模块的设置框图。
其中Receivedelay表示接收延缓,意思是在通信接收端口需要对接收到的信号进行解调,解码或解交错而带来必然的延缓,使得到达误码
统计模块接收端的信号滞后于发送端的信号。
为了补偿这种延缓这里设置为0。
Computation
delay表示计算延缓,在仿真过程中,有时间需要忽略最初的假设干个输入数据就经过计算延缓
来实现。
这里设置为0。
Computationmode表示计算模式,帧的计算模式(Entireframe),误码统计模块对发送端和接收端的所有输入数据进行统计。
outputdata是输出数据,这里设置为Port的意思是表示把统计数据从端口中输出。
workspace表示把统计数据输出到工作区。
图4-6数据选通器模块的设置框图
如上图4-6是数据选通器模块的设置框图。
Inputportwidth表示输入端口的个数为3。
图4-7卷积码译码器模块的设置框图
如上图4-7是卷积码译码器模块的设置框图。
Trellisstructure:
Trellis结构〔前面
已说明〕。
Decisiontype是指判决种类,有3种:
〔1〕Unquantized〔非量化〕〔2〕HardDecision〔硬判决〕,〔3〕SoftDecision〔软判决〕Tracebackdepth表示反应深度。
它的值会影响译码精度和解码延缓。
Operationmode是指操作模式。
在Truncated模式下,解码器在每帧数据结束的时候总能恢复到全0状态,它与卷积编码器的oneachframe复位方式相对应。
五、设计结果及解析
5.1不相同信噪比对卷积码的影响
以以下列图4-10,对于码率必然的卷积码,当信道信噪比发生变化时,系统的误码性能也会随之发生变化,我们以码率R=3/4的卷积码为例张开解析。
从图5-1中的误比特率曲线可以看到,当码率为3/4一准时,在SNR>
-2dB时,系统的误比特率迅速下降。
0误码率随信噪比的变化图
10
-1
-2
-3
-4
-8
-6
2
4
-10
图5-1不相同的信噪比卷积码误码性能的影响
解析不相同拘束长度对卷积码误码性能影响用到的程序以下:
clc;
x=-10:
5;
%x表示信噪比
y=x;
%y表示信号的误比特率
holdoff;
%准备一个空白图形
fori=1:
length(x)
SNR=x(i);
%信道的信噪比依次取x中的元素
sim('
convh'
);
%运行仿真程序,获得的误比特率保存在工作区变量BitErrorRate
中
y(i)=mean(BitErrorRate);
%计算BitErrorRate的均值作为本次仿真的误比特
率
end
semilogy(x,y);
%绘制x和y的关系曲线图,纵坐标采用对数坐标
gridon,title('
误码率随信噪比的变化图'
)
holdon%保持已经绘制的图
5.2卷积码的对照
如图5-2所示结果,在信噪比高出10dB此后,卷积编码传输与非卷积编码传输的误比特率根实情等,而在SNR<
10时,卷积编码的传输误比特率远小于非卷积编码传输的状况。
误码率对照图
0.7
没有卷积
卷积
1.6
1.5
1.4
1.3
1.2
1.1
051015
图5-2卷积码与非卷积码误码率对照图
卷积码与非卷积码误码率对照的程序以下:
SNR=1:
0.5:
15;
%信噪比取值;
单位为db\
Ns=10;
datalength=256;
%
error_bit_rata_code=0;
error_bit_rata_nocode=0;
每个数据符号中可用子载波
经卷积编码后解调出的数据的误比特率
未经卷积编码后解调出的数据的误比特率
1:
29
Signal=double(rand(1,datalength*Ns)>
0.5);
trel=poly2trellis(7,[155117]);
code=convenc(Signal,trel)