一种循环码编码方法、译码方法及抗噪声性能分析方法

文档序号:33507230发布日期:2023-03-18 03:16阅读:54来源:国知局
一种循环码编码方法、译码方法及抗噪声性能分析方法

1.本发明涉及循环码的编码和译码领域,更具体地,涉及一种循环码编码方法、译码方法及抗噪声性能分析方法。


背景技术:

2.循环码在数字通信系统和存储介质等方面有着广泛的应用。受循环码编译公式计算量大的影响,在计算过程中难以确保数值的准确性,使得循环码编译过程的数值计算常常出现错误。目前大部分研究循环码编译方法的途径单一,传统计算方法需要代入编码和译码过程公式以及参数,计算量大,不仅耗费了大量时间,而且计算结果需要代入公式验证影响准确性。


技术实现要素:

3.本发明针对现有技术中存在的技术问题,提供一种循环码编码方法、译码方法及抗噪声性能分析方法。
4.根据本发明的第一方面,提供了一种循环码编码方法,包括:
5.作m(x)*x^(n-k),表示将循环码m(x)的信息码元向左移动(n-k)位,右侧(n-k)位补0,预留给监督码元;
6.作m(x)*x^(n-k)/g(x)=q(x)+r(x)/g(x),求得余式r(x)作为监督码元,其中,g(x)表示生成多项式,q(x)=1;
7.作a(x)=m(x)*x^(n-k)+r(x),得到循环码的码多项式a(x),基于所述循环码的码多项式a(x)计算对应的码组c(x),其中,a(x)为g(x)的倍式。
8.在上述技术方案的基础上,本发明还可以作出如下改进。
9.可选的,所述码组c(x)为根据所述码多项式a(x)查表得到,其中,所述表中存储有码多项式与码组的对应关系。
10.可选的,调用matlab中的encode函数实现循环码的编码,code=encode(msg,n,k,method1,opt1),其中msg代表信息码元,n是m(x)的码字长度,method1为编码方式,k是m(x)信息位上的长度,opt1是循环码编码需要的参数。
11.根据本发明的第二方面,提供一种循环码译码方法,包括:
12.计算接收码组b(x)除以g(x)的余式s(x)是否为零,如果为零,则所述接收码组b(x)是许用码组;如果不为零,则接收码组b(x)为错误码组;
13.若s(x)不为零时,根据s(x)得到错误图样e(x),基于所述错误图样e(x)确定接收码组b(x)的错码位置;
14.从接收码组b(x)中减去错误图样e(x),得到纠正后的码多项式a’(x)=b(x)-e(x),根据纠正后的码多项式a’(x)查表得到对应的码组。
15.可选的,对接收到的码组采用matlab中的decode函数进行译码,msg=decode(code,n,k,method2,opt2,opt3,opt4,opt5),对接收到的码组,按method为循环码译码方
式,n是b(x)的码字长度,k是b(x)上信息位的长度,opt2为编码器输入信号的参数,opt3为编码器输出信号的参数,opt4为译码器输出信号的参数,opt5为译码器输出信号频谱的参数。
16.根据本发明的第三方面,提供了一种循环码抗噪声性能分析方法,包括:
17.向循环码m(x)中分别加入高斯白噪声和alpha稳定分布噪声,获取加入噪声后的循环码;
18.基于循环码编码方法对加入噪声后的循环码进行编码,以及基于循环码译码方法进行相应的解码,并分别计算高斯白噪声误码率和alpha稳定分布噪声误码率;
19.基于所述高斯白噪声误码率和alpha稳定分布噪声误码率,对循环码的抗噪声性能进行分析。
20.可选的,所述基于所述高斯白噪声误码率和alpha稳定分布噪声误码率,对循环码的抗噪声性能进行分析,包括:
21.相同条件下,alpha稳定分布噪声误码率比高斯白噪声误码率大,且alpha稳定分布噪声的稳定参数越小,误码率越大,抗噪声能力越差。
22.可选的,基于所述高斯白噪声误码率和alpha稳定分布噪声误码率,对循环码的抗噪声性能进行分析,包括:
23.相同信息码元和调制系统条件下,高斯白噪声的稳定参数越小,误码率越大,抗噪声能力越差。
24.根据本发明的第四方面,提供了一种计算机可读存储介质,其上存储有计算机管理类程序,所述计算机管理类程序被处理器执行时实现循环码编码方法或循环码译码方法或循环码抗噪声分析方法的步骤。
25.本发明提供的一种循环码编码方法、循环码译码方法及抗噪声性能分析方法,无需用传统公式方式进行计算,可直接使用新的算法,运用matlab软件进行计算,大大降低了计算复杂度,缩短了计算时长,提高了结果的准确性,不确定因素大大降低。
附图说明
26.图1为本发明提供的一种循环码编码方法流程图;
27.图2是编码程序主流图;
28.图3为本发明提供的一种循环码译码方法流程图;
29.图4是译码程序主流图;
30.图5是图2、图4编码译码过程的仿真图;
31.图6为本发明提供的一种循环码抗噪声性能分析方法流程图;
32.图7是循环码编码信道下的误码率比较的仿真图;
33.图8是循环码在不同高斯白噪声下误码率比较的仿真图;
34.图9为本发明提供的一种可能的电子设备的硬件结构示意图;
35.图10为本发明提供的一种可能的计算机可读存储介质的硬件结构示意图。
具体实施方式
36.为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例
中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。另外,本发明提供的各个实施例或单个实施例中的技术特征可以相互任意结合,以形成可行的技术方案,这种结合不受步骤先后次序和/或结构组成模式的约束,但是必须是以本领域普通技术人员能够实现为基础,当技术方案的结合出现相互矛盾或无法实现时,应当认为这种技术方案的结合不存在,也不在本发明要求的保护范围之内。
37.本发明旨在克服对循环码编译码的技术缺陷,利用软件写出公式和参数,可以直接对循环码编码和译码过程进行计算,目的在于提供一种计算复杂度低、干扰因素少、准确度高和处理时间短的循环码编码译码方法。
38.图1为本发明提供的一种循环码编码方法流程图,如图1所示,方法包括:s1,作m(x)*x^(n-k),表示将循环码m(x)的信息码元向左移动(n-k)位,右侧(n-k)位补0,预留给监督码元;s2,作m(x)*x^(n-k)/g(x)=q(x)+r(x)/g(x),求得余式r(x)作为监督码元,其中,g(x)表示生成多项式,q(x)=1;s3,作a(x)=m(x)*x^(n-k)+r(x),得到循环码的码多项式a(x),基于所述循环码的码多项式a(x)计算对应的码组c(x),其中,a(x)为g(x)的倍式。
39.其中,循环码的编码部分包括:
40.第一步:作m(x)*x^(n-k),表示把循环码m(x)的信息码元进行左移,移动(n-k)位,右侧空位附上(n-k)个0,预留给监督码元(循环码的结构中前k个码元是信息位,后r个码元为监督位,n=k+r)。
41.第二步:作m(x)*x^(n-k)除以g(x),即m(x)*x^(n-k)/g(x)=q(x)+r(x)/g(x),求得余式r(x)作为监督码元,其中,g(x)表示生成多项式,q(x)=1。
42.第三步:作a(x)=m(x)*x^(n-k)+r(x),得到循环码的码多项式a(x)和对应的码组c(x),且由第二步可得a(x)一定是g(x)的倍式,其中,码组c(x)为根据码多项式a(x)查表得到,其中,表中存储有码多项式与码组的对应关系。
43.参见图2,本程序直接调用编码函数进行编程。
44.所述编码过程的主流程为:
45.s-101、开始;
46.s-102、计算m(x)*x^(n-k);
47.s-103、计算m(x)*x^(n-k)/g(x);
48.s-104、确定余式r(x);
49.s-105、确定循环码多项式a(x)=m(x)*x^(n-k)+r(x);
50.s-106、存储a(x)。
51.编码部分调用matlab中的encode函数实现循环码的编码,code=encode(msg,n,k,method1,opt1),其中msg代表信息码元,n是m(x)的码字长度,method1为编码方式,k是m(x)信息位上的长度,opt1是循环码编码需要的参数。
52.参见图3,为本发明提供的一种循环码译码方法,包括:s1’,计算接收码组b(x)除以g(x)的余式s(x)是否为零,如果为零,则所述接收码组b(x)是许用码组;如果不为零,则接收码组b(x)为错误码组;s2’,若s(x)不为零时,根据s(x)得到错误图样e(x),基于所述错误图样e(x)确定接收码组b(x)的错码位置;s3’,从接收码组b(x)中减去错误图样e(x),得
到纠正后的码多项式a’(x)=b(x)-e(x),根据纠正后的码多项式a’(x)查表得到对应的码组。
53.可理解的是,循环码的译码部分包括:
54.第一步:对接收码组b(x)进行如下的计算:计算b(x)除以g(x)的余式是否为零,即b(x)/g(x)是否为零,如果为零,则是许用码组。如果不为零,则是错误的。若有错误的接收码组被g(x)整除,则这样的错误就被称为不可检错误。
55.第五步、若b(x)/g(x)不为零,用b(x)/g(x)可得到余式,即循环码的校正子多项式s(x);由s(x)得到错误图样e(x),确定接收码组b(x)的错码位置;从b(x)中减去e(x),纠正成原码多项式a’(x)=b(x)-e(x),根据a’(x)查表得到对应的码组。
56.可参见图4,本程序直接调用译码函数进行编程。
57.循环码译码过程的主流程为:
58.s-201、开始;
59.s-202、计算b(x)/g(x),得到余式s(x);
60.s-203、s(x)=0,无误码;
61.s-204、若否,则由s(x)确定错误图样e(x);
62.s-205、原发送码组a(x)=b(x)-e(x);
63.s-206、存储a(x)。
64.其中,本发明采用的为(7,4)循环码,(7,4)循环码错误图样e(x)和伴随式如表1所示。(码长=7,信息位长度=4)
65.表1(7,4)循环码错误图样表
66.错误图样错误图样码字伴随式s(x)伴随式e6(x)=x61000000x2100e5(x)=x50100000x2+x110e4(x)=x40010000x2+x+1111e3(x)=x30001000x+1011e2(x)=x20000100x2+1101e1(x)=x10000010x010e0(x)=x000000011001e(x)=000000000000
67.根据表1所示,可由伴随式s(x)确定对应的错误图样e(x)。
68.其中,对接收到的码组采用matlab中的decode函数进行译码,恢复成原始的信息,译码方式必须和编码时采用的方式严格相同。译码方法采用msg=decode(code,n,k,method2,opt2,opt3,opt4,opt5),对接收到的码组,按method为循环码译码方式,n是b(x)的码字长度,k是b(x)上信息位的长度,opt2为编码器输入信号的参数,opt3为编码器输出信号的参数,opt4为译码器输出信号的参数,opt5为译码器输出信号频谱的参数。对编码器和译码器的输入、输出信号给出一系列命令,运行得到仿真图。波形对应的码字为编码器输入信号:11011001110110100111101111101010,编码器输出的循环码码字为:0011101110100100111010111010010011100010111
……
010。根据结果得出编码器的输入信号与输出信号的波形差别很大。通过系统循环码的公式:a(x)=m(x)x
n-k
+[m(x)x
n-k
]modg(x)直接求得
当输入信号为11011001110110100111101111101。已知该循环码为(7,4)循环码,则经过数字通信系统后,将码字多项式转变成码字形式的输出信号结果为0011101110100100111010111010010011100010111
……
010。与编码结果所对应的波形完全一致,可以确定循环码编码过程的仿真结果是正确的。
[0069]
由于数字通信系统对输入信号的编码过程是随机提取的,形成的码元不是不变的。因为输入的信号通过编码器后,需要在信号中加入监督码,所以输出信号的波形比输入信号的波形更密集了。其中,图5为循环码编码译码过程的仿真图,其中编码输入信号设置了8个信息组,每组4个码字。
[0070]
参见图6,为本发明提供的一种循环码抗噪声性能分析方法,包括:s1”,向循环码m(x)中分别加入高斯白噪声和alpha稳定分布噪声,获取加入噪声后的循环码;s2”,基于循环码编码方法对加入噪声后的循环码进行编码,以及基于循环码译码方法进行相应的解码,并分别计算高斯白噪声误码率和alpha稳定分布噪声误码率;s3”,基于所述高斯白噪声误码率和alpha稳定分布噪声误码率,对循环码的抗噪声性能进行分析。
[0071]
其中,本发明采用(7,4)循环码生成多项式,从matlab中的cyclpoly函数p=cyclpoly(n,k)可找到一个给定码长n和信息位长度k生成的多项式p,由n、k确定p为(7,4)循环码的多项式(n=7,k=4)。引起一致分布的任意整数矩阵使用randint函数,本实例中生成的矩阵为(1,1)矩阵。在某一信号中加入噪声使用awgn函数,加入了三个噪声进行对比:稳定参数σ=0.9和σ=1.5的alpha稳定分布噪声,σ=2的高斯白噪声。
[0072]
具体的,分别向循环码m(x)中加入类型不同的噪声以及稳定参数不同的噪声,对加入噪声后的循环码利用上述的编码方式进行编码,得到码多项式和对应的多个码组。向通信对方发送多个码组,对方接收到多个码组后,基于上述的循环码译码方式对多个码组进行译码。译码后,统计译码错误的码组的个数与码组总个数的占比,即为误码率。
[0073]
根据图7和图8的仿真结果图,当0《msnr《20db时(msnr表示最大信噪比),高斯白噪声误码率小于alpha稳定分布噪声的误码率,且稳定参数σ=1.5的alpha稳定分布噪声的误码率小于稳定参数σ=0.9的alpha稳定分布噪声的误码率;当最大信噪比msnr》=6db时,高斯白噪声的误码率为0;当最大信噪比msnr》=9.2db时,稳定参数σ=1.5的alpha稳定分布噪声的误码率为0;当msnr》=16.4db时,稳定参数σ=0.9的alpha稳定分布噪声的误码率为0。由此可知,相同条件下,alpha稳定分布噪声所造成的误码影响比高斯白噪声所造成的误码影响大得多,且alpha稳定分布噪声的σ越小,误码率越大。
[0074]
在循环码中分别加入稳定参数σ=1和σ=2的高斯白噪声,通过误码率大小来分析循环码的抗噪声性能。当最大信噪比msnr》=0db时,循环码在σ=2的高斯白噪声作用下的误码率为ber《0.27,并急剧下降,当最大信噪比msnr》=16.4db时,在σ=2的高斯白噪声作用下的循环码误码率为0;循环码在σ=1的高斯白噪声作用下的误码率为0.24《ber《0.3,且误码率接近0.25有小幅波动。由此可知,相同信息码元和调制系统条件下,高斯白噪声在σ=1作用下的循环码比在σ=2作用下的循环码误码率大得多,说明了循环码具有较强的抗噪声性能,且随着噪声稳定参数的增强,抗噪声性能得到了显著的提高。
[0075]
参见图9,图9为本发明实施例提供的电子设备的实施例示意图。如图9所示,本发明实施例提了一种电子设备900,包括存储器910、处理器920及存储在存储器910上并可在处理器920上运行的计算机程序911,处理器920执行计算机程序911时实现循环码编码方法
或循环码译码方法或循环码抗噪声性能分析方法。
[0076]
请参阅图10,图10为本发明提供的一种计算机可读存储介质的实施例示意图。如图10所示,本实施例提供了一种计算机可读存储介质1000,其上存储有计算机程序1011,该计算机程序1011被处理器执行时实现循环码编码方法或循环码译码方法或循环码抗噪声性能分析方法。
[0077]
本发明实施例提供的一种循环码编码方法、译码方法及抗噪声性能分析方法,相比具有以下特点:
[0078]
(1)克服对循环码编译码的技术缺陷,利用软件写出公式和参数,可以直接对循环码编码和译码过程进行计算。
[0079]
(2)可直接使用新的算法,运用matlab软件进行计算,提高了结果的准确性,不确定因素大大降低。
[0080]
需要说明的是,在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详细描述的部分,可以参见其它实施例的相关描述。
[0081]
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。
[0082]
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式计算机或者其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
[0083]
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
[0084]
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
[0085]
尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。
[0086]
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包括这些改动和变型在内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1