Turbo码交织方法、装置及交织器与流程

文档序号:11841694阅读:428来源:国知局
Turbo码交织方法、装置及交织器与流程
本发明涉及电力线载波通信领域,尤其涉及一种Turbo码交织方法、装置及交织器。
背景技术
:电力线载波(PowerLineCarrier,PLC)通信是利用电力线为信息传输媒介进行语音或数据传输的通信方式。电力线载波通信因其广泛的布线网络优势,成为在电力网络使用区域的最宽广的通信手段。正交频分复用(OrthogonalFrequencyDivisionMultiplexing,OFDM)采用快速傅里叶变换(FastFourierTransformation,FFT)和傅里叶逆变换(InverseFastFourierTransformation,IFFT)实现调制和解调,采用插入循环前缀的方法可以有效降低码间干扰带来的不利影响。此外,OFDM系统各个子载波之间存在正交性,允许子信道的频谱相互重叠,所以可以最大限度的利用频谱资源。基于这些优点,OFDM在电力线载波通信中得到越来越广泛的应用。在以OFDM为核心技术的PLC通信系统中,当数据在信道中传输时,如果遇到干扰,则容易造成大量、集中的错码,错码数量过多可能会超出纠错能力而无法纠正错误。为提高通信系统的通信性能,可以对通信信道进行信道编码。现有技术中,Turbo码以接近香农定理极限的优异性能,成为OFDM通信系统中广泛应用的信道编码方式。Turbo码的最大特点是在编译码器中引入了交织器和解交织器,能够有效地实现近似随机的编译码。在数据发送之前,通过Turbo码交织器对数据进行交织,将集中的错码分散到各个码组中,从而便于纠错。然而,当在数据传输过程中,遇到脉冲干扰和频率深衰落时,采用现有的Turbo码交织器对发送数据进行交织后,接收端接收到的数据仍然存在大量错码的情况。技术实现要素:本发明实施例解决的问题是如何降低OFDM电力线载波通信系统中数据的误码率。为解决上述问题,本发明实施例提供一种Turbo码交织方法,包括:获取当前业务对应的数据包长度,以及所述当前业务所对应的子载波数;根据所述数据包长度以及所述子载波数,计算对应的OFDM符号数;根据所述子载波数以及所述OFDM符号数,计算所述当前业务对应的交织参数;根据所述子载波数、所述OFDM符号数以及所述交织参数,计算对应的交织地址。可选的,所述根据所述数据包长度以及所述子载波数,计算对应的OFDM符号数,包括:采用公式n=N/m得到所述OFDM符号数,其中:n为所述OFDM符号数,N为所述数据包长度,m为所述子载波数。可选的,在n为非整数时,将所述数据包的长度扩展至N',并采用公式n=N'/m得到所述OFDM符号数n,其中,N'为大于N且可被m整除的最小整数。可选的,所述根据所述子载波数以及所述OFDM符号数,计算所述当前业务对应的交织参数,包括:采用公式GCD(m_x,m)=1计算交织参数m_i与m_j:在计算得到的结果中,大于2的数值的个数大于1时,设定m_i为所述结果中大于2的数值中的最小值,m_j为所述结果中大于2的数值中的次小值;在计算得到的结果中,大于2的数值的个数等于1时,设定m_i为所述结果中大于2的数值,m_j=1;在计算得到的结果中,不存在大于2的数值时,设定m_i=m_j=1;采用公式GCD(n_x,n)=1计算交织参数n_i与n_j:在计算得到的结果中,大于2的数值的个数大于1时,设定n_i为所述结 果中大于2的数值中的次小值,n_j为所述结果中大于2的数值中的最小值;在计算得到的结果中,大于2的数值的个数等于1时,设定n_j为所述结果中大于2的数值,n_i=1;在计算得到的结果中,不存在大于2的数值时,设定n_i=n_j=1;其中,GCD(x,y)表示为求数x与数y的最大公约数。可选的,所述根据所述子载波数、所述OFDM符号数以及所述交织参数,计算对应的交织地址,包括:获取所述数据包中当前数据的初始地址;采用公式J=(j×n_j+i×n_i)modnI=(i×m_i+J×m_j)modm]]>计算所述当前数据的初始地址对应的交织地址;其中,j表示为当前数据对应的OFDM符号的标识,i表示为当前数据对应的子载波的标识,modn表示为对n求模,modm表示为对m求模。为解决上述问题,本发明实施例还提供了一种Turbo码交织装置,包括:获取单元,用于获取当前业务对应的数据包长度,以及所述当前业务所对应的子载波数;第一计算单元,用于根据所述数据包长度以及所述子载波数,计算对应的OFDM符号数;第二计算单元,用于根据所述子载波数以及所述OFDM符号数,计算所述当前业务对应的交织参数;第三计算单元,用于根据所述子载波数、所述OFDM符号数以及所述交织参数,计算对应的交织地址。可选的,所述第一计算单元采用公式n=N/m得到所述OFDM符号数,其中:n为所述OFDM符号数,N为所述数据包长度,m为所述子载波数。可选的,所述第一计算单元还用于:在n为非整数时,将所述数据包的长度扩展至N',并采用公式n=N'/m得到所述OFDM符号数n,其中,N'为大于N且可被m整除的最小整数。本发明实施例还提供了一种Turbo码交织器,包括:参数读取器、第一运算器、寄存器、第二运算器以及控制器,其中:所述参数读取器,用于获取当前业务对应的数据包长度,以及所述当前业务所对应的子载波数;所述第一运算器,用于根据所述数据包长度以及所述子载波数,计算对应的OFDM符号数,并根据所述子载波数以及所述OFDM符号数,计算所述当前业务对应的交织参数;所述寄存器,适于存储所述第一运算器计算得到的所述当前业务对应的交织参数;所述第二运算器,适于根据所述寄存器中存储的所述交织参数,以及所述子载波数与所述OFDM符号数,计算对应的交织地址;所述控制器,适于控制所述第二运算器在预设周期内进行运算。与现有技术相比,本发明实施例的技术方案具有以下优点:通过预先获取当前业务对应的数据包长度以及子载波个数,计算出OFDM符号数,根据OFDM符号数以及子载波个数计算当前业务的交织参数,进而计算获取当前业务数据对应的交织地址。由于对数据包中的数据进行了时域和频域的交织,数据在传输过程中受到频率深衰落影响时,可以将同一个子载波位置上的错误数据分散到多个子载波中;数据在传输过程中受到脉冲干扰时,可以将一个OFDM符号中的错误分散到多个OFDM符号中。即:通过对数据包中的数据进行时域和频域的交织,可以避免频率深衰落导致整个子载波位置上的数据均出现错误的同时,也可以避免脉冲干扰导致一个OFDM符号上的数据均出现错误,从而可以有效地降低OFDMPLC通信系统中数据的误码率。附图说明图1是本发明实施例中的一种Turbo码交织方法的流程图;图2是本发明实施例中的同一个OFDM符号中数据交织前后位置对比图;图3是本发明实施例中的同一个子载波对应数据交织前后位置分布对比 图;图4是本发明实施例中的一种Turbo码交织装置的结构示意图;图5是本发明实施例中的一种Turbo码交织器的结构示意图。具体实施方式在以OFDM为核心技术的PLC通信系统中,当数据在信道中传输时,存在脉冲干扰和频率深衰落的情况下,采用现有的Turbo码交织器对发送数据进行交织后,接收端接收到的数据仍然存在大量错码的情况。在本发明实施例中,对数据包中的数据进行了时域和频域的交织。频域上的交织可以使得数据在传输过程中受到频率深衰落影响时,可以将同一个子载波位置上的错误数据分散到多个子载波中,防止频率深衰落扰乱该频率对应的所有数据;时域上的交织可以使得数据在传输过程中受到脉冲干扰时,可以将一个OFDM符号中的错误分散到多个OFDM符号中,避免整个OFDM符号中的数据受到干扰。即:通过对数据包中的数据进行时域和频域的交织,可以避免频率深衰落导致整个子载波位置上的数据均出现错误的同时,也可以避免脉冲干扰导致一个OFDM符号上的数据均出现错误,从而可以有效地降低OFDMPLC通信系统中数据的误码率。为使本发明实施例的上述目的、特征和优点能够更为明显易懂,下面结合附图对本发明的具体实施例做详细的说明。本发明实施例提供了一种Turbo码交织方法,参照图1,以下通过具体步骤进行详细说明。步骤S101,获取当前业务对应的数据包长度,以及所述当前业务所对应的子载波数。在具体实施中,在发送端将当前业务对应的数据包发送至接收端之前,可以先获取当前业务对应的数据包长度。在具体实施中,可以根据发送端与接收端之间当前的信道状态,来选择对应的子载波频段以及子载波的数量。在实际应用中,电力线载波通信的信道是一个频率选择性信道。电力线载波通信过程中,除了背景噪声之外,还受到脉冲噪声、窄带干扰等因素的 影响。因此,在选择子载波时,可以优先选择信噪比较大的频段,尽量规避干扰较强的频段。在选定频段后,根据使用的采样频率以及FFT点数便可以计算出子载波的个数。在实际应用中,可以根据实际的应用场景来选择对应的子载波数,此处不做赘述。步骤S102,根据所述数据包长度以及所述子载波数,计算对应的OFDM符号数。在具体实施中,在根据步骤S101获取到数据包长度以及子载波数之后,即可获取对应的OFDM符号数。在本发明一实施例中,通过以下公式计算OFDM符号数:n=N/m(1);其中,n为OFDM符号数,N为数据包长度,m为子载波个数。在本发明实施例中,还存在N无法被m整除的情况,即根据公式(1)计算得到的OFDM符号数n为非整数。针对上述情况,在本发明实施例中,可以将数据包的长度N扩展至N',其中,N'为大于N且可以被m整除的最小整数。例如,可以在数据包的数据尾部添加N'-N个无效0,此时OFDM符号数为n=N'/m。又如,也可以在数据包的头部添加N'-N个无效0,此时OFDM符号数为n=N'/m。可以理解的是,在实际应用中,也可以在数据包的中间部分添加N'-N个无效0。在本发明实施例中,对长度为N'的数据包执行步骤S103和步骤S104后,可以获得N'个数据一一对应的交织地址。接收端对接收到的数据进行解码后,去除对应位置增加的N'-N个无效0,即可获取长度为N的有效数据。可以理解的是,在实际应用中,还可以存在其他的计算公式来计算OFDM符号数,此处不再一一赘述。步骤S103,根据所述子载波数以及所述OFDM符号数,计算所述当前业 务对应的交织参数。在本发明一实施例中,当前业务对应的交织参数包括:m_i、m_j、n_i以及n_j。通过如下公式(2)计算交织参数m_i以及m_j:GCD(m_x,m)=1(2);通过如下公式(3)计算交织参数n_i以及n_j:GCD(n_x,n)=1(3);其中,n为OFDM符号数,m为子载波数,GCD(x,y)表示为求数x与数y的最大公约数。在本发明一实施例中,采用公式(2)计算交织参数m_i以及m_j时,可以存在如下三种情形:1)计算得到的结果中,大于2的数值的个数大于1针对情形1),设定m_i为计算得到的结果中大于2的数值中的最小值,设定m_j为计算得到的结果中大于2的数值中的次小值。例如,m=10,则根据公式(2),可以得知计算得到的结果m_x为1、3、7、9,m_x中大于2的数值的个数为3,即大于2的数值的个数大于1。针对情形1),设定m_i为计算得到的m_x中大于2的数值中的最小值,因此m_i=3;设定m_j为计算得到的m_x中大于2的数值中的次小值,因此m_j=7。2)计算得到的结果中,大于2的数值的个数等于1针对情形2),设定m_i为计算得到的结果中大于2的数值,设定m_j=1。例如,m=6,则采用公式(2)计算得到的m_x为1、5,即计算得到的m_x中大于2的数值只有一个。在这种情况下,设定m_i为计算得到的m_x中大于2的数值,即m_i=5,设定m_j=1。3)计算得到的结果中,不存在大于2的数值针对情形3),设定m_i=m_j=1。例如,m=3,则采用公式(2)计算得到的m_x为1、2,即m_x中不存 在大于2的数值。在这种情况下,设定m_i=m_j=1。相类似的,在本发明一实施例中,在采用公式(3)计算n_i与n_j时,同样可以存在三种情形:4)计算得到的结果中,大于2的数值的个数大于1针对情形4),设定n_i为计算得到的结果中大于2的数值中的次小值,设定n_j为计算得到的结果中大于2的数值中的次小值。例如,n=8,则根据公式(3),可以得知计算得到的结果n_x为1、3、5、7,即计算得到的n_x中,大于2的数值的个数为3,满足情形4)。针对情形4),设定n_i为计算得到的n_x中大于2的数值中的次小值,因此n_i=5;设定n_j为计算得到的n_x中大于2的数值中的最小值,因此n_j=3。5)计算得到的结果中,大于2的数值的个数等于1针对情形5),设定n_j为计算得到的结果中大于2的数值,设定n_i=1。例如,n=6,则采用公式(3)计算得到的n_x为1、5,即计算得到的n_x中大于2的数值只有一个。在这种情况下,设定n_j为计算得到的n_x中大于2的数值,即n_j=5,设定n_i=1。6)计算得到的结果中,不存在大于2的数值针对情形6),设定n_i=n_j=1。例如,n=3,则采用公式(3)计算得到的n_x为1、2,不存在大于2的数值。在这种情况下,设定n_i=n_j=1。可以理解的是,在本发明其他实施例中,也可以存在其他的运算方法来获取当前业务对应的交织参数:m_i、m_j、n_i以及n_j,并不仅限于本发明上述实施例提供的方法,此处不再赘述。步骤S104,根据所述子载波数、所述OFDM符号数以及所述交织参数,计算对应的交织地址。在具体实施中,可以通过硬件电路计算对应的交织地址,也可以通过软 件计算对应的交织地址,还可以通过软件与硬件电路结合的方式计算对应的交织地址。在本发明一实施例中,可以采用如下公式(4)计算对应的交织地址:J=(j×n_j+i×n_i)modnI=(i×m_i+J×m_j)modm---(4);]]>其中,i表示为当前数据对应的子载波的标识,j表示为当前数据对应的OFDM符号的标识,J表示为j对应的交织之后的OFDM符号的标识;I表示为i对应的交织之后的子载波的标识。下面通过举例对步骤S104进行说明。参照图2,图2中,子载波的个数m=10,OFDM符号数n=8,m_i=3,m_j=7,n_i=5,n_j=3,交织器输入数据在交织前的地址结构可以参照201,被黑色填充的方格表示为:8个OFDM符号中对应第2个子载波位置的数据。将上述参数代入到公式(4)中,可以得到公式(5)如下:J=(3×j+5×i)modnI=(3×i+7×J)modm---(5);]]>其中,J表示为j对应的交织之后的OFDM符号的标识;I表示为i对应的交织之后的子载波的标识。设定8个OFDM符号对应的比特数据的初始地址依次为(0,1)、(1,1)、…、(7,1),即j=n,i=1,其中,0≤n≤7。以当前子载波初始地址为(0,1)为例,即j=0,i=1。将j=0,i=1代入公式(5),可以得到J=(3×0+5×1)mod8=5,I=(3×1+7×5)mod10=8,即初始地址为(0,1)的比特数据对应的交织地址为(5,8),其中初始地址为(j,i)表示为201中第j+1行第i+1列的方框;交织地址为(J,I)表示为202中第J+1行第I+1列的方框。例如,初始地址(0,1)表示为201中第1行第2列的方框。将初始地址为(1,1)、…、(7,1)的OFDM符号的初始地址代入到公式(5)中,可以依次得到:初始地址为(1,1)对应的比特数据的交织地址为(0,3);初始地址为(2,1)对应的比特数据的交织地址为(3,4);初始地址为(3,1)对应的比特数据的交织地址为(6,5);初始地址为(4,1)对应的比特数据的交织地址为(1,0);初始地址为(5,1)对应的比特数据的交织地址为(4,1);初始地址为(6,1)对应的比特数据的交织地址为(7,2);初始地址为(7,1)对应的比特数据的交织地址为(2,7)。初始地址通过公式(5)转换成交织地址后,交织地址的排列关系图参照图2中的202。从202中可以得知,经过交织运算后,第2子载波上对应的8个OFDM符号的比特数据被分散到第1、2、3、4、5、6、8、9子载波上。在经过交织运算后,即使第2子载波受到频率深衰落的影响,对应该频率位置的数据也只有其中的一个比特数据受到影响,接收端仍可以正常进行纠错。而在没有进行交织运算时,当第2子载波受到频率深衰落影响时,第2子载波上携带的8个比特数据均会受到干扰,导致错码数目增加,超出接收端的纠错能力范围。又如,参照图3。图3中,子载波的个数m=10,OFDM符号数n=8,m_i=3,m_j=7,n_i=5,n_j=3,在301中,被黑色填充的方格表示为:第5个OFDM符号所对应的10个比特数据。10个比特数据的初始地址依次为(4,0)、(4,1)、…、(4,9),将上述初始地址依次代入公式(5),可以依次得到对应的子载波的交织地址为:初始地址为(4,0)的数据对应的交织地址为(4,8);初始地址为(4,1)的数据对应的交织地址为(1,0);初始地址为(4,2)的数据对应的交织地址为(6,8);初始地址为(4,3)的数据对应的交织地址为(3,0);初始地址为(4,4)的数据对应的交织地址为(0,3);初始地址为(4,5)的数据对应的交织地址为(5,0);初始地址为(4,6)的数据对应的交织地址为(2,2);初始地址为(4,7)的数据对应的交织地址为(7,0);初始地址为(4,8)的数据对应的交织地址为(4,2);初始地址为(4,9)的数据对应的交织地址为(1,6)。初始地址通过公式(5)转换成交织地址后,交织地址的排列关系图参照图3中的302。从302中可以得知,经过交织运算转换后,第5个OFDM符号所对应的10个比特数据被分散到OFDM符号1~8上。在经过交织运算后,即使第5个OFDM符号受到脉冲噪声的干扰,也只有其中的两个比特数据受到干扰,接收端仍可以正常进行纠错。而在没有进行交织运算时,当第5个OFDM符号受到脉冲噪声干扰时,第5个OFDM符号上的所有比特数据均会出现错误,导致错码数目增加,超出接收端的纠错能力范围。由此可见,通过预先获取当前业务对应的数据包长度以及子载波个数,计算出OFDM符号数,根据OFDM符号数以及子载波个数计算当前业务的交织参数,从而计算获取当前业务数据对应的交织地址。由于对数据包中的数据进行了时域和频域的交织,数据在传输过程中受到频率深衰落影响时,可以将一个子载波位置上的错误数据分散到多个子载波中;数据在传输过程中受到脉冲干扰时,可以将一个OFDM符号中的错误分散到多个OFDM符号中。即:通过对数据包中的数据进行时域和频域的交织,可以避免频率深衰落导致整个子载波上的数据均出现错误的同时,也可以避免脉冲干扰导致一个OFDM符号上的数据均出现错误,从而可以有效地降低OFDMPLC通信系统中数据的误码率。参照图4,本发明实施例还提供了一种Turbo码交织装置40,包括:获取单元401、第一计算单元402、第二计算单元403以及第三计算单元404,其中:获取单元401,用于获取当前业务对应的数据包长度,以及传输所述当前业务所对应的子载波数;第一计算单元402,用于根据所述数据包长度以及所述子载波数,计算对应的OFDM符号数;第二计算单元403,用于根据所述子载波数以及所述OFDM符号数,计 算所述当前业务对应的交织参数;第三计算单元404,用于根据所述子载波数、所述OFDM符号数以及所述交织参数,计算对应的交织地址。在具体实施中,所述第一计算单元402可以采用公式n=N/m得到所述OFDM符号数,其中:n为所述OFDM符号数,N为所述数据包长度,m为所述子载波数。在具体实施中,所述第一计算单元402还可以用于:在n为非整数时,将所述数据包的长度扩展至N',并采用公式n=N'/m得到所述OFDM符号数n,其中,N'为大于N且可被m整除的最小整数。参照图5,本发明实施例还提供了一种Turbo码交织器50,包括:参数读取器501、第一运算器502、寄存器503、第二运算器504以及控制器505,其中:所述参数读取器501,用于获取当前业务对应的数据包长度,以及所述当前业务所对应的子载波数;所述第一运算器502,用于根据所述数据包长度以及所述子载波数,计算对应的OFDM符号数,并根据所述子载波数以及所述OFDM符号数,计算所述当前业务对应的交织参数;所述寄存器503,适于存储所述第一运算器502计算得到的所述当前业务对应的交织参数;所述第二运算器504,适于根据所述寄存器中存储的所述交织参数,以及所述子载波数与所述OFDM符号数,计算对应的交织地址所述控制器505,适于控制所述第二运算器在预设周期内进行运算。在具体实施中,参数读取器501、第一运算器502以及第二运算器504均可以通过具体的硬件电路实现,也可以通过软件方式实现,即:可以通过软件从存储单元如寄存器503中调用相应的数据并进行运算操作。本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指示相关的硬件来完成,该程序可以存储于一计算机可 读存储介质中,存储介质可以包括:ROM、RAM、磁盘或光盘等。虽然本发明披露如上,但本发明并非限定于此。任何本领域技术人员,在不脱离本发明的精神和范围内,均可作各种更动与修改,因此本发明的保护范围应当以权利要求所限定的范围为准。当前第1页1 2 3 
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1