美文网首页matlab有趣的程序和命令
信道交织编码及其matlab仿真

信道交织编码及其matlab仿真

作者: AndyYYL | 来源:发表于2018-12-12 16:38 被阅读0次

    Interleave coding technology and its related Matlab® code

    什么是交织编码技术?

    交织编码是在实际移动通信环境下改善移动通信信号衰落的一种通信技术。将造成数字信号传输的突发性差错,利用交织编码技术可离散并纠正这种突发性差错,改善移动通信的传输特性。                                                        ——来自《百度百科》

    交织编码技术的作用?

    信道交织编码实际上是一类信道改造技术,它将一个突发信道改造成一个随机独立差错信道。它本身并不具备信道编码检、纠错功能,仅起到信号预处理的作用。

    块交织编码技术的基本原理与框图

    块交织技术系统框图

    示例说明

    1、若输入数据经信道编码后为X1=(x1 x2 x3 x4 x5 x6);

    2、发送端交织存储器为一个行列交织矩阵存储器,它“按列写入、按行读出”;

    3、进入突发信道的信号为X2=(x1 x3 x5 x2 x4 x6);

    4、假设突发信道中连续2位产生错误,即X3= (x1 x3 x5 x2 x4 x6);

    5、在接收端,去交织器和交织器正好相反,即“按行写入,按列读出”;

    6、输出去交织器的信号X4= (x1 x2 x3 x4 x5 x6);

    结论:可见,由上述分析,经过交织矩阵和去交织矩阵变换后,原来信道中的突发性连错,变成了X4输出中的独立随机差错。

    规律总结:若块长度为l=M×N,即由M列N行的矩阵构成。则有:任何一个长度为l≤M的突发错误,经交织以后,可以至少被N-1位隔开成为单个随机独立差错。

    块交织技术相关Matlab代码

    1、Matlab函数及其相关说明

    Matintrlv

    通过按行填充矩阵,并按列输出来重新排序符号。

    代码格式

    intrlvd = matintrlv(data,Nrows,Ncols)

    代码描述

    intrlvd = matintrlv(data,Nrows,Ncols) 通过逐行填充元素的临时矩阵,然后逐列将矩阵内容发送到输出,重新排列数据中的元素。Nrows和Ncols是临时矩阵的维度。 如果数据是向量,则它必须具有Nrows * Ncols元素。如果data是具有多行和多列的矩阵,则数据必须具有Nrows * Ncols行,并且该函数独立处理列。

    matdeintrlv

    通过按列填充矩阵,并按行输出符号来恢复符号排序。

    代码格式

    deintrlvd = matdeintrlv(data,Nrows,Ncols)

    代码描述

    deintrlvd = matdeintrlv(data,Nrows,Ncols) 通过逐列填充元素的临时矩阵,然后逐行将矩阵内容发送到输出,重新排列数据中的元素。Nrows和Ncols是临时矩阵的维度。如果数据是向量,则它必须具有Nrows * Ncols元素。如果data是具有多行和多列的矩阵,则数据必须具有Nrows * Ncols行,并且该函数独立处理列。要将此函数用作matintrlv函数的反函数,请在两个函数中使用相同的Nrows和Ncols输入。在这种情况下,这两个函数是反转的,因为应用matintrlv后跟matdeintrlv使数据保持不变。

    2、示例源代码

    a= [ 1 2 3 4 5 6 7 8 9 10 11 12]; %信号序列

    a;   %打印a的输出

    msg = matintrlv (a,2,6); %对信号序列进行2行6列的交织

    msg1 = matdeintrlv (msg,2,6);     %对交织后的数据按照交织过程解交织

    3、代码运行截图及结果分析

    示例程序运行

    可以看到交织是将原来的数据变换为2行6列的矩阵,然后按照列的顺序依次把信号重新排列,得到交织后的数据,数据通过信道后再进行相应的解交织过程,解交织是将交织后的数据再变换为2行6列,按照行的顺序恢复出原来的信号序列。

    相关文章

      网友评论

        本文标题:信道交织编码及其matlab仿真

        本文链接:https://www.haomeiwen.com/subject/sprphqtx.html