The present invention generally relates to the field of communication networks. In particular, the present invention relates to a method for implementing a Forward Error Correction (FEC) mechanism having a variable coding rate in a communication network, and to an optical coherent communication system configured to implement this method.
As known, Forward Error Correction (FEC) is a technique for detecting and possibly correcting errors in digital data transmissions between network elements of a digital communication network, e.g. a Wavelength Division Multiplexing (WDM) communication network.
According to FEC, at the transmitting side the digital data to be transmitted are encoded using an error correcting code which adds redundancy. At the receiving side, the redundancy is used to detect, and possibly to correct, errors in the original data.
Different types of error correcting codes are known, including block codes and convolutional codes. In block codes, the digital data to be transmitted are divided into fixed-size blocks of n client bits and each block is separately encoded into a respective codeword of n+k bits by adding k redundancy bits.
A block code is defined by a set of rules for calculating the k redundancy bits starting from the n client bits. For instance, in parity-check codes, each one of the k redundancy bits is calculated as the parity (namely, the modulo-2 addition) of a certain subset of the n client bits, and is therefore also termed “parity bit”. Each rule corresponds to a respective parity check, which basically provides for checking whether the modulo-2 addition of the parity bit and the subset of the n client bits used for calculating it is equal to zero. A codeword is valid only if all the parity checks are satisfied.
A parity-check code may be also expressed in the form of a binary matrix (also termed parity-check matrix) with k rows corresponding to the k parity checks and n+k columns corresponding to the n+k bits of the codeword.
Amongst the parity-check codes, Low-Density Parity-Check (LDPC) codes are known and presently widely used in WDM communication networks. LDPC codes have parity-check matrixes that contain only a very small number of non-zero entities (namely, they are sparse matrixes). The sparseness of the parity-check matrix guarantees both a decoding complexity which increases only linearly with the code length and a minimum distance which also increases linearly with the code length.
LDPC codes are often represented in graphical form by a Tanner graph. A Tanner graph basically consists of a first column of n+k nodes called “variable nodes” and a second column of k nodes called “check nodes”. Each variable node corresponds to a respective codeword bit (either a client bit or a parity bit), while each check node corresponds to a respective parity check. In the graph, codeword bits involved in a certain parity check have their variable nodes joined with the check node of that parity check. This provides an intuitive graphical representation of the parity checks that define the LDPC code.
LDPC codes are typically decoded using iterative algorithms known as “message-passing algorithms”, wherein variable nodes and check nodes act like state machines iteratively exchanging messages and updating their states. Different types of message-passing algorithms are known, which differ for the content of the exchanged messages and for the processing carried out at variable nodes and check nodes.
A particular class of message-passing algorithms is that of the so-called “belief propagation algorithms”, wherein the messages exchanged between a variable node corresponding to a certain codeword bit and the neighboring check nodes comprise probabilities that the codeword bit has the value 1 or 0. The probability of a codeword bit being equal to 1 or 0 is often expressed as a so-called “log likelihood ratio” (or, briefly, LLR), namely:
where p(0) and p(1) are the probabilities that the codeword bit is equal to 0 and to 1, respectively. An LLR>0 indicates that the codeword bit is more probably 0 than 1, while an LLR<0 indicates that the codeword bit is more probably 1 than 0. Besides, LLR=0 indicates that the probabilities that the codeword bit is 1 or 0 are the same. Exemplary belief propagation algorithms making use of LLR are e.g. the “sum-product” algorithm (SPA) and the “min-sum” algorithm (MSA).
According to belief propagation algorithms, each variable node firstly receives as input an a priori probability of its codeword bit, which is provided thereto by a preceding component of the receiver, typically the demodulator. Then, each variable node calculates an a posteriori probability of its codeword bit, which takes into account both the a priori probability and extrinsic information provided by its neighboring check nodes. The a posteriori probability of each codeword bit is gradually refined by iterating a sequence of steps including: transmission of the a posteriori probabilities from the variable nodes to their neighboring check nodes, processing of the received a posteriori probabilities by the check nodes resulting in updated extrinsic information, transmission of the updated extrinsic information from the check nodes to the neighboring variable nodes, and processing of the updated extrinsic information at the variable nodes resulting in updated a posteriori probabilities. After a predefined number of iterations, the algorithm ends and the final value of the a posteriori probabilities may be used for taking a hard decision on (namely, assigning the value 0 or 1 to) the codeword bits.
From the implementation point of view, a message-passing algorithm is typically implemented by a FEC decoder comprising a number of cascaded decoding blocks, one per each iteration of the algorithm. Each decoding block receives from the preceding block the a posteriori probabilities or the extrinsic information calculated at the previous iteration, and calculates new, refined a posteriori probabilities or new, refined extrinsic information. The last decoding block may then pass the a posteriori probabilities to a hard decision block, which takes a hard decision for each codeword bit.
As it is known, in order to reduce the number of iterations needed to make the LDPC decoding converge (and hence to reduce the number of decoding blocks needed at the FEC decoder), layered decoding schemes can be used. Layered LDPC decoding schemes may be either row-layered or column-layered.
According to row-layered LDPC decoding schemes, the message updating at each iteration is performed by scanning the parity-check matrix row by row. In other words, each iteration of the message-passing algorithm is divided into a sequence of k steps, each step comprising the update of the states of a check node and the variable nodes connected thereto.
Besides, according to column-layered LDPC decoding schemes, the message updating at each iteration is performed by scanning the parity-check matrix column by column. In other words, each iteration of the message-passing algorithm is divided into a sequence of n+k steps, each step comprising the update of the states of a variable node and the check nodes connected thereto.
As known, for a parity check code (an in particular, for an LDPC code) a coding rate R may be defined as:
Where n is the number of client bits per codeword and k is the number of parity bits per codeword. The coding rate R may be expressed also as:
where fC=n/T is the client bitrate, fP=k/T is the parity bitrate and fL is the line bitrate defined as fL=fC+fP=(n+k)/T, T being the codeword period. Hence, for a certain client bitrate fC, the higher the parity bitrate fP, the lower the coding rate R and the higher the error detection and correction capability of the code.
Techniques are known for varying the coding rate of an LDPC code, in particular for lowering it from a maximum starting value R0, such as information shortening and code expanding.
According to the known information shortening technique, the coding rate R0 of an LDPC code defined by k0 parity checks calculated on blocks of n0 client bits is reduced to a new value RN by reducing the number of client bits per codeword from n0 to nN<n0, while keeping the number of parity bits equal to k0. To this purpose, codewords are formed that comprise nN client bits and k0 parity bits calculated by applying the k0 parity checks on n0 bits including the nN client bits of the codeword and nN−n0 zeros. The nN−n0 zeroes are not transmitted. At the decoder, an infinite probability is assigned to the nN−n0 variable nodes corresponding to the nN−n0 not transmitted zeroes, and then a belief propagation algorithm as described above is applied in order to detect and correct errors in the nN client bits of the codeword.
According to the known code expanding technique, the coding rate R0 of an LDPC code defined by k0 parity checks calculated on blocks of n0 client bits, is reduced to a new value RN by increasing the number of parity bits per codeword from k0 to kN with kN>k0, while keeping the number of client bits equal to n0. To this purpose, codewords are formed that comprise n0 client bits, k0 parity bits calculated by applying the k0 parity checks on the n0 client bits and kN−k0 further parity bits calculated by applying kN−k0 further parity checks on the n0 client bits.
According to both information shortening and code expanding, therefore, the coding rate R0 of an LDPC code is decreased to a new value RN by introducing a change in the relative size of payload (client bits) and overhead (parity bits) of the codeword. Such change in both cases entails a change in the parity bitrate, which may in turn result in a change of the client bitrate and/or in a change of the line bitrate.
In particular, according to both information shortening and code expanding, the coding rate scales with the client bitrate fC and the parity bitrate fP according to the following equation:
where fC0, fP0 and fL0 are the client bitrate, parity bitrate and line bitrate at the original coding rate R0 (with fL0=fC0+fP0), whereas fCN, fPN and fLN are the client bitrate, parity bitrate and line bitrate at the new, decreased coding rate RN<R0 (with fLN=fCN-+fPN).
The inventors have noticed that in coming generations of devices for optical coherent transmission, optical coherent receivers will be implemented as CMOS devices hosting several client channels—with a typical bitrate of 100 Gbps—in a single monolithic chip (DSP chip).
In order to perform a FEC decoding of each client channel, the DSP chip shall comprise a number of FEC decoders (in particular, LDPC decoders), which represent the major contributors to the computational complexity and power consumption of the entire DSP chip.
On the other hand, the inventors have noticed that a trend in devices for optical coherent transmission is that of providing them with more and more flexibility, meaning that a same DSP chip shall be reconfigurable to operate under different operating conditions, namely with different client bitrates and/or different line bitrates. In particular, the DSP chip shall be capable of adjusting the coding rate R of the FEC code so as to maximize the error detection and correction capability of the FEC code in each operating condition.
In particular, two different scenarios may be envisaged:
Besides, the inventors have noticed that the devices for optical coherent transmission of the coming generation shall be compatible with legacy devices already deployed.
In principle, the above described techniques for varying the coding rate of LDPC codes (information shortening and code expanding) could provide DSP chips for optical coherent transmission with the above flexibility while preserving their interoperability with the legacy devices.
However, the inventors have noticed that implementing a FEC decoder capable of decoding an LDPC code with coding rate variable according to information shortening and/or code expanding involves other issues.
In particular, the inventors have noticed that a FEC decoder implementing a belief propagation algorithm using a row-layered LDPC decoding scheme, for each received codeword performs a sequence of k operations at each iteration of the algorithm, each operation consisting in evaluating a respective row of the parity-check matrix as described above. Thus, the computational complexity of such known row-layered FEC decoder, which is defined as the number of operations per received codeword, can be expressed as:
where T is the codeword period, R is the coding rate of the LDPC code, fC is the client bitrate and fP is the parity bitrate. The complexity therefore basically depends on the parity bitrate.
Hence, the computational complexity of a FEC decoder applying a row-layered decoding scheme to an LDPC code whose coding rate is varied using either information shortening or code expanding scales with the coding rate as follows:
where fC0, fP0 and fL0 are the client bitrate, parity bitrate and line bitrate at the original coding rate R0, whereas fCN, fPN and fLN are the client bitrate, parity bitrate and line bitrate at the new, decreased coding rate RN<R0.
From equation [6] it is apparent that the computational complexity of a FEC decoder applying a row-layered decoding scheme significantly increases as the coding rate is decreased. This is because the computational complexity scales with the parity bitrate, which increases as the coding rate is decreased either by reducing the number of client bits per codeword (information shortening) or by increasing the number of parity bits per codeword (code expanding).
This is schematically depicted in
As a result, applying a row-layered decoding scheme to LDPC codes with low coding rates might be prohibitive for implementation on DSP chips for next generation devices for optical coherent transmission working at up to 1 Tb/s.
In view of the above, it is an object of the present invention to provide a method and an optical coherent communication system for implementing a Forward Error Correction (FEC) mechanism having a variable coding rate, which solve the above drawback.
In particular, it is an object of the present invention to provide a method and an optical coherent communication system for implementing a Forward Error Correction (FEC) mechanism having a variable coding rate, wherein the computational complexity of the FEC decoder is substantially independent of the coding rate and is low enough to allow an implementation of the FEC decoder on a single DSP chip, even at very low coding rates (e.g. 0.5).
According to a first aspect, the present invention provides a method for implementing a FEC mechanism in an optical coherent communication system, the method comprising:
Preferably, step a) comprises reducing the coding rate from a maximum starting value R0, obtained by encoding blocks of n0 client bits into codewords of n0+k0 bits by adding k0 parity bits, to a new value RN<R0, obtained by encoding blocks of nN client bits into codewords of nN+kN bits by adding kN parity bits.
Preferably, step a) comprises reducing the coding rate from the maximum starting value R0 to the new value RN<R0 by reducing the number of client bits per codeword from n0 to nN<n0.
According to preferred variants, step a) comprises applying an information shortening technique.
Preferably, step a) comprises reducing the coding rate from the maximum starting value R0 to the new value RN<R0 by increasing the number of parity bits per codeword from k0 to kN>k0.
Preferably, step a) comprises reducing the coding rate from the maximum starting value R0 to the new value RN<R0 by increasing the number of parity bits per codeword from k0 to kN>k0, and selecting nN and kN so that the number of bits per codeword is kept constant, namely n0+k0=nN+kN.
According to preferred variants, step a) comprises applying a code expanding technique.
Preferably, at step b) the iterative message-passing algorithm is a belief propagation algorithm.
According to a preferred variant, at step b) the belief propagation algorithm is a min-sum algorithm.
Preferably, at step b) the message-passing algorithm comprises a number S≥2 of iterations, each iteration of the message-passing algorithm comprising, for each codeword:
Preferably, at step b) each intermediate iteration of the message-passing algorithm comprises:
Preferably, calculating the updated extrinsic information Lcv(i) comprises, for each one of n+k variable nodes representing a client bit or a parity bit of the codeword in a Tanner graph representing the FEC code:
Preferably, at step b) a last iteration of the message-passing algorithm comprises:
Preferably, calculating the a posteriori probabilities Lv(i) comprises, for each one of n variable nodes representing a client bit of the codeword in the Tanner graph representing the FEC code:
According to a second aspect, the present invention provides an optical coherent communication system comprising:
Embodiments of the invention will be better understood by reading the following detailed description, given by way of example and not of limitation, to be read with reference to the accompanying drawings, wherein:
The communication system CS preferably comprises an optical transmitter TX, an optical coherent receiver RX and an optical link OL connecting the optical transmitter TX and the optical coherent receiver RX.
The optical transmitter TX is preferably configured to transmit a number M of client channels on the optical link OL, e.g. using a WDM (Wavelength Division Multiplexing) technique. For each client channel, the optical transmitter TX preferably comprises a cascade of components including a FEC encoder, a modulator and a laser source. For simplicity, in
The optical coherent receiver RX is configured to receive the M client channels from the optical link OL. For each client channel, the optical coherent receiver RX preferably comprises a cascade of components including an analog unit, an analog-to-digital converter and a digital unit. The digital unit is typically implemented as a DSP chip comprising at least a demodulator and a FEC decoder. For simplicity, in
At the transmitter TX, the FEC encoder FE is configured to apply a FEC code (preferably, an LDPC code) to the stream of client bits to be transmitted on its client channel. The stream of bits (client bits and parity bits) output by the FEC encoder FE is then fed to the modulator cascaded with the FEC encoder FC (not shown in
At the receiver RX, the analog unit (not shown in
By referring again to the FEC encoder FE, the FEC encoder FE is preferably configured to encode blocks of n client bits into codewords of n+k bits by adding k parity bits calculated according to k parity checks. The coding rate of the LDPC coding applied by the FEC encoder FC is therefore R=n/(n+k), as per equation [2] above.
Preferably, the coding rate of the FEC code applied by the FEC encoder FE is adjustable by adjusting the number of client bits per codeword and/or the number of parity bits per codeword. In particular, the coding rate of the FEC code applied by the FEC encoder FE is adjustable in a range having an upper limit R0 by:
Preferably, the reduction of the number of client bits per codeword from n0 to the new value nN<n0 is performed by applying the known information shortening technique. Further, according to preferred embodiments, the increase of the number of parity bits per codeword from k0 to kN>k0 is performed by applying the known code expanding technique.
According to a first embodiment, the codeword rate of the LDPC code applied by the FEC encoder FE is reduced from R0 to RN by reducing the number of client bits per codeword from n0 to the new value nN<n0 by applying the known information shortening technique, without any constraint on the codeword length. The codeword length accordingly varies with the coding rate. In particular, when the coding rate is reduced from R0 to RN by reducing the number of client bits per codeword from n0 to nN, the codeword length is also reduced from (n0+k0) to (nN+k0).
According to this first embodiment, the coding rate may be varied in a range 0.6-0.8. For achieving still lower coding rates, the codeword length shall be kept constant, as it will be described in detail herein after.
As to the FEC decoder FD, it preferably comprises a number S≥2 of cascaded decoding blocks, each block being configured to perform a respective iteration of a message-passing algorithm, preferably a belief propagation algorithm. By way of non limiting example, the FEC decoder FD shown in
All decoding blocks DEC1, DEC2, DEC3 of the FEC decoder FD preferably have a same structure, which is schematically depicted in
The decoding block DECi preferably comprises a channel memory unit CM, a check node memory unit CNM and a processing unit PU.
The channel memory unit CM is preferably unidirectionally connected with the processing unit PU, while the check node memory unit CNM is preferably connected with the processing unit PU according to a feedback configuration.
The channel memory unit CM is preferably connected to a first input and to a first output of the decoding block DECi. The check node memory unit CNM is preferably connected to a second input of the decoding block DECi, while the processing unit PU is connected to a second output of the decoding block DECi.
Under the assumption that the FEC encoder FE is applying an LDPC code providing codewords with n client bits and k parity bits, the decoding block DECi implementing the ith iteration of the decoding algorithm preferably receives from the preceding decoding block:
The decoding block DECi preferably stores the a priori probabilities Iv in the channel memory unit CM and the extrinsic information Lcv(i−1) in the check node memory unit CNM.
Then, if DECi is not the last decoding block of the FEC decoder, its processing unit PU preferably uses the a priori probabilities Iv and the extrinsic information Lcv(i−1) in order to calculate updated extrinsic information Lcv(i) for the codeword bits. The decoding block DECi then preferably sends to the next decoding block:
According to a preferred embodiment, the a priori probabilities, extrinsic information and a posteriori probabilities of the codeword bits are expressed in terms of LLR, and the belief propagation algorithm implemented by the decoding block DECi is the known min-sum algorithm (MSA). Alternatively, the known sum-product algorithm (SPA) may be used.
In order to calculate the updated extrinsic information Lcv(i) or the a posteriori probabilities Lv(i) of the codeword bits, the processing unit PU of the decoding block DECi preferably scans the parity-check matrix defining the LDPC coding applied by the FEC encoder FE column by column.
More particularly, with reference to the flow chart of
Firstly, the processing unit PU preferably identifies the set M(v) of check nodes connected with the variable node vth in the Tanner graph (step 401).
Then, the processing unit PU preferably calculates the content of check-to-variable messages Rcv(i) to be sent from the check nodes of the set M(v) to the variable node vth (step 402). According to a preferred embodiment, the content of the check-to-variable messages Rcv(i) to be sent from check node cth of the set M(v) to the variable node vth is calculated according to the following equation:
where sgn(•) is the sign function, N(c) is the set of variable nodes connected with the check node cth in the Tanner graph, n is an index ranging within the set N(c) and Lcn(i) with n∈EN(n) are the contents of variable-to-check messages (namely, the extrinsic information) sent by the variable nodes of the set N(c) to the check node cth at the ith iteration. If the processing unit PU is performing the first iteration of the decoding algorithm (namely, it is included in the decoding block DEC1), the contents of the variable-to-check messages Lcn(0) to be used at step 402 are preferably initialized at the respective a priori probabilities In, with n ranging in the set of variable nodes N(c) and n#v.
At step 402 the processing unit PU also preferably stores the calculated check-to-variable messages Rcv(i) in the check node memory unit CNM.
Then, if DECi is not the last decoding block of the FEC decoder (403), its processing unit PU preferably calculates the content of variable-to-check messages Lcv(i) (extrinsic information) to be sent from the variable node vth to the check nodes of the set M(v) (step 404). According to preferred embodiments, the content of the variable-to-check messages Lcv(i) to be sent from variable node vth to check node cth of the set M(v) is calculated according to the following equation:
where Iv is the a priori probability of the client bit or parity bit associated with variable node vth, α is a scaling factor, m is an index ranging within the set of check nodes M(v) and Rmv(i) are the contents of the check-to-variable messages sent by the check nodes of the set M(v) to the variable node vth as calculated at step 402.
At step 404 the processing unit PU also preferably stores the calculated extrinsic information Lcv(i) in the check node memory unit CNM.
Otherwise if DECi is the last decoding block of the FEC decoder (403), its processing unit PU preferably calculates an a posteriori probability Lv(i) of the codeword bit associated with the variable node vth (step 405). According to preferred embodiments, the updated a posteriori probability Lv(i) is calculated according to the following equation:
Steps 401-405 are preferably iterated for each variable node of the Tanner graph, namely for each single bit of the codeword, independently of whether it is a client bit or a codeword bit. Hence, steps 401-405 are iterated n+k times, starting from an initial value 1 of the index v (step 400) and increasing it (step 406) until v=n+k (step 407).
Then, the algorithm iteration performed by the decoding block DECi ends. At the end of the algorithm iteration performed by the decoding block DECi, updated extrinsic information Lcv(i) (intermediate decoding block) or a posteriori probability Lv(i) (last decoding block) have been calculated by the processing unit PU for each codeword bit.
If DECi is not the last decoding block of the FEC decoder, the decoding block DECi may then send the calculated extrinsic information Lcv(i) of the codewords bits to the next decoding block, which processes them by performing a further algorithm iteration similar to that shown in
If the decoding block DECi is instead the last decoding block of the FEC decoder (see block DEC3 in
As mentioned above, according to the first embodiment the coding rate of the LDPC code applied by the FEC encoder FE may be decreased from R0 to a lower value RN by reducing the number of client bits per codeword from n0 to nN using the known information shortening technique.
As to FEC decoder FD, the number of operations to be computed for each received codeword by each decoding block DECi (namely, at each iteration of the belief propagation algorithm) equals n+k, namely the number of codeword bits, each operation corresponding to a respective column of the parity-check matrix. The FEC decoder FD is therefore advantageously agnostic of the ratio between number of client bits and number of parity bits in the codewords and its variations related to changes in the coding rate.
Hence, the FEC decoder FD may be advantageously adapted to work at any coding rate with few changes in its configuration, without the need to change hardware and without any change in its power consumption.
In particular, as the coding rate is reduced from R0 to RN, in order to reconfigure the FEC decoder FD to operate at the new coding rate RN, in each decoding block DECi the addressing of the channel memory unit CM by the processing unit PU shall be changed as a function of the new codeword length, so that the processing unit PU may properly retrieve therefrom the a priori probabilities of each received codeword. On the other hand, in fixed client bitrate scenarios, as the coding rate is reduced from R0 to RN, the processing frequency of the processing unit PU adapts to the new line bitrate. As to the check node memory unit CNM of each decoding block DECi, its length depends exclusively on the number k of parity checks, and thus it does not change when the coding rate is reduced using the information shortening technique. Advantageously, these are the only changes needed in the configuration of the FEC decoder FD in order to enable it working at different coding rates.
As to the computational complexity of the FEC decoder FD, it can be expressed as:
where T is the codeword period, R is the coding rate of the LDPC code, fC is the client bitrate and fL is the line bitrate. The complexity of the FEC decoder FD therefore advantageously depends on the line bitrate fL.
Hence, as the coding rate is reduced from its maximum value R0 to RN using information shortening, the computational complexity of the FEC decoder FD scales with the coding rate as follows:
where fC0 and fL0 are the client bitrate and line bitrate at the original coding rate R0, whereas fCN and fLN are the client bitrate and line bitrate at the new, decreased coding rate RN<R0.
From equation [11] it is apparent that the computational complexity of the FEC decoder FD is independent or weakly dependent of the coding rate. This is because the computational complexity scales with the line bitrate fL, which is independent of the coding rate in fixed line bitrate scenarios and is weakly dependent of the coding rate in fixed client bitrate scenarios.
In particular, in scenarios where the client bitrate fC is fixed, the increase of the parity bitrate fP due to the decrease of the coding rate from R0 to RN results in an increased line rate from fL0 to fLN. However, when the coding rate is decreased from R0 to a certain value RN, the line bitrate fL is affected much less than the parity bitrate fP. Hence, by comparing equation [6] with equation [11], it is apparent that the computational complexity of the FEC decoder FD depends on the coding rate much more weakly than a row-layered FEC decoder.
In scenarios where the line rate fL is fixed (as in
Moreover, it shall be noticed that the calculation of check-to-variable messages and variable-to-check messages shown in
Therefore, in addition to having a computational complexity which weakly scales (or does not scale at all, if the line bitrate fL is fixed) with the coding rate, the FEC decoder FD also exhibits a computational complexity whose absolute value is comparable to that of a row-layered FEC decoder.
In the embodiment described above, the coding rate is reduced from R0 to RN by reducing the number of client bits per codeword from n0 to nN with no constrains on the resulting codeword length, which accordingly decreases from n0+k0 to nN+k0. The Applicant has noticed that this allows varying the coding rate in a range 0.6-0.8. However, for obtaining still lower coding rates (lower than 0.6, e.g. 0.5), the codeword length becomes short and some known limitations of the decoder performance (coding gain) inherent to the use of short codewords arise.
In order to reach coding rates lower than 0.6 while overcoming such limitations, according to a second embodiment of the present invention the coding rate of the LDPC code applied by the FEC encoder FE at the transmitter TX is varied while keeping the codeword length constant.
At this purpose, according to the second embodiment, the coding rate is adjusted by combining a reduction of the number of client bits per codeword from n0 to nN and an increase of the number of parity bits per codeword from k0 to kN, with the constraint that n0+k0=nN+kN.
Preferably, the number of client bits per codeword is reduced by applying the known information shortening technique, while the number of parity bits per codeword is increased by applying the known code expanding technique.
The FEC decoder according to the second embodiment has the same structure as the FEC decoder FD shown in
Therefore, also according to the second embodiment, FEC encoding with variable coding rate is combined with a FEC decoding evaluating the parity-check matrix column by column. Since the number of columns in the parity-check matrix depends on the codeword length, when the coding rate is changed while keeping the codeword length fixed the FEC decoder performs exactly the same number of operations per codeword period, at each iteration of the decoding algorithm. Hence, also according to the second embodiment the complexity of the FEC decoder scales with the coding rate as per equation [11] above.
Also this second embodiment may be applied either at a fixed line rate scenario or to a fixed client bitrate scenarios.
Number | Date | Country | Kind |
---|---|---|---|
16305774.8 | Jun 2016 | EP | regional |
Filing Document | Filing Date | Country | Kind |
---|---|---|---|
PCT/EP2017/059393 | 4/20/2017 | WO | 00 |