Abstract
The present disclosure provides a method for optimizing a protograph-based LDPC code over an underwater acoustic (UAW) channel. The traditional protograph-based LDPC code over an UAW channel does not consider performance in an error floor region. The method first determines parameters such as a protograph-based LDPC code length, a basic protograph, a target decoding threshold, a threshold adjustment factor, and an ACE check parameter. The protograph is optimized, and the method constructs a parity check matrix by using a UAW channel-based PEG/ACE hybrid algorithm, performs ACE check on the parity check matrix, and calculates a decoding threshold for the matrix passing the check. If the decoding threshold is within a range of an iterative decoding threshold, the parity check matrix is a final optimized matrix. Otherwise, the method continues to optimize the protograph until a parity check matrix passing the check is obtained.
Claims
1. (Current amended) A method for optimizing a protograph-based low-density parity-check (LDPC) code over an underwater acoustic (UWA) channel, comprising: step (1): constructing an UWA channel transfer function based on an eigenray model: a channel is represented by a linear time-invariant finite impulse response filter, and z-transform for finite impulse response is: H(z)=Σ.sub.i=1.sup.LA.sub.l×z.sup.−τ.sup.l, wherein L denotes the number of multipaths of the channel in a symbol duration, A.sub.l is a signal amplitude of the l-th multipath, τ.sub.l is a relative signal delay of the l-th multipath, and l=1, 2, . . . , L; and determining, based on a basic protograph B and an LDPC code length N, first-extension times T.sub.1 and second-extension times T.sub.2 of the protograph, wherein the basic protograph B is an m×n matrix, and each row of the matrix corresponds to one check node, and there are a total of m check nodes; each column of matrix B corresponds to one variable node, and there are a total of n variable nodes; element B.sub.i,j represents a quantity of edges between the i-th check node and the j-th variable node, i=1,2, . . . , m and j=1,2, . . . , n; a value of T.sub.1 is set to be greater than or equal to a maximum value of elements in the matrix of the basic protograph is set to a minimum value among integers; and wherein the eigenray model takes propagation of sound waves as propagation of countless rays perpendicular to an isophase plane, wherein each ray is perpendicular to the isophase plane, and the ray is an eigenray; it is assumed that a sound velocity and an refractive index do not change horizontally, but are only a function of sea depth; sea surface and seabed interfaces are assumed to be flat interfaces; positions of a sound source and a reception point are static and unchanged; a sound field is determined by the eigenray; and an entire UWA channel is taken as a network system; step (2): selecting two variable nodes for the first optimization: rearranging n variable nodes in the basic protograph B in descending order of column weights, to obtain a rearranged protograph B, wherein the column weight is the sum of values of m elements constituting a variable node; one of the variable nodes to be optimized is a variable node with a largest column weight in B, and a sequence number of the variable node is j.sub.a=1; the other variable node to be optimized is a variable node with the smallest column weight among variable nodes with a column weight greater than 2, and a sequence number of the variable node is j.sub.b; and j.sub.b>j.sub.a; step (3): among m elements of the variable node numbered j.sub.b subtracting 1 from a value of element B.sub.i,j.sub.b with a maximum value, to reduce the column weight of the variable node numbered j.sub.b wherein iε(1, m); among m elements of the variable node numbered j.sub.a, adding 1 to a value of element B.sub.i,j.sub.a, to keep a row weight of the i-th check node c.sub.i unchanged and increase the column weight of the variable node numbered j.sub.a, wherein the row weight is the sum of values of n elements constituting a check node; and a matrix with the values of the element B.sub.i,j.sub.b and the element B.sub.i,j.sub.a changed is an optimized protograph {tilde over (B)}; step (4): if j.sub.a+1≥j.sub.b−1, rearranging n variable nodes in the optimized protograph {tilde over (B)} in descending order of column weights, repeating steps (2) and (3) until j.sub.a+1<j.sub.b−1, and then performing step (5); step (5): replicating check nodes and variable nodes in the optimized protograph {tilde over (B)} in step (4) for T.sub.1 times, and generating a transition graph B′ by using a traditional progressive edge growth (PEG) algorithm, wherein the transition graph B′ is an m′×n′ matrix, m′=T.sub.1×m, and n′=T.sub.1×n, step (6): replicating check nodes and variable nodes in the transition graph B′ for T.sub.2 times, to obtain a derived graph matrix H; and interleaving all edges of H by using a UWA channel-based traditional PEG/approximate cycle extrinsic message degree (ACE) hybrid construction algorithm, to generate a parity check matrix H′; step (7): performing ACE check on rings in which all variable nodes v.sub.j′in the parity check matrix H′ are located: if H′ does not pass the ACE check, using variable nodes numbered j′.sub.a and j′.sub.b in B′ as two variable nodes for the next optimization, and performing step (3), wherein j′.sub.a=j.sub.a+1, and j′.sub.b=j.sub.b−1; if H′ passes ACE check, performing step (8); step (8): calculating a decoding threshold γ′ for an optimized codeword by using an extrinsic information transfer chart algorithm of a finite-length protograph-based LDPC code over the UWA channel: if |γ−γ′|≥η, using the variable nodes numbered j′.sub.a and j′.sub.b in B′ as two variable nodes for the next optimization, and performing step (3), wherein γ is a target decoding threshold, η is a threshold adjustment factor, j′.sub.a=j.sub.a+1, and j′.sub.b=j.sub.b−1; if |γ−γ′|<η, performing step (9); step (9): obtaining a final optimized parity check matrix H=H′; and step (10): transmitting a transmission signal comprising an optimized encoded data using the final optimized parity check matrix H.
2. The method for optimizing the protograph-based LDPC code over the UWA channel according to claim 1, wherein the UWA channel-based PEG/ACE hybrid algorithm in step (6) is as follows: (6-1): calculating a column weight w.sub.j′of each variable node v.sub.j′ in H, wherein j′=1, 2, . . . , N, and rearranging the variable nodes in ascending order of column weights to obtain a rearranged derived graph H, wherein H is an M×N matrix, and (6-2): adding L virtual check nodes (c′.sub.1, c′.sub.2, . . . , c′.sub.L) to H, and adding two virtual edges (v.sub.j′, c′.sub.l) and (v.sub.j′−τ.sub.l, c′.sub.l) related to the variable node v.sub.j′for any virtual check node c′.sub.l, that is, adding 2L virtual edges in total, wherein L denotes the number of multipaths of the channel in a symbol duration, and l=1, 2, . . . , L. (6-3): for v.sub.j′, generating w.sub.j′, generated edges e.sub.k, wherein k=1, 2, . . . , w.sub.j′and the generating process is as follows: taking v.sub.j′as a root node, extending a path tree R.sub.j′, based on the 2L virtual edges, wherein the path tree R.sub.j′extends to layer d at most, d is a maximum number of layers that the path tree extends, and a set of candidate check nodes is C=N.sub.j′.sup.(d); N.sub.j′.sup.(d) represents a set of check nodes in the path tree R.sub.j′, N.sub.j′.sup.(d) is a complement of N.sub.j′.sup.(d), N.sub.j′.sup.(d)=V.sub.c\N.sub.j′.sup.(d), and V.sub.c is a set of check nodes in H that are allowed to be connected to v.sub.j′; calculating an ACE value of a ring generated by edges (v.sub.j′, c.sub.p) connecting candidate check nodes c.sub.p in C and v.sub.j′, wherein the ACE value of the ring is the sum of ACE values of all variable nodes on the ring, and an ACE value of a variable node is a column weight of the variable node minus 2; and reserving an edge (v.sub.j′, c.sub.maxp) connecting a candidate check node c.sub.maxp with the largest ACE value of the ring and v.sub.j′as the generated edge e.sub.k, and deleting other connected edges; (6-4): deleting all virtual check nodes and virtual edges; and (6-5): repeating (6-2) to (6-4) until the generated edges of all variable nodes in H are generated, to obtain the parity check matrix H′.
3. The method for optimizing the protograph-based LDPC code over the UWA channel according to claim 1, wherein the ACE check method for the ring in which any variable node v.sub.j′is located in step (7) is as follows: (7-1): performing initialization: making all check nodes and all variable nodes except v.sub.j′in the parity check matrix H′ satisfy ρ(μ.sub.t)=∞, wherein μ.sub.t represents all check nodes and all variable nodes except v.sub.j′in the parity check matrix H′, ρ(μ.sub.t) is an ACE value of a path (v.sub.j′, μ.sub.t) , an ACE value of a path is equal to the sum of ACE values of all variable nodes in the path, and ρ(v.sub.j′) is equal to an ACE value ACE(v.sub.j′) the variable node v.sub.j′; (7-2): taking v.sub.j′as a root node, extending a path tree R′.sub.j′, wherein the path tree R′.sub.j′extends to layer d.sub.ACE at most; (7-3): finding a child node set Ch(w.sub.s) for any node w.sub.s with a depth of d′ in the path tree R′.sub.j′, wherein 0≤d′≤d.sub.ACE; each node in Ch(w.sub.s) satisfies w.sub.s′∈Ch(w.sub.s); and if ρ(w.sub.s)+ρ(w.sub.s′)−ACE(v.sub.j′)<ε, the check fails, or if ρ(w.sub.s)+ρ(w.sub.s′)−ACE(v.sub.j′)≥ε,step (7-4) is performed, wherein ε represents an ACE check parameter; (7-4) if ρ(w.sub.s)+ACE(w.sub.s′)≥ρ(w.sub.s′) deleting a path (w.sub.s, w.sub.s′) from the path tree R′.sub.j′; if ρ(w.sub.s)+ACE(w.sub.s′)+ACE(w.sub.s′)<ρ(w.sub.s′) setting ρ(w.sub.s′)=ρ(w.sub.s)+ACE(w.sub.s′), wherein ACE(w.sub.s′) is an ACE value of the node w.sub.s′; and (7-5): repeating steps (7-3) and (7-4) until there is no check failure for nodes at all depths in the path tree R′.sub.j′, indicating that the check is successful.
Description
BRIEF DESCRIPTION OF DRAWINGS
(1) FIG. 1 is a flowchart for a method according to the present disclosure.
(2) FIG. 2 is a comparison diagram showing bit error rates for protograph-based LDPC codes with codewords optimized and unoptimized according to an embodiment.
DETAILED DESCRIPTION OF THE EMBODIMENTS
(3) The specific embodiments of the present disclosure and achieved performance are described below in conjunction with the accompanying drawings.
(4) As shown in FIG. 1, taking a protograph-based LDPC code with a code length of N=1024 as an example, a method 100 for optimizing a protograph-based LDPC code over a UAW channel includes the following steps.
(5) (1). At block 102, assuming that a UAW channel transfer function is H(z)=1+0.263112z.sup.−7+0.151214z.sup.−39+0.391599z.sup.−67, L=4, a basic protograph is an m×n matrix, m=4 and n=8, that is,
(6)
set T.sub.1 to be greater than or equal to a maximum value 3 of elements in the matrix of the basic protograph B, where
(7)
is a minimum value among integers, that is, T.sub.1=4, and
(8)
(9) (2). At block 104, rearrange eight variable nodes in the basic protograph B in descending order of column weights, to obtain a rearranged protograph
(10)
where one of variable nodes to be optimized is a variable node with a largest column weight in B, and a sequence number of the variable node is j.sub.a=1; the other variable node to be optimized is a variable node with a smallest column weight among variable nodes with a column weight greater than 2, and a sequence number of the variable node is j.sub.b=4.
(11) (3). Among four elements of the variable node numbered j.sub.b=4, subtract 1 from a value of element B.sub.4,4 with a maximum value; and among four elements of the variable node numbered j.sub.a=1, add 1 to a value of element B.sub.4,1, to obtain an optimized protograph {tilde over (B)}:
(12)
(13) (4). If j.sub.a+1<j.sub.b−1, perform step (5).
(14) (5). Replicate check nodes and variable nodes in the optimized protograph {tilde over (B)} for four times, and generate a transition graph B′ by using a traditional PEG algorithm, where the transition graph B′ is an m′×n′ matrix, m′=16, and n′=32.
(15) (6). At block 106, replicate check nodes and variable nodes in the transition graph B′ for T.sub.2 times, to obtain a derived graph matrix H; rearrange all variable nodes in H in ascending order of column weights to obtain a rearranged derived graph {tilde over (H)}, where {tilde over (H)} is an M×N matrix, M=512, and N=1024; and obtain a parity check matrix H′ by using a UAW channel-based traditional PEG/approximate cycle extrinsic message degree (ACE) hybrid construction algorithm.
(16) (7). At block 108, perform ACE check on rings in which all variable nodes v.sub.j′ in the parity check matrix H′ are located, where a maximum number of layers that a path tree extends is d.sub.ACE=3, an ACE check parameter is ε=3, and the rings in which all the variable nodes v.sub.j′ in the parity check matrix H′ are located pass the ACE check.
(17) (8). At block 110, calculate a decoding threshold for an optimized codeword by using an extrinsic information transfer chart algorithm of a finite-length protograph-based LDPC code over a UAW channel, where a target decoding threshold is γ=3 dB a threshold adjustment factor is η=0.5 dB, a calculated threshold is 3.2 dB, and |3 dB-3.2 dB|<0.5 dB, within an allowable range of an iterative decoding threshold.
(18) (9). At block 112, obtain an optimized parity check matrix H=H′. FIG. 2 shows a bit error rate of a codeword constructed using H and a bit error rate of a codeword directly constructed using the unoptimized protograph. It can be seen from the results in FIG. 2 that a coding result obtained by this method in an error floor region is better than that obtained by using the unoptimized protograph-based code.
(19) The content described in the foregoing embodiment is only an example of the implementations of the present disclosure. The protection scope of the present disclosure shall not be limited to the specific forms stated in the embodiments. The protection scope of the present disclosure shall also include similar methods conceived on the basis of the present disclosure.