苏州科技大学天平学院电子与信息工程学院信道编码课程设计报告课设名称卷积码编译及译码仿真学生姓名圣鑫学号1430119232同组人周妍智专业班级通信1422指导教师潘欣欲一、实验名称基于MAATLAB的卷积码编码及译码仿真二、实验目的卷积码就是一种性能优越的信道编码。
它的编码器与译码器都比较容易实现,同时它具有较强的纠错能力。
随着纠错编码理论研究的不断深入,卷积码的实际应用越来越广泛。
本实验简明地介绍了卷积码的编码原理与Viterbi译码原理。
并在SIMULINK模块设计中,完成了对卷积码的编码与译码以及误比特统计整个过程的模块仿真。
最后,通过在仿真过程中分别改变卷积码的重要参数来加深理解卷积码的这些参数对卷积码的误码性能的影响。
经过仿真与实测,并对测试结果作了分析。
三、实验原理1、卷积码编码原理卷积码就是一种性能优越的信道编码,它的编码器与解码器都比较易于实现,同时还具有较强的纠错能力,这使得它的使用越来越广泛。
卷积码一般表示为(n,k,K)的形式,即将 k个信息比特编码为 n 个比特的码组,K 为编码约束长度,说明编码过程中相互约束的码段个数。
卷积码编码后的 n 各码元不经与当前组的 k 个信息比特有关,还与前 K-1 个输入组的信息比特有关。
编码过程中相互关联的码元有 K*n 个。
R=k/n 就是编码效率。
编码效率与约束长度就是衡量卷积码的两个重要参数。
典型的卷积码一般选 n,k 较小,K 值可取较大(>10),但以获得简单而高性能的卷积码。
卷积码的编码描述方式有很多种:冲激响应描述法、生成矩阵描述法、多项式乘积描述法、状态图描述,树图描述,网格图描述等。
2、卷积码Viterbi译码原理卷积码概率译码的基本思路就是:以接收码流为基础,逐个计算它与其她所有可能出现的、连续的网格图路径的距离,选出其中可能性最大的一条作为译码估值输出。
概率最大在大多数场合可解释为距离最小,这种最小距离译码体现的正就是最大似然的准则。
卷积码的最大似然译码与分组码的最大似然译码在原理上就是一样的,但实现方法上略有不同。
主要区别在于:分组码就是孤立地求解单个码组的相似度,而卷积码就是求码字序列之间的相似度。
基于网格图搜索的译码就是实现最大似然判决的重要方法与途径。
用格图描述时,由于路径的汇聚消除了树状图中的多余度,译码过程中只需考虑整个路径集合中那些使似然函数最大的路径。
如果在某一点上发现某条路径已不可能获得最大对数似然函数,就放弃这条路径,然后在剩下的“幸存”路径中重新选择路径。
这样一直进行到最后第 L 级(L 为发送序列的长度)。
由于这种方法较早地丢弃了那些不可能的路径,从而减轻了译码的工作量,Viterbi 译码正就是基于这种想法。
对于(n, k, K )卷积码,其网格图中共 2kL 种状态。
由网格图的前 K-1 条连续支路构成的路径互不相交,即最初 2k_1 条路径各不相同,当接收到第 K 条支路时,每条路径都有 2 条支路延伸到第 K 级上,而第 K 级上的每两条支路又都汇聚在一个节点上。
在Viterbi译码算法中,把汇聚在每个节点上的两条路径的对数似然函数累加值进行比较,然后把具有较大对数似然函数累加值的路径保存下来,而丢弃另一条路径,经挑选后第 K 级只留下2K条幸存路径。
选出的路径同它们的对数似然函数的累加值将一起被存储起来。
由于每个节点引出两条支路,因此以后各级中路径的延伸都增大一倍,但比较它们的似然函数累加值后,丢弃一半,结果留存下来的路径总数保持常数。
由此可见,上述译码过程中的基本操作就是,“加-比-选”,即每级求出对数似然函数的累加值,然后两两比较后作出选择。
有时会出现两条路径的对数似然函数累加值相等的情形,在这种情况下可以任意选择其中一条作为“幸存”路径。
卷积码的编码器从全零状态出发,最后又回到全零状态时所输出的码序列,称为结尾卷积码。
因此,当序列发送完毕后,要在网格图的终结处加上(K-1)个己知的信息作为结束信息。
在结束信息到来时,由于每一状态中只有与已知发送信息相符的那条支路被延伸,因而在每级比较后,幸存路径减少一半。
因此,在接收到(K-1)个己知信息后,在整个网格图中就只有唯一的一条幸存路径保留下来,这就就是译码所得的路径。
也就就是说,在己知接收到的序列的情况下,这条译码路径与发送序列就是最相似的。
3、MATLAB 仿真在本次实验中,主要就是利用SIMULINK仿真模块对卷积码的编码及viterbi 译码的全过程进行了设计,SIMULINK仿真框图如下:图1卷积码的SIMULINK仿真框图基本设计思路就是:先由Bernoulli Binary Generator(贝努利二进制序列产生器)产生一个0,1等概序列,经过Convolutional Encoder(卷积编码器)对输入的二进制序列进行卷积编码,并用BPSK调制方式调制信号。
加入信道噪声(高斯白噪声)后再经过BPSK解调制后送入Viterbi Decoder(Viterbi译码器)进行硬判决译码。
最后经过Error Rate Calculation(误码统计)后由Display(显示)输出。
然后通过Selector(数据选通器)将结果输出到To workspace(工作区间)。
该结果将由m文件中的程序调用以绘制不同信噪比及其她参数下系统误码率曲线。
四、实验结果1、不同的约束长度对卷积码误码率的影响对于码率一定的卷积码,当约束长度N 发生变化时,系统的误码性能也会随之发生变化, 本实验中以码率R = 1/2的(2,1,3)与(2,1,7)卷积码为例展开分析。
仿真所用所用程序如下:x=0:5;y=x;for i=1:length(x)SNR=x(i);sim('juanjima');y(i)=mean(BitErrorRate);endsemilogy(x,y,’r’);hold on;for i=1:length(x)SNR=x(i);sim('juanjima2');y(i)=mean(BitErrorRate);endsemilogy(x,y,’g’);xlabel('SNR')ylabel('BitErrorRate')仿真结果:图2约束长度对卷积码性能的影响结果分析:对于码率一定的卷积码,当约束长度N 发生变化时,系统的误码性能也会随之发生变化, 我们以码率R = 1/ 2的(2 ,1 ,3)与(2,1,7) 卷积码为例展开分析。
上面的曲线就是(2,1,3)卷积码的误码性能曲线。
下面的曲线就是(2,1,7)卷积码的误码性能曲线。
从图4-4中的误比特率曲线可以清楚地瞧到,随着约束长度的逐渐增加,系统的误比特率明显降低,所以说当码率一定时,增加约束长度可以降低系统的误比特率,但就是随着约束长度的增加,译码设备的复杂性也会随之增加,所以对于码率为1/ 2 的卷积码,我们在选取约束长度时一般为3~9 。
2、回溯长度对卷积码性能的影响以(2,1,7)卷积码为例。
将译码模块中的Traceback depth分别设置为20,35,50并在一个图中画出这三种方式下的误码性能曲线。
仿真所用程序如下:x= 0:5;y=x;for i=1:length(x)SNR=x(i);sim('juanjima');y(i)=mean(BitErrorRate);endsemilogy(x,y,’r’);hold on;for i=1:length(x)SNR=x(i);sim('juanjima2');y(i)=mean(BitErrorRate);endsemilogy(x,y,’g’);hold on;for i=1:length(x)SNR=x(i);sim('juanjima3');y(i)=mean(BitErrorRate); endsemilogy(x,y,’b’);xlabel('SNR')ylabel('BitErrorRate')仿真结果:图3 回溯长度对卷积码性能的影响从上到下的三条曲线分别就是Traceback depth为20,35,50。
可以瞧出:回溯长度在Viterbi 译码过程中一个很重要的参数,她决定了译码延迟,随着她的不断变化,误码性能也随误比特率曲线可以清楚地瞧到,当回溯长度一定时,随着信道噪声的逐渐提高,系统的误比特率逐渐降低;当回溯长度逐渐增加,系统的误比特率随之逐渐降低,当回溯程度τ增加一定程度时,误比特率数值趋于稳定。
3.不同码率对误比特率的影响以码率为1/2的(2,1,3)卷积码与码率为1/3的(3,1,3)码为例。
它们的trellis结构分别就是poly2trellis(3,[6 7])与poly2trellis(3,[1 6 5])。
仿真所用程序:x=0:5;y=x;for i=1:length(x)SNR=x(i);sim('juanjima');y(i)=mean(BitErrorRate); endsemilogy(x,y,’r’);hold on;for i=1:length(x)SNR=x(i);sim('juanjima2');y(i)=mean(BitErrorRate); endsemilogy(x,y,’b’);xlabel('SNR')ylabel('BitErrorRate'图4 码率对卷积码性能的影响结果分析:从图中可以瞧出,当码率一定时,随着信道信噪比的提高,系统误比特率逐渐降低。
当改变码率时,在信噪比一定的条件下,码率越高,误比特率越高。
5.不同信道对viterbi译码性能的影响在这个部分主要考虑的就是二进制对称信道与高斯白噪声信道对于viterbi 译码性能的影响。
采用的就是(2,1,7)卷积码。
仿真所用程序:x=0:5;y=x;for i=1:length(x)SNR=x(i);sim('juanjima');y(i)=mean(BitErrorRate); endsemilogy(x,y,’r’); semilogy(x,y,’b’);xlabel('SNR')ylabel('BitErrorRate')仿真结果:图5二进制对称信道下的仿真结果图6高斯白噪声信道下的仿真结果结果分析:高斯白噪声信道中,Viterbi译码随着信道的信噪比提升,误比特率越低,信道的可信度与纠错能力很高,而在二进制对称信道中,随着信道的误码率提升,viterbi译码的误比特率也会提升,当二进制对称信道的误码率高到一定程度时,Viterbi译码几乎会丧失纠错能力。