1. Statement of the Technical Field
The invention concerns communications systems comprising encoders and decoders. More particularly, the invention relates to maximum a posteriori decoders implementing an improved technique for performing maximum a posteriori probability decoding.
2. Description of the Related Art
Convolutional codes are commonly used in communications systems to reduce errors in transmission. Likewise, various decoding algorithms are known that can be used for decoding such convolutional codes at a data receiver. One such known type of decoding algorithm is the maximum a posteriori (MAP) decoder. Conventional MAP decoders are often comprised of a branch metric unit, a forward path metric unit, a backward path metric unit, a memory device and an extrinsic computation unit. The branch metric unit is generally configured to generate branch metric values for symbols contained in the received encoded information. The branch metric values are generated by calculating the likelihood that a symbol of the received encoded information resulted from each symbol in a code alphabet. The branch metric unit is also configured to perform this computation for each symbol of the received encoded information and alphabet symbol combination. The branch metric unit is further configured to communicate the branch metric values M0, M1, . . . , MN−1 to the memory device for temporary storage.
The forward path metric unit is configured to access the memory device and retrieve the branch metric values M0, M1, . . . , MN−1 from the memory device. Similarly, the backward path metric unit is configured to access the memory device and retrieve the branch metric values MN−1, MN−2, . . . , M0. It should be noted that each of the branch metric units is comprised of a normalization device. The normalization device is configured to normalize the branch metric values input into the respective branch metric unit. Normalization devices are well known to persons skilled in the art, and therefore will not be described in great detail herein. However, it should be understood that the term “normalize” as used herein refers to a scaling of a branch metric value by subtracting a constant value from the branch metric value. It should also be understood that the normalization is performed to: (a) ensure that the branch metric values fall within a pre-defined range of values; and (b) ensure that output of the path metric unit also falls within the quantization limits (i.e., a pre-defined range of values) of the MAP decoder implementation. Quantization limits are well known to persons skilled in the art, and therefore will not be described in great detail herein.
The path metric units are also configured to produce output probability values by consolidating the branch metric values along a constrained set of trellis paths. The output probability values represent the probability that the encoding process arrived at a given state during a given stage. The path metric units are also configured to communicate the output probability values to the memory device for temporary storage.
The extrinsic computation unit is coupled to the memory device. The extrinsic computation unit is configured to retrieve the branch metric values M0, M1, . . . , MN−1 and the output probability values from the memory device. The extrinsic computation unit is also configured to produce MAP output values by combining the branch metric values M0, M1, . . . , MN−1 and output probability values. The MAP output values include decoded information bits. Accordingly, the MAP output values are the same as or substantially similar to the information bits encoded by the encoder.
Despite the advantages of the above described MAP decoder, it suffers from certain drawbacks. For example, the MAP decoder is hardware intensive. In this regard, it should be noted that the branch metric units are comprised of normalization devices. The normalization devices are provided to maintain the outputs of the path metric units within the quantization limits of the MAP decoder implementation. It should also be noted that the MAP decoder requires a relatively large amount of memory to store the branch metric values M0, M1, . . . , MN−1 and output probability values.
In view of the forgoing, there is a need for a MAP decoder that is less hardware intensive than conventional MAP decoders. More specifically, there is a need for a MAP decoder that does not require normalization of the information input thereto. There is also a need for a MAP decoder that requires less memory resources as compared to conventional MAP decoders.
A method is provided for performing a maximum a posteriori probability decoding of a sequence R(n) including N bits of encoded data. The method includes the step of generating a sequence rn by processing the sequence R(n). The sequence rn includes a plurality of soft-decision values that comprise information about the N bits of encoded data. The method also includes a forward recursion step and a backward recursion step. The forward recursion step involves computing alpha values αS,k+1 utilizing the soft-decision values. Each alpha value is a relative log-likelihood defined as the log-likelihood of an encoding process arriving at a given state Sx during a stage k+1 relative to a log-likelihood of the encoding process arriving at another state Sy during the stage k+1. The forward recursion step also involves computing the alpha values α′S,k+1 utilizing previously computed alpha values α′S,k. The forward recursion step further involves computing each alpha value utilizing at least one of the soft-decision values. Each soft-decision value is a log-likelihood of an output from an encoder having a value equal to one on a transition from a stage k to the stage k+1.
The backward recursion step involves computing beta values β′S,k utilizing the soft-decision values. Each beta value is a relative log-likelihood defined as a log-likelihood of the encoding process arriving at a given state Sz during the stage k relative to a log-likelihood of the encoding process arriving at another state Sw during the stage k. The backward recursion step also involves computing the beta values β′S,k utilizing previously computed beta values β′S,k+1. The backward recursion step further involves computing each beta value utilizing at least one of the soft-decision values. Each soft-decision value is a log-likelihood of an output from an encoder having a value equal to one on a transition from a stage k to the stage k+1.
The method further includes the step of computing probability values p′k utilizing the alpha values α′S,k+1 and beta values β′S,k. Each probability value indicates the likelihood that a data bit of an input sequence dK had a value equal to zero or one. It should be noted that the sequence R(n) represents an encoded form of the input sequence dK. The method also involves determining data bit values for each data bit of the input sequence dK utilizing the probability values p′k. Each data bit value is a hard decision bit value taken on the probability values p′k.
A decoder is also provide for performing a maximum a posteriori probability decoding of a sequence R(n) including N bits of encoded data. The decoder is comprised of a forward path metric unit, a backward path metric unit and an extrinsic computation unit. The forward path metric unit is configured to receive soft-decision bits of a sequence rn in a pre-defined order. The forward path metric unit is also configured to compute alpha values α′S,k+1 utilizing the soft-decision bits. Each alpha value is a relative log-likelihood defined as a log-likelihood of an encoding process arriving at a given state Sx during a stage k+1 relative to a log-likelihood of the encoding process arriving at another state Sy during the stage k+1. The forward path metric unit is further configured to compute the alpha values α′S,k+1 utilizing previously computed alpha values α′S,k. The forward path metric unit is configured to compute each alpha value utilizing at least one of the soft-decision bits.
The backward path metric unit is configured to receive the soft-decision bits in a second order which is reverse from the pre-defined order. The backward path metric unit is also configured to compute beta values β′S,k utilizing the soft-decision bits. Each beta value is a relative log-likelihood defined as a log-likelihood of the encoding process arriving at a given state Sz during a stage k relative to a log-likelihood of the encoding process arriving at another state Sw during the stage k. The backward path metric unit is further configured to compute the beta values β′s,k utilizing previously computed beta values β′s,k+1. The backward path metric unit is configured to compute each beta value utilizing at least one of the soft-decision bits.
The extrinsic computation unit is configured to compute p′k utilizing the alpha values α′S,k+1 and beta values β′S,k. Each probability value indicates a probability that a data bit of an input sequence dK had a value equal to zero or one. The decoder is further comprised of a means configured for determining data bit values for each data bit of the input sequence dK utilizing the probability values p′k. Each data bit value is a hard decision bit value taken on the probability values p′k.
A machine-readable medium is further provided. The machine-readable medium has stored thereon instructions, which when executed by a machine, cause the machine to perform operations. The operations include generating a sequence rn by processing a sequence R(n) containing N bits of encoded data. The sequence rn includes soft-decision values that comprise information about the N bits of encoded data. The operations also include performing a forward recursion. The forward recursion involves computing alpha values α′S,k+1 utilizing the soft-decision values. Each alpha value is a relative log-likelihood defined as a log-likelihood of an encoding process arriving at a given state Sx during a stage k+1 relative to a log-likelihood of the encoding process arriving at another state Sy during a stage k+1. In this regard, it should be understood that the alpha values α′S,k+1 are computed utilizing previously computed alpha values α′S,k. It should also be understood that each alpha value is computed utilizing at least one of the soft-decision values.
The operations further include of performing a backward recursion. The backward recursion involves computing beta values β′S,k utilizing the soft-decision values. Each beta value is a relative log-likelihood defined as a log-likelihood of the encoding process arriving at a given state Sz during a stage k relative to a log-likelihood of the encoding process arriving at another state Sw during the stage k. In this regard, it should be understood that he beta values β′s,k are computed utilizing previously computed beta values β′s,k+1. It should also be understood that each beta value is computed utilizing at least one of the soft-decision values.
According to an aspect of the invention, the operations also include performing an extrinsic computation. The extrinsic computation involves computing probability values p′k utilizing the alpha values α′S,k+1 and beta values β′S,k. Each probability value indicates a probability that a data bit of an input sequence dK had a value equal to zero or one. The operations further include determining data bit values for each data bit of the input sequence dK utilizing the probability values p′k. Each data bit value is a hard decision bit value.
Embodiments will be described with reference to the following drawing figures, in which like numerals represent like items throughout the figures, and in which:
The present invention is for maximum a posteriori (MAP) decoders. Conventional MAP decoders compute a log-likelihood that an encoding process arrived at a given state of a trellis during a particular stage (or cycle). In contrast, the MAP decoder of the present invention computes only the relative log-likelihoods of arriving at various states of a trellis. These relative log-likelihood computations eliminate the need to normalize recursive calculations within the MAP decoder. These relative log-likelihood computations also reduce the amount of memory required by the MAP decoder during a decoding process. These features of the MAP decoder will become more evident as the discussion progresses.
The invention will now be described more fully hereinafter with reference to accompanying drawings, in which illustrative embodiments of the invention are shown. This invention, may however, be embodied in many different forms and should not be construed as limited to the embodiments set forth herein. For example, the present invention can be embodied as a method, a data processing system or a computer program product. Accordingly, the present invention can take the form as an entirely hardware embodiment, an entirely software embodiment or a hardware/software embodiment.
Referring now to
The CCE 104 is configured to receive an input sequence dK from an external device (not shown). The input sequence dK contains K bits of information. The information can include payload data, such as voice data, video data, user identification data, signature data and/or the like. The CCE 104 is also configured to generate an output sequence R(n) by performing an encoding process utilizing the input sequence dK. The output sequence R(n) contains N bits of encoded data, where N is greater than K. The CCE 104 is further configured to communicate the output sequence R(n) to the transmitter 105. Transmitter 105 uses the output sequence R(n) to modulate a carrier signal which is subsequently broadcast using antenna 106. The broadcasted signal from antenna 106 is communicated to RCD 110 via a communications link 118. The CCE 104 will be described in greater detail below in relation to
Encoding processes are well known to persons skilled in the art, and therefore will not be described in great detail herein. However, it should be appreciated that the encoding process is performed to incorporate redundancy (forward error correction) into the input sequence dK. The phrase “forward error correction” as used herein refers to an error correction technique for data transmission. The error correction technique generally involves adding redundant data to the input sequence dK at the TCD 102 so that the RCD 110 can detect and correct errors in a received data transmission. The errors represent data corruption that occurred during a transmission due to environmental conditions.
Referring again to
The SDD 112 is configured to generate soft information by processing the received sequence R(n). The phrase “soft information” as used herein refers to a sequence rn including soft-decisions (which are represented by soft-decision values) that comprise information about the bits contained in the sequence R(n). In particular, soft-decision values are values that represent the probability that a particular bit in the sequence R(n) is either a one (1) or a zero (0). For example, a soft-decision value for a particular bit can indicate that the probability of a bit being a one (1) is p(1)=0.3. Conversely, the same bit can have a probability of being a zero (0) which is p(0)=0.7. The most commonly used soft values are log-likelihood ratios (LLR's). An LLR which is a positive value suggests that the bit is most likely to be a one (1) whereas a negative LLR suggests that the value of the bit is most likely a zero (0).
Referring again to
The MAP decoder 116 is further configured to convert the soft information to a sequence of hard decision bits. The phrase “hard decision bit” as used herein refers to a bit having a zero (0) value or a one (1) value. The sequence of hard decision bits represents the decoded sequence yK. More particularly, the sequence of hard decision bits is the same as or substantially similar to the input sequence dK. The MAP decoder 116 will be described in greater detail below in relation to
Referring now to
Referring again to
The bits bX, bY output from the CCE 104 can have values defined by the following mathematical equations (1) and (2).
b
X
=b
M
+b
202
=b
IN
+b
202
+b
204 (1)
b
Y
=b
IN
+b
204 (2)
where bIN is a bit of an input sequence dK received at the CCE 104, bM is a sum of the bits bIN and b202, b202 is a bit output from the DFF 202 during a second clock cycle, and b204 is a bit output from the DFF 204 during a third clock cycle. It should be noted that two (2) bits bX, bY are output from the CCE 104 when a bit bIN is received at the CCE 104. As such, the sequence R(n) output from the CCE 104 includes twice the number of bits as contained in the input sequence dK.
Referring now to
Referring now to
As shown in
Referring now to
Referring now to
It should be noted that an output sequence R(n) of the CCE 102 describes a distinct path through a trellis diagram. As such, the bits input into the CCE 102 can be extracted from the trellis diagram by retracing the path shown in
Referring now to
Referring now to
After step 406, the conventional decoding process 400 continues with step 408. In step 408, a forward recursion of the trellis 300 is performed. The forward recursion involves computing alpha values αS,k+1. The alpha values αS,k+1 represent the unnormalized log-likelihoods that an encoding process arrived at a given state S0, S1, S2, S3 of the trellis 300 during a stage (or cycle) k+1. The alpha values αS,k+1 can be defined by the following mathematical equations (3)-(6).
α0,k+1=max(α0,k, α1,k+r2k+r2k+1) (3)
α1,k+1=max(α2,k+r2k, α3,k+r2k+1) (4)
α2,k+1=max(α0,k+r2k+r2k+1, α1,k) (5)
α3,k+1=max(α2,k+r2k+1, α3,k+r2k) (6)
where α0,k is the log-likelihood that an encoding process arrived at state S0 of the trellis during a stage (or cycle) k. α1,k is the log-likelihood that an encoding process arrived at state S1 of the trellis during a stage (or cycle) k. α2,k is the log-likelihood that an encoding process arrived at state S2 of the trellis during a stage (or cycle) k. α3,k is the log-likelihood that an encoding process arrived at state S3 of the trellis during a stage (or cycle) k. r2k and r2k+1 are soft-decision bits contained in the sequence rn, where n is equal to two times k (n=2k). More particularly, r2k is the log-likelihood of an output bX from an encoder having a value of one (1) on the transition from a stage (or cycle) k to a stage (or cycle) k+1. r2k+1 is the log-likelihood of an output bY from an encoder having a value of one (1) on the transition from a stage (or cycle) k to a stage (or cycle) k+1. α0,k+1 is the log-likelihood that an encoding process arrived at state S0 of the trellis during a stage (or cycle) k+1. α1,k+1 is the log-likelihood that an encoding process arrived at state S1 of the trellis during a stage (or cycle) k+1. α2,k+1 is the log-likelihood that an encoding process arrived at state S2 of the trellis during a stage (or cycle) k+1. α3,k+1 is the log-likelihood that an encoding process arrived at state S3 of the trellis during a stage (or cycle) k+1.
Subsequent to computing the alpha values, step 410 is performed. In step 410, a backward recursion of the trellis 300 is performed. The backward recursion involves computing beta values βS,k. The beta values βS,k represent the log-likelihoods that an encoding process arrived at a given state S0, S1, S2, S3 of the trellis 300 during a stage (or cycle) k. The beta values βS,k can be defined by the following mathematical equations (7)-(10).
β0,k=max(β0,k+1, β2,k+1+r2k+r2k+1) (7)
β1,k=max(β0,k+1+r2k+r2k+1, β2,k+1) (8)
β2,k=max(β1,k+1+r2k, β3,k+1+r2k+1) (9)
β3,k=max(β1,k+1+r2k+1, β3,k+1+r2k) (10)
where β0,k+1 is the log-likelihood that an encoding process arrived at state S0 of the trellis during a stage (or cycle) k+1. β1,k+1 is the log-likelihood that an encoding process arrived at state S1 of trellis during a stage (or cycle) k+1. β2,k+1 is the log-likelihood that an encoding process arrived at state S2 of the trellis during a stage (or cycle) k+1. β3,k+1 is the log-likelihood that an encoding process arrived at state S3 of the trellis during a stage (or cycle) k+1. r2k and r2k+1 are soft-decision bits contained in the sequence rn, where n is equal to two times k (n=2k). More particularly, r2k is the log-likelihood of an output bX from an encoder having a value equal to one (1) on the transition from a stage (or cycle) k to a stage (or cycle) k+1. r2k+1 is the log-likelihood of an output by from an encoder having a value equal to one (1) on the transition from a stage (or cycle) k to a stage (or cycle) k+1. β0,k is the log-likelihood that an encoding process arrived at state S0 of the trellis during a stage (or cycle) k. β1,k is the log-likelihood that an encoding process arrived at state S1 of the trellis during a stage (or cycle) k. β2,k is the log-likelihood that an encoding process arrived at state S2 of the trellis during a stage (or cycle) k. β3,k is the log-likelihood that an encoding process arrived at state S3 of the trellis during a stage (or cycle) k.
After computing the alpha and beta values, the conventional decoding process 400 continues with step 412. In step 412, an extrinsic computation is performed. The extrinsic computation involves computing the probabilities that each data bit of the sequence dK has a value equal to one (1) or zero (0). It should be noted that the probability values are soft-decision values that comprise information about the data bits contained in the sequence dK. The extrinsic computation uses the alpha and beta values obtained in steps 408, 410 for computing said probabilities.
The probability values can be defined by the mathematical equation (11).
p
k=max(α3,k+1+β3,k, α2,k+1+β2,k)−max(α1,k+1+β1,k, α0,k+1+β0,k) (11)
where α0,k+1 is the log-likelihood that an encoding process arrived at state S0 of the trellis during a stage (or cycle) k+1. α1,k+1 is the log-likelihood that an encoding process arrived at state S1 of the trellis during a stage (or cycle) k+1. α2,k+1 is the log-likelihood that an encoding process arrived at state S2 of the trellis during a stage (or cycle) k+1. α3,k+1 is the log-likelihood that an encoding process arrived at state S3 of the trellis during a stage (or cycle) k+1. β0,k is the log-likelihood that an encoding process arrived at state S0 of the trellis during a stage (or cycle) k. β1,k is the log-likelihood that an encoding process arrived at state S1 of the trellis during a stage (or cycle) k. β2,k is the log-likelihood that an encoding process arrived at state S2 of the trellis during a stage (or cycle) k. β3,k is the log-likelihood that an encoding process arrived at state S3 of the trellis during a stage (or cycle) k.
In step 414, the data bit values for the sequence dK are determined utilizing the probability values pK computed in step 412. It should be noted that the data bit values are hard decision bits. Thereafter, step 414 is performed where the decoding process 400 ends.
Referring now to
After step 506, the decoding process 500 continues with step 508. In step 508, a forward recursion of the trellis 300 is performed. The forward recursion involves computing alpha values α′S,k+1. The alpha values α′S,k+1 represent the relative log-likelihoods of an encoding process arriving at various states S0, S1, S2 of the trellis 300 during a stage (or cycle) k+1. The alpha values α′S,k+1 can be defined by the following mathematical equations (12)-(14).
α′0,k+1=max(α′0,k, α′1,k+r2k+r2k+1)−max(α′2,k+r2k+1, r2k) (12)
α′1,k+1=max(α′2,k+r2k, r2k+1)−max(α′2,k+r2k+1, r2k) (13)
α′2,k+1=max(α′0,k+r2k+r2k+1, α′1,k)−max(α′2,k+r2k+1, r2k) (14)
where α′0,k is a relative log-likelihood defined as the log-likelihood of an encoding process arriving at state S0 during a stage (or cycle) k relative to the log-likelihood of the encoding process arriving at state S3 during a stage (or cycle) k. α′1,k is a relative log-likelihood defined as the log-likelihood of an encoding process arriving at state S1 during a stage (or cycle) k relative to the log-likelihood of the encoding process arriving at state S3 during a stage (or cycle) k. α′2,k is a relative log-likelihood defined as the log-likelihood of an encoding process arriving at state S2 during a stage (or cycle) k relative to the log-likelihood of the encoding process arriving at state S3 during a stage (or cycle) k.
r2k and r2k+1 are soft-decision bits contained in the sequence rn, where n is equal to two times k (n=2k). More particularly, r2k is the log-likelihood of an output bX from the CCE 104 having a value equal to one (1) on the transition from a stage (or cycle) k to a stage (or cycle) k+1. r2k+1 is the log-likelihood of an output bY from the CCE 104 having a value equal to one (1) on the transition from a stage (or cycle) k to a stage (or cycle) k+1.
α′0,k+1 is a relative log-likelihood defined as the log-likelihood of an encoding process arriving at state S0 during a stage (or cycle) k+1 relative to the log-likelihood of the encoding process arriving at state S3 during a stage (or cycle) k+1. α′1,k+1 is a relative log-likelihood defined as the log-likelihood of an encoding process arriving at state S1 during a stage (or cycle) k+1 relative to the log-likelihood of the encoding process arriving at state S3 during a stage (or cycle) k+1. α′2,k+1 is a relative log-likelihood defined as the log-likelihood of an encoding process arriving at state S2 during a stage (or cycle) k+1 relative to the log-likelihood of the encoding process arriving at state S3 during a stage (or cycle) k+1.
Subsequent to computing the alpha values, step 510 is performed. In step 510, a backward recursion of the trellis 300 is performed. The backward recursion involves computing beta values β′S,k. The β′S,k represent the relative log-likelihoods of an encoding process arriving at various states S0, S2, S3 of the trellis 300 during a stage (or cycle) k. The beta values β′S,k can be defined by the following mathematical equations (15)-(17).
β′0,k=max(β′0,k+1, β′2,k+1+r2k+r2k+1)−max(β′0,k+1+r2k+r2k+1, β′2,k+1) (15)
β′2,k=max(r2k, β′3,k+1+r2k+1)−max(β0,k+1+r2k+r2k+1, β′2,k+1) (16)
β′3,k=max(r2k+1, β′3,k+1+r2k)−max(β′0,k+1+r2k+r2k+1, β′2,k+1) (17)
where β′0,k+1 is a relative log-likelihood defined as the log-likelihood of an encoding process arriving at state S0 during a stage (or cycle) k+1 relative to the likelihood of the encoding process arriving at state S1 during a stage (or cycle) k+1. β′2,k+1 is a relative log-likelihood defined as the log-likelihood of an encoding process arriving at state S2 during a stage (or cycle) k+1 relative to the likelihood of the encoding process arriving at state S1 during a stage (or cycle) k+1. β′3,k+1 is a relative log-likelihood defined as the log-likelihood of an encoding process arriving at state S3 during a stage (or cycle) k+1 relative to the likelihood of the encoding process arriving at state S1 during a stage (or cycle) k+1.
r2k and r2k+1 are soft-decision bits contained in the sequence rn, where n is equal to two times k (n=2k). More particularly, r2k is the log-likelihood of an output bX from the CCE 104 having a value equal to one (1) on the transition from stage (or cycle) k to a stage (or cycle) k+1. r2k+1 is the log-likelihood of an output by from the CCE 104 having a value equal to one (1) on the transition from a stage (or cycle) k to a stage (or cycle) k+1.
β′0,k is a relative log-likelihood defined as the log-likelihood of an encoding process arriving at state S0 during a stage (or cycle) k relative to the likelihood of the encoding process arriving at state S1 during a stage (or cycle) k. β′2,k is a relative log-likelihood defined as the log-likelihood of an encoding process arriving at state S2 during a stage (or cycle) k relative to the likelihood of the encoding process arriving at state S1 during a stage (or cycle) k. β′3,K is a relative log-likelihood defined as the log-likelihood of an encoding process arriving at state S3 during a stage (or cycle) k relative to the likelihood of the encoding process arriving at state S1 during a stage (or cycle) k.
After computing the alpha and the beta values, the decoding process 500 continues with step 512. In step 512, an extrinsic computation is performed. The extrinsic computation involves computing the probabilities that each data bit of the sequence dK has a value equal to one (1) or zero (0). It should be noted that the probability values are soft-decision values that comprise information about the data bits contained in the sequence dK. The extrinsic computation uses the alpha and beta values obtained in steps 508, 510 to compute said probabilities.
The probability values can be defined by the mathematical equation (18).
p′
k=max(β′3,k, α′2,k+1+β′2,k)−max(α′1,k+1, α′0,k+1+β′0,k) (18)
Each of the variables α′0,k+1, α′1,K+1, α′2,K+1, β′0,K, β′2,K, β′3,K is defined above in relation to at least one of the mathematical equations (12)-(17).
In step 514, the data bit values for the sequence dK are determined utilizing the probability values p′k computed in step 512. It should be noted that the data bit values are hard decision bits. Thereafter, step 514 is performed where the decoding process 500 ends.
The following Example is provided in order to further illustrate the decoding processes 400, 500. The following Example is also provided in order to highlight the differences between the decoding processes 400, 500. The scope of the invention, however, is not to be considered limited in any way thereby.
In this scenario, the CCE is selected as the CCE 104 shown in
Alternatively, if there is corruption of the signal R(n), the sequence rn will not be defined as rideal(n). Rather, the sequence rn may be defined as the sequence r0(n)=1 4 −1 −4 3 7 −2 3 −6 2 −5 1. A sequence Rhard(n) including values for the sequence R(n) can be obtained utilizing the sequence r0(n). Accordingly, the sequence Rhard(n) can be defined as the sequence Rhard(n)=1 1 0 0 1 1 0 1 0 1 0 1. As can be seen from the sequence Rhard(n), the third and seventh value of the sequence Rhard(n) are different from the third and seventh value of the sequence R(n). As such, the third and seventh values of the sequence R(n) have been corrupted and will need to be corrected by a decoding process.
As described above in relation to
In the conventional decoding process 400, a forward recursion process is performed utilizing the mathematical equations (3)-(6) (described above in relation to
After obtaining the alpha values α0, α1, α2, α3 and beta values β0, β1, β2, β3, the same are substituted into the mathematical equation (11) (described above in relation to
In the decoding process 500 (described above in relation to
After obtaining the alpha values α′0, α′1, α′2 and beta values β′0, β′2, β′3, the same are substituted into the mathematical equation (18) (described above in relation to
It should be appreciated that the decoding process 500 obtained the same result as the conventional decoding process 400. However, the alpha and beta values generated in the decoding process 500 need not be normalized. It should also be appreciated the decoding process 500 requires less alpha and beta computations as compared to the conventional decoding process 400. As such, the decoding process 500 is less computationally intensive than the conventional decoding process 400. It should further be appreciated that if the decoding process 400, 500 is implemented in hardware then a memory device is needed to store at least one of the alpha values and the beta values for use in an extrinsic computation procedure. Since the conventional decoding process 400 computes more alpha and beta values than the decoding process 500, it will require a larger amount of memory resources as compared to the decoding process 500. Accordingly, a decoder implementing the decoding process 400 is more hardware intensive than a decoder implementing the decoding process 500.
Referring now to
Referring again to
The BPMU 606 is also configured to perform a backward recursion of a trellis 300. The backward recursion involves computing beta values β′S,k representing the relative log-likelihood of an encoding process arriving at the various states S0, S1, S2, S3 of the trellis 300. The BPMU 606 is further configured to communicate the computed beta values β′S,k to the memory device 608 for temporary storage. The beta values β′S,k can be defined by the mathematical equations (15)-(17) described above in relation to
A more detailed block diagram of the BPMU 606 is provided in
Referring again to
The FPMU 304 is also configured to perform a forward recursion of the trellis 300. The forward recursion involves computing alpha values α′S,k+1 representing the relative log-likelihood of an encoding process arriving at various states S0, S1, S2, S3 of the trellis 300. The FPMU 304 is further configured to communicate the computed alpha values α′S,k+1 to the ECU 610. The alpha values α′S,k+1 can be defined by the mathematical equations (12)-(14) (described above in relation to
A more detailed block diagram of the FPMU 304 is provided in
Referring again to
The ECU 610 can further be configured to communicate the probability values p′k to an external device (not shown). However, it should be appreciated that the ECU 610 may be configured to determine the data bit values for the sequence dK. This determination is made utilizing the probability values p′k previously computed. It should be noted that the data bit values are hard decision bits. In such a scenario, the ECU 610 may be configured to communicate a sequence yK including the hard decision bits to an external device (not shown).
A more detailed block diagram of the ECU 610 is provided in
A person skilled in the art will appreciate that the MAP decoder 116 of
In light of the forgoing description of the invention, it should be recognized that the present invention can be realized in hardware, software, or a combination of hardware and software. A method for decoding an encoded sequence according to the present invention can be realized in a centralized fashion in one processing system, or in a distributed fashion where different elements are spread across several interconnected processing systems. Any kind of computer system, or other apparatus adapted for carrying out the methods described herein, is suited. A typical combination of hardware and software could be a general purpose computer processor, with a computer program that, when being loaded and executed, controls the computer processor such that it carries out the methods described herein. Of course, an application specific integrated circuit (ASIC), and/or a field programmable gate array (FPGA) could also be used to achieve a similar result.
The present invention can also be embedded in a computer program product, which comprises all the features enabling the implementation of the methods described herein, and which, when loaded in a computer system, is able to carry out these methods. Computer program or application in the present context means any expression, in any language, code or notation, of a set of instructions intended to cause a system having an information processing capability to perform a particular function either directly or after either or both of the following: (a) conversion to another language, code or notation; (b) reproduction in a different material form. Additionally, the description above is intended by way of example only and is not intended to limit the present invention in any way, except as set forth in the following claims.
All of the apparatus, methods and algorithms disclosed and claimed herein can be made and executed without undue experimentation in light of the present disclosure. While the invention has been described in terms of preferred embodiments, it will be apparent to those of skill in the art that variations may be applied to the apparatus, methods and sequence of steps of the method without departing from the concept, spirit and scope of the invention. More specifically, it will be apparent that certain components may be added to, combined with, or substituted for the components described herein while the same or similar results would be achieved. All such similar substitutes and modifications apparent to those skilled in the art are deemed to be within the spirit, scope and concept of the invention as defined.