文档介绍:
交织码的Matlab代码从广义上说,交织编码属于分组编码,但由于采用存储器实现交织,它同时又具有卷积编码的记忆特征。在发端,它将分组长度L的信息序列通过交织器重排,在收端通过解交织器恢复原序列,以求使信道中突发错误变为无记忆随机独立差错。交织编码是一种信道改造技术,它通过信号设计将一个原来属于突发差错的有记忆信道改造为基本上是独立差错的随机无记忆信道。交织编码作为克服衰落信道中突发性干扰的有效方法,通常和其它用于纠正无记忆独立差错的信道编码相结合构成级联码(见下文),广泛应用于当代移动通信。交织码通常表示为(M,N),分组长度L=MN,交织方式用M行N列的交织矩阵表示。一般,交织方式分为分组交织和卷积交织。分组交织的交织矩阵按列写入,按行读出;去交织矩阵按行写入按列读出。卷积交织的交织矩阵和去交织矩阵的写入与读出均按行进行。本次仿真采用(,)卷积交织编码。性能参数如下:交织矩阵:分组卷积交织前序号:[];卷积交织后序号重排:[];性能分析:任何长度小于等于M=的突发差错,经交织、去交织后成为独立差错。任何长度大于M=的突发差错,经交织、去交织后有可能变成短突发差错。特殊的,间隔为M=的独立差错,经交织、去交织后会变成长度为N=的突发差错。MATLAB源程序function[aa]=jiaozhi(bb,n)%jiaozhi.m卷积交织函数%n=分组长度%bb卷积交织前原分组序列%aa卷积交织后分组序列%=[];fori=:naa(i)=(i));end%jiaozhi.m卷积交织函数function[bb]=jiejiaozhi(aa,n)%jiejiaozhi.m解卷积交织函数%n=%aa解卷积交织前原分组序列%bb解卷积交织后分组序列%=[];fori=:(i))=aa(i);end%jiejiaozhi.m解卷积交织函数特别的,本次仿真还采用了一种循环等差交织编码。所谓循环等差,是指将序号从大到小顺时针排成一圈,从开始等间隔逆时针取个数,间隔为,这样依次取的个数即序号重排方式。性能参数如下:交织矩阵:分组交织前序号:[];循环等差交织后序号重排:[];性能分析:任何长度小于等于M+=+=的突发差错,经交织、去交织后成为独立差错。任何长度大于M+=+=的突发差错,经交织、去交织后有可能变成短突发差错。特殊的,间隔为M+=+=的独立差错,经交织、去交织后会变成长度为N-=–=的突发差错。特殊的,间隔为…、、、…的独立差错,经交织、去交织后会变成长度为或的突发差错。从前条性能分析的比较看,循环等差交织比卷积交织更好。但是从第条看,循环等差交织比卷积交织又差了。因此,只能通过实际仿真来比较两种交织方式的性能(见下文级联码部分)。MATLAB源程序function[aa]=v(bb,n)%v.m循环等差交织函数%n=分组长度%bb循环等差交织前原分组序列%aa循环等差交织后还原分组序列%序号重排方式:%j[n]=[]j=;fori=:nj=rem(j+-,n)+;%序号重排方式迭代算法aa(n+-i)=bb(j);end%v.m循环等差交织函数function[bb]=v(aa,n)%v.m解循环等差交织函数%n=分组长度%aa解循环等差交织前原分组序列%bb解循环等差交织后还原分组序列%序号重排方式:%j[n]=[]j=;fori=:nj=rem(j+
内容来自淘豆网www.taodocs.com转载请标明出处.