本发明涉及高速电力线通信、正交频分复用技术、fpga数字信号处理、深度神经网络领域,具体而言是一种面向hplc-ofdm系统的turbo编码电路设计与turbo译码修正方法及系统。
背景技术:
1、随着互联网和多媒体技术的快速发展,人们对数据高速稳定传输的需求日益增长。传统电力线通信(plc)利用高压输电线路作为高频信号的传输通道,应用范围窄,传输速率低。高速电力线通信(hplc)转而采用低压配电网进行载波通信,利用正交频分复用(ofdm)技术作为专用调制方式,具有2~12mhz典型工作频带和1mbps以上的通信速率。
2、然而,作为前向纠错(fec)技术的重要组成部分,turbo编码存在状态归零困难、帧同步不够精确、硬件实现较复杂等问题;用于turbo译码的软输出维特比(sova)算法是最优的最大似然(ml)算法,相较于最大后验概率(map)算法复杂度更低,但译码延时较长,还存在外信息偏大、软判决值不精确、累计度量数据容易溢出的问题,致使其译码性能变差,这在低信噪比的环境中更为显著。turbo编译码是hplc-ofdm系统处理数据的首尾两环,上述缺陷将对整体功能造成较大影响。
技术实现思路
1、针对现有技术的不足,本发明基于q/gdw 11612.41—2018设计了八状态双比特pccc turbo编码电路,利用地址映射和查找表缩短交织延时,使用移位运算减少乘除法;采用mealy状态机,通过首次编码、二次编码达成咬尾终止;控制器与交织器通信,保证同步编码,其后开始1/2码率删余以及复接。
2、本发明提供了一种面向hplc-ofdm系统的turbo译码修正方法及系统,采用适用于实数的根式函数修正软输出信息,引入tansig神经元修正外信息,通过轻量化bnn网络进行误码识别和迭代控制,改善上述问题。
3、术语解释:
4、1、hplc,高速电力线通信,是一种利用已部署的配电网络作为高速通信基础设施的技术。物理层负责将需要数据链路层分发的数据传输报文编码、调制为载波信号,发送到电力线上,同时负责接收电力线上传输的载波信号,经解调、解码发送至数据链路层进行传输。
5、2、ofdm,正交频分复用,是一种利用正交性使每个载波的带宽与相邻载波的带宽重叠的方法。由于这种方法允许在有限的带宽内同时使用几百到几千个载波,因此它的频率利用率很高,传输速率可以达到几十到几百mbps。此外ofdm还具有抗频率选择性衰落能力强等优点,在现场总线通信、智能电网通信等方面已获得广泛应用。
6、3、fec,前向纠错。在发送端将k比特信息作为一个分组进行编码,加入(n-k)比特冗余校验信息,组成长度为n比特的码字。码字经过信道到达接收端后,若错误在可纠范围内,通过译码即可检查并纠正错误比特,从而抵抗信道带来的干扰,提高通信系统的可靠性。
7、4、turbo码,又称并行级联卷积码,有pccc、sccc、hccc三种编码结构,将卷积码和随机交织器结合在一起,在实现随机编码的同时,通过交织器由短码构造长码;采用软输出迭代译码逼近最大似然译码,具有接近shannon极限的性能。
8、5、map,最大后验概率算法。对于译码器输入的r和编码器输出的c,如果能在2k个码字中选择一个使得p(c’=c|r)最大的码序列ci(i=1,2,…,2k)作为c的估值序列c’,则这种译码规则一定使得译码输出错误概率最小。
9、6、ml,最大似然算法。若按译码规则能在2k个码字中选择一个使max{p(ci|r)}=max{p(r|ci)}(i=1,2,…,2k)成立的最大ci,则该译码规则称为最大似然译码,称p(r|c)为似然函数。
10、7、viterbi,维特比算法,其核心是“加比选”。针对(n,k,m)卷积码编码器,考察信息序列长度为h时的网格图。第一步,在t=m时间单元,计算进入每个状态的单个路径的部分度量,存储每个状态的幸存路径及其度量;第二步,在t+1时间单元,对进入每个状态的所有2k个路径计算部分度量,并加上前一时间单元的度量。对于每个状态,比较进入该状态的所有2k个路径度量,选择具有最大度量的路径,存储其度量,并删掉其他路径。第三步,如果t<h+m,返回第二步;否则,就停止。
11、8、sova,软输出viterbi算法。sova的基本运算与viterbi算法相同,唯一的区别在于对每个信息比特的硬判决输出附加一个可靠度的指示,硬判决输出和可靠度指示组合得到软输出。sova能够降低一个分量译码器出错对另一个分量译码器造成的负面影响,可以通过在分量译码器之间软信息的交换使级联码的性能大大提高。
12、9、bnn,二值神经网络。bnn建立在cnn的网络基础上,将神经元的输入、输出和权重都限制在二值范围内。由于其稀疏性,bnn具有计算效率高、存储需求低、可解释性强等优点。
13、本发明的技术方案为:
14、一种面向hplc-ofdm系统的turbo编码电路设计与turbo译码修正方法,包括:
15、s1:进行随机交织;
16、s2:进行分量编码,得到系统位和校验位;
17、s3:与交织器通信,保证分量编码同步编码,根据所需码率打孔输出,完成数据复接;
18、s4:译码过程中,进行软判决修正;
19、s5:进行误码识别直至迭代译码终止。
20、根据本发明优选的,随机交织;包括:
21、s11:进行带有查找表、取模、乘法、整除、加法、减法运算的地址映射得到中间变量i(x);
22、s12:结合中间变量i(x),根据输出地址的奇偶性,采取相反的输入输出映射法;
23、s13:通过双口ram根据写地址表达式顺序写入信息,采用写入地址寄存器,令写入地址遍历0~l-1,l为双比特的交织长度,预留无效写地址;写入结束时,令写入地址无效、读使能信号有效;
24、s14:通过双口ram乱序读出信息,采用少位数的读出地址寄存器,令x遍历0~l-1,则ram中地址为i(x)的数据依据输入输出映射法被读出,得到第二个成员码输入。
25、进一步优选的,步骤s11中,地址映射得到中间变量i(x)的具体方法为:
26、i(x)=[s(x mod n)-(x div n)×n+l]mod l
27、其中,s为查找表;n为查找表长度;mod为模运算;div为整除运算;l为双比特的交织长度;x=0,1,…,l-1;
28、步骤s12中,结合中间变量i(x),根据输入信息位的奇偶性,采取相反的输入输出映射法;映射法具体为:
29、
30、其中,data为随机交织的输入;intdata为随机交织的输出;
31、步骤s12中,随机交织的输出地址为偶数,则交织后的2比特信息高低位进行交换,其中,输出地址以2比特为一个单位,在数值上等于变量x;
32、根据本发明优选的,分量编码;包括:
33、s21:设置状态寄存器初始状态为[0,0,0];
34、s22:输入信息比特至2个分量编码器,直至最后一位,得到编码结束的末状态,同时暂存数据;
35、s23:令首次编码的末状态与矩阵[0 0 1;1 0 1;1 1 1]相乘得到正式编码的初状态;
36、s24:读出暂存数据,再次编码,实现咬尾终止,并得到校验位;
37、s25:由编码架构推知状态寄存器每一位和校验码的表达式;
38、s26:确定包含八状态和2比特输入的状态转移表;
39、s27:编写mealy状态机,将输出译码部分用并行选择电路表达,将状态译码部分用优先级选择电路表达;
40、s28:实现输入数据暂存,在确定ram/寄存器深度时适当留有裕量,在滤除无效信号后完成输出;
41、s29:通过首次编码、矩阵运算、二次编码实现咬尾终止,将状态寄存器每一位的表达式转化为矩阵形式,并扩展到二次编码的情形,得到确定二次编码初状态的映射公式与查找表。
42、进一步优选的,步骤s25中,由q/gdw 11612.41—2018中的编码架构推知的t时刻状态寄存器每一位的表达式具体为:
43、
44、其中,s表示状态寄存器某一位,u表示输入信息的某一位;x0表示校验位;
45、进一步优选的,步骤s27中,编写mealy状态机,其中,输出译码部分,当结束首次编码开始二次编码的标志到来后,使用assign语句进行赋值,输出译码公式具体为:
46、parity=(cnt=l+1and rst and count<l)?a:0
47、a=(s0=a0 or s0=a1 or s0=a2 or s0=a3)?b:c
48、b=(ib_keep=01or ib_keep=10)?1:0
49、c=(s0=a4 or s0=a5 or s0=a6 or s0=a7)?d:0
50、d=(ib_keep=00or ib_keep=11)?1:0
51、其中,parity是输出校验位;cnt=l+1and rst and count<l是结束首次编码开始二次编码的标志;s0是二次编码时状态寄存器的现态;ib_keep是暂存的输入信息比特;and表示与逻辑;or表示或逻辑;a0、a1、a2、a3、a4、a5、a6、a7代表状态寄存器的8个状态;
52、编写mealy状态机,其中,状态译码公式具体为:
53、sn_prime=(ib_keep=00)?w:(ib_keep=01)?x:(ib_keep=10)?y:z
54、其中,sn_prime是二次编码时状态寄存器的次态;对于每个现态s0,w、x、y、z为状态转移示意表对应行的4个次态;
55、对于首次编码,将s0改为首次编码时状态寄存器的现态state、sn_prime改为首次编码时状态寄存器的次态sn。
56、进一步优选的,步骤s28中,数据暂存公式具体为:
57、data_ram[cnt]=input_bits,cnt=0,1,…,l
58、ib_keep=data_ram[count+1],count=0,1,…,l-1
59、其中,cnt为写数据计数器;count为读数据计数器;ib_keep是暂存后再次进入编码器的信息比特;data_ram是存储输入数据的寄存器,宽度为2,深度为l+1。
60、进一步优选的,步骤s29中,将t时刻状态寄存器每一位的表达式转化为矩阵表达式具体为:
61、
62、st=st-1a^utb
63、s0=(0 0 0)
64、p0=stm
65、pt=pt-1a^utb
66、p0=pt
67、其中,s表示状态寄存器的3位;u表示输入信息的2位;a、b对应第一个式子的2个中间矩阵;p表示二次编码时状态寄存器的3位;m是用于确定二次编码时状态寄存器初状态的矩阵;
68、遍历每个可能的首次编码末状态,人工计算二次编码初状态,映射公式具体为:
69、s0_prime=q(m)
70、其中,s0_prime表示二次编码时状态寄存器的初态;m表示首次编码末状态。
71、根据本发明优选的,删余复接,包括:
72、s31:判断删余是否被允许;
73、s32:若是,对两路校验位进行删余与交替排列,否则,输出0;
74、s33:若删余结束,利用计数次数上限为2倍交织长度的计数器,将128比特系统码和128比特校验码复接,否则,输出0。
75、进一步优选的,步骤s31中,通过两个标志位判断删余是否已开始且未结束。
76、进一步优选的,步骤s32中,若允许删余,通过位拼接将两路1比特信息合并为2比特后输出;否则,输出0。
77、进一步优选的,步骤s33中,128比特系统码和128比特校验码先后复接的公式具体为:
78、out=(d_over=1)?f:0
79、f=(cnt<l)?mid1[cnt]:mid[cnt-l]
80、其中,d_over=1表示删余已结束,复接开始;cnt<l对应输出系统位,反之对应输出校验位;mid1是暂存原输入数据的寄存器;mid是暂存删余后的校验位数据流的寄存器;cnt是用于复接的8位reg型计数器,复接开始后,每当时钟上升沿到来即自增1,否则保持,从而遍历mid1和mid中的所有元素。
81、根据本发明优选的,帧同步控制,包括:
82、s31-1:原始信息m写入随机交织时,同时把m写入mid1寄存器;
83、s32-2:若随机交织内部ram的读出标志到来,将m读出送给不经过随机交织的分量编码器;与此同时,随机交织的输出产生并通过wire型变量送给经过随机交织的分量编码器,使分量编码器产生标志位;
84、s33-3:若允许删余标志到来,将送来的校验码数据流写入mid寄存器;
85、s34-4:若删余结束,开始0~127的单次计数,读出原始信息和校验码完成复接。
86、根据本发明优选的,进行软判决修正,包括:
87、s41:为软输出信息设置上下限;
88、s42:取最佳的阈值,引入适用于实数的根式函数,分段修正软输出信息;
89、s43:引入tansig神经元,选取合适的权重,修正每次迭代中的外信息。
90、进一步优选的,步骤s41中,取输出阈值,对软输出信息限幅,公式具体为:
91、l_all(t)=[|l_all(t)|>|l_th|]?l_th:l_all(t),t=1,2,…,l_tot
92、其中,l_all(t)是对数似然函数;l_th是软输出阈值;l_tot是帧长;||表示取绝对值。
93、进一步优选的,步骤s42中,取最佳的l_th,引入适用于实数的软输出信息修正函数,公式具体为:
94、
95、其中,l_th是最佳的软输出阈值;h(x)即修正后的l_all(t),是长度等于帧长4l的一维序列,x需遍历该序列的每一位。
96、进一步优选的,步骤s43中,单次迭代中的外信息计算公式具体为:
97、l_e=w1×tansig(w2×l_all-w3×2×rec_s-w4×l_a)
98、其中,l_e为t时刻译码器产生的外信息;l_all为软输出信息;l_a为上次迭代另一个译码器产生的外信息;
99、tansig函数的表达式具体为:
100、
101、rec_s为缩放后的码元,其表达式具体为:
102、rec_s=0.5×l_c×r
103、其中,r为接受序列的系统码元;l_c为通道置信度,其表达式具体为:
104、l_c=4×a×snr×rate
105、其中,a是awgn信道的衰落幅度;snr是信噪比;rate是码率。
106、根据本发明优选的,进行误码识别直至迭代终止,包括:
107、s51:构建原始译码系统、进行软判决修正的译码系统,在一定迭代次数后采集大量2个分量译码器的外信息,求出交叉熵,并贴上分类标签,进行量化;
108、s52:将交叉熵转换为图像并压缩,采用otsu阈值分割算法进行二值化处理;
109、s53:数据集划分成训练集、测试集、交叉验证集;
110、s54:bnn网络搭建,bnn网络包括两层卷积池化层和两层全连接层,使用自定义的权重二值化函数binary_sig、binary_tanh;
111、s55:使用adam训练bnn网络,确定学习率衰减因子,以categorical_crossentropy为损失函数评估bnn网络;
112、s56:用round函数对输出数据四舍六入五取偶,进行误码检测;
113、s57:通过1个标志位,指示译码正确性;通过1个标志位,干预迭代控制。
114、进一步优选的,步骤s51中,在原始译码系统和进行软判决修正的译码系统中,在一定通信环境下,在5次迭代后采集两个分量译码器的外信息l_e1及l_e2,求出交叉熵ce,公式具体为:
115、
116、其中,ep是期望因子。
117、进一步优选的,步骤s54中,bnn网络搭建;
118、卷积层利用binary_sig将权重二值化,其公式具体为:
119、
120、其中,clip(x,a,b)函数将线性函数x限制在a、b之间,取a、b为0、1;round(x)函数对x四舍六入五取偶;stop_gradient(x)函数表示在反向传播中不计算x的梯度;
121、全连接层利用binary_tanh将权重二值化,其公式具体为:
122、binary_tanh=2×binary_sig-1
123、激活函数使用binary_tanh;池化层使用最大池化;扁平层将多维输入数据转化为一维线性形式。
124、进一步优选的,步骤s56中,根据softmax输出层的输出进行误码检测,公式具体为:
125、(err,cor)=[round(a),round(b)]
126、其中,a、b是softmax层的2位输出;err为1,表示译码出错;cor为1,表示译码正确。
127、一种面向hplc-ofdm系统的turbo编码电路设计与turbo译码修正系统,包括:
128、随机交织模块,被配置为:进行随机交织;
129、分量编码模块,被配置为:进行分量编码;
130、删余复接及帧同步控制模块,被配置为:与交织器通信,保证分量编码同步编码,根据所需码率打孔输出,完成数据复接;
131、软判决修正模块,被配置为:译码过程中,进行软判决修正;
132、误码检测反馈模块,被配置为:进行误码识别直至迭代译码终止。
133、本发明的有益效果为:
134、1、提供了随机交织模块的硬件实现方法,节省了逻辑资源;把较长的突发差错离散成随机差错,增强抗突发错误的能力。
135、2、提供了基于状态机的分量编码模块的硬件实现方法,实现编码的咬尾终止,得到系统位和校验位,改善了turbo编码状态归零困难的问题。此外,优化了时序,节省了面积,允许不定态的传播,易于进行高覆盖率的验证。通过在发送端进行错误控制编码,可在接收端实现误差检测和纠正,从而提高数字通信可靠性。
136、3、提供了删余复接及帧控制模块的硬件实现方法,实现与交织器的通信,保证分量编码模块同步编码,接着根据所需码率打孔输出,最后完成数据复接。改善了turbo编码帧同步不够精确的问题。
137、4、设计了软判决修正模块,引入修正函数和tansig神经元,按合理规则缩小软输出信息和外信息,提高sova译码过程中软判决的精准度。
138、5、设计了误码检测反馈模块,利用低资源占用的bnn网络检测并提示迭代过程中可能的译码错误,将错误信息反馈给分量译码器,实现无效迭代的提前终止,提高译码效率。
1.一种面向hplc-ofdm系统的turbo编码电路设计与turbo译码修正方法,其特征在于,包括:
2.根据权利要求1所述的一种面向hplc-ofdm系统的turbo编码电路设计与turbo译码修正方法,其特征在于,随机交织;包括:
3.根据权利要求1所述的一种面向hplc-ofdm系统的turbo编码电路设计与turbo译码修正方法,其特征在于,分量编码;包括:
4.根据权利要求3所述的一种面向hplc-ofdm系统的turbo编码电路设计与turbo译码修正方法,其特征在于,步骤s25中,由q/gdw 11612.41—2018中的编码架构推知的t时刻状态寄存器每一位的表达式具体为:
5.根据权利要求1所述的一种面向hplc-ofdm系统的turbo编码电路设计与turbo译码修正方法,其特征在于,删余复接,包括:
6.根据权利要求5所述的一种面向hplc-ofdm系统的turbo编码电路设计与turbo译码修正方法,其特征在于,步骤s31中,通过两个标志位判断删余是否已开始且未结束;
7.根据权利要求1所述的一种面向hplc-ofdm系统的turbo编码电路设计与turbo译码修正方法,其特征在于,帧同步控制,包括:
8.根据权利要求1所述的一种面向hplc-ofdm系统的turbo编码电路设计与turbo译码修正方法,其特征在于,进行软判决修正,包括:
9.根据权利要求1所述的一种面向hplc-ofdm系统的turbo编码电路设计与turbo译码修正方法,其特征在于,进行误码识别直至迭代终止,包括:
10.一种面向hplc-ofdm系统的turbo编码电路设计与turbo译码修正系统,其特征在于,包括: