AU7323198A - Decoding method and apparatus - Google Patents

Decoding method and apparatus Download PDF

Info

Publication number
AU7323198A
AU7323198A AU73231/98A AU7323198A AU7323198A AU 7323198 A AU7323198 A AU 7323198A AU 73231/98 A AU73231/98 A AU 73231/98A AU 7323198 A AU7323198 A AU 7323198A AU 7323198 A AU7323198 A AU 7323198A
Authority
AU
Australia
Prior art keywords
subprocedure
decoding
subprocedures
error test
last
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Withdrawn
Application number
AU73231/98A
Inventor
Lei Wei
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Individual
Original Assignee
Individual
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority claimed from AUPO7576A external-priority patent/AUPO757697A0/en
Application filed by Individual filed Critical Individual
Priority to AU73231/98A priority Critical patent/AU7323198A/en
Publication of AU7323198A publication Critical patent/AU7323198A/en
Withdrawn legal-status Critical Current

Links

Landscapes

  • Error Detection And Correction (AREA)
  • Detection And Prevention Of Errors In Transmission (AREA)

Description

Regulation 3.2
AUSTRALIA
Patents Act 1990 COMPLETE SPECIFICATION FOR A STANDARD PATENT
(ORIGINAL)
Name of Applicant: Lei Wei, of 1 Waranga Place, Duffy, ACT, 2611, Australia Actual Inventor: Lei Wei Address for Service: DAVIES COLLISON CAVE, Patent Attorneys, of 1 Little Collins Street, Melbourne, Victoria 3000, Australia Invention Title: "Decoding method and apparatus" Details of Associated Provisional Application No: PO7576/97 The following statement is a full description of this invention, including the best method of performing it known to me: -1p:\OPERLKALA.NU.WE1 26/6/98 -2- TECHNICAL
FIELD
This invention relates to transmission of information by electronic means over a channel. A channel can, for example, be any sort of radio system. More particularly, this invention relates to the decoding of transmitted digital data associated with a sequence of source data designed to be transmitted or broadcast, notably in presence of noise. The digital data can represent anything, for example, voice, computer data and images, etc. Although the invention will herein be particularly described in relation to real time voice transmission, it is equally applicable to all forms of transmitted digital data.
BACKGROUND
ART
Since 1948 some fundamental theoretical limits on the amount of information that can be transmitted over a given channel have been known. The limits are known as the "Shannon Limit". A key parameter of a channel is its signal to noise ratio (SNR). This measures the strength of the desired signal compared to unwanted signals, typically caused by fundamental physical effects in electronic components, such as thermal noise. Another key parameter is the bandwidth of the channel: this corresponds to how much radio spectrum space is used.
For example, a television channel requires far more bandwidth than a radio channel. A key parameter of a particular transmission scheme is the probability of a bit error: this is the chance that an arbitrary single bit in the message being transmitted gets decoded incorrectly.
Shannon's theoretical results show that for a channel of a given bandwidth and a given desired information transmission rate, if the SNR is greater than a certain quantity, there must exist transmission schemes with an arbitrarily low probability of a bit error.
The performance of a given transmission scheme can be summarized by the type of graph shown in Figure 1, where the bold line denotes the Shannon limit, the striped region denotes the region where reliable communications that is, error free communications, can not be established and unmarked region denotes where reliable communications can be established.
The boundary on the SNR arms of Figure 1 between the achievable and unachievable region is the Shannon Limit. This shows the probability of error achievable for a given SNR for a P:\OPER\LKA\ANU WEI 26/6/98 -3variety of different communication schemes or coding schemes. The Shannon results can be summarized by the existence of the striped forbidden region, and that anything outside the striped region is possible, although at some unknown additional cost.
The additional costs are at least two: 1) The complexity of the encoder and decoder (transmitter and receiver) 2) The time delay required at the decoder.
The proof that any point outside the shaded region is possible is "not constructive" in the sense that it is a mathematical theorem that does not provide information as to how to build such a system. Furthermore, the method of proof implies an arbitrarily long time delay in approaching the limit. The practical effect of a large decoding delay is akin to having a telephone conversation by satellite; it makes conversation very difficult. The complexity of the decoder is a crucial quantity. For a scheme to be widely used, the implementing electronics need be as simple as possible.
The use of "error control coding" at the transmitter and corresponding decoding at the receiver is widespread in digital communications systems. It allows the design of a system that approaches the Shannon limit. In the decoder, the sources can be then reconstructed by several different means. The methods include the optimal methods (optimal in the sense of lowest probability of error), and suboptimal methods. Optimal methods include for example, the Viterbi algorithm described in A. J. Viterbi, "'Error Bounds for Convolutional Codes and an Asymptotically Optimum Decoding Algorithm," IEEE Trans. Inform. Theory, Vol.IT-13, pp.2 6 0- 2 6 9 No.2, April, 1967 and D.G. Forney, Jr., "The Viterbi Algorithm," Proc.IEEE, pp.268-2 7 8 Mar. 1973 ("the Viterbi algorithm") as well as the Bahl et. al.
algorithm described in L. R. Bahl, J. Cocke, F. Jelinek, and J. Raviv, Optimal decoding of linear codes for minimizing symbol error rate," IEEE Trans. Inform. Theory, pp.28 4 2 87 1974 ("the map algorithm"). Suboptimal methods are described in R. M. Fano, Heuristic Discussion of Probabilitic Coding,'' IEEE Trans. Inform. Theory, Vol.IT-9, pp.64-74, April, 1963 ("the Fano algorithm"), F. Jelinek, Fast Sequential Decoding Algorithm Using a Stack,"IBM J. Res. Develop., Vol. 13, pp.675-685, Nov. 1969 ("the p:\OPER\LKA\ANU.WEI 26/6/98 -4- Stack algorithm"), M.V. Eyuboglu and S.Qureshi, Reduced-state sequence estimation for coded modulation on interference channels,"'' IEEE J. Select. Areas Commun., Vol.35, pp.
944-955, Sept. 1989, S.T. Simmons, "Breadth-First Trellis Decoding with Adaptive Effort," IEEE Trans. Commun., Vol. 38, pp. 3-12, Jan., 1990 ("the T algorithm"), J. B.
Anderson, "Limited Search Trellis Decoding of Convolutional Codes," IEEE the M algorithm, J. Belzile and D. Haccoun, "Bidirectional Breadth-first Algorithms for the decoding of convolutional Codes," IEEE Trans. Commun., Vol.COM-41, pp.451- 4 5 7 No.2, Feb. 1993 ("the bidirectional M algorithm"), C. Berrou, Error-correction coding method with at least two systematic convolutional codings in parallel corresponding iterative decoding method, decoding module and decoder," US Patent 5446747, filed on Apr. 16, 1992, issued on August 29 1995, H. H. Ma and J. K. Wolf, On Tail Biting Convolutional Codes," IEEE Trans. Commun., Vol.COM-34, No.2, pp. 104-110, Feb. 1986.
All coders are comprised of one or a few shift register sequences (say a total of m shift registers). The input digital sources (either in a packet or not in a packet) are shifted in time into the register sequence(s). The contents of the selected shift registers are then processed (for example via modulo 2 summation). Subsequently, the coder either directly outputs the processed data as the output of the coder (for example, linear block coders and convolutional coders) or maps them into a modulation signal constellation and outputs the constellation sequences (for example the trellis coder). All decoding algorithms, taking into account the received coded sequences, give an estimate of each data element coded at the transmission, and thus attempt to determine the source sequence that most likely corresponds to the received sequence with a certain confidence. The contents of shift register sequences are often named as states which can be labelled from 0 to 2'-1 to denote each possible combination of the shift register contents. For example, state 0 can represent the case where the contents of all shift registers are zero.
The optimal decoders such as the Viterbi algorithm and the map algorithm have a computational complexity which increases exponentially with the number of shift registers in the coder (or linearly in proportion to the number of states, 2m). Thus, in practice, the P:\OPER\LKA\ANU.WE1 26/6/98 decoding algorithms are often able to deal with a coder with up to 10 shift registers. For a coder with a larger number of shift registers (say 23), the algorithms are not practical to implement. On the other hand, the various suboptimal decoders noted above have a complexity independent of the number of shift registers in the coder, and can approach the performance of the optimum detector when the bit energy to noise ratio is high. However, the error performance of these suboptimal decoders is much worse than the optimal detectors at a low bit energy to noise ratio. In order to achieve a near optimum error performance, the complexity of these suboptimal decoders needs to be increased dramatically. For voice communications, a typical error rate of 10 3 is required. At this error rate, the suboptimal decoders offer almost no improvement in the decoder error performance compared to the Viterbi algorithm with a small number of shift registers (say 8 to A more recent technique known as Turbo codes can achieve near Shannon limit error performance. These are described in C. Berrou and A. Glavieux, "Near Optimum Error Correcting Coding and Decoding: Turbo-Codes," IEEE Trans. Commun., Vol.COM-44, pp. 1261-1271, No. 10, Oct. 1996 and C. Berrou, Error-correction coding method with at least two systematic convolutional codings in parallel corresponding iterative decoding method, decoding module and decoder,"'' US Patent 5446747, filed on Apr. 16, 1992, issued on August 29 1995. However, Turbo codes are not very suitable for voice communications because of their decoder complexity, the time delay required in decoding, and the requirement to estimate the noise variance, which is necessary to achieve their claimed error performance. In order to approach to the Shannon limit, an interleaver with a length of many thousands of bits is commonly required in the Turbo codes as described in L. C. Perez, J.
Seqhers and D. J. Costello, Jr., "A Distance Spectrum Interpretation of Turbo Codes," IEEE Trans. Inform. Theory, Vol. 42, No.6, pp. 1698-1709, Nov. 1996. To perform Turbo decoding, the noise variance must be estimated as in the map algorithm. Furthermore, to obtain a good performance the Turbo decoding often needs to iterate the decoding procedure up to 18 times.
P: OPER\LKA\ANU.WEI 2616/98 -6- An iterative bootstrap algorithm based on sequential decoding algorithms and a parity check constraint is described in F. Jelinek and J. Cocke, "Bootstrap Hybrid Decoding for Symmetrical Binary Input Channels,"'' Information and Control, Vol. 18, pp.261-298, April 1971. In the bootstrap algorithm, a medium size packet can be formed by organizing (R-1)L information bits a block of R-1 rows and L columns. Each row of L information bits is encoded into a code word of length (L m)n/k using a convolutional encoder of memory length m, in which the last m bits are dummy tal bits (all zero bits). All rows are encoded by the same convolutional encoder. The Rth parity check row is generated in such way whose i-th digit will be the parity of the i-th digits of the R-1 information stream rows. In the decoder, each row is decoded according to the suboptimal Stack algorithm, where two parts of the metric are used. The first part is the conventional metric for the stack algorithm based on the convolutional code in each row. The second part is the metric based on the parity constraint of each column. It has been reported that the bootstrap algorithm can reduce the peak computation requirement of the Stack algorithm. However, the computation of the second part of metric is very complicated and the noise variance has to be estimated.
DISCLOSURE OF THE INVENTION It is an object of this invention to provide a method of decoding digital data which will overcome or at least ameliorate these different drawbacks and limits of the prior art. A further object of the invention is to provide a method for the decoding of digital data with a better trade-off between complexity and error performance and with a limited time delay. It is another object of this invention to provide a method of transmission of digital data incorporating the above method. Yet another object of this invention is to provide a receiver for a transmitted digital signal.
In one broad form this invention provides a method of decoding digital data encoded in a sequence of information packets using a selected set of subprocedures formed by individual decoding algorithms of differing complexity, said method including the steps of: applying a first selected one of said subprocedures to each of said information packets; performing an error test during or upon completion of said first selected subprocedure; p:\OPER\LKA\ANU.WEI -26/6/98 -7if said error test is not passed applying another subprocedure selected from said set and chosen according to a predetermined set of rules relating said subprocedures and defining a last subprocedure in any sequence of chosen subprocedures; performing an error test during or after completion of said another subprocedure and repeating step if said error test is not passed and said last subprocedure has not been applied; if said error test is passed outputting the result of the last applied subprocedure or if said error test is not passed and last subprocedure has been applied outputting a result based on one or more of the applied subprocedures.
In another broad aspect this invention provides a method of transmission of digital data over a channel in which the data is encoded in discrete packets, transmitted over a channel, received and decoded by a method according to the above method.
In another broad aspect this invention provides a receiver for a digital signal transmitted over a channel in an encoded sequence of packets of information, said receiver including: receiving means to receive said packets from said channel; decoding means to apply a first one of a selected set of subprocedures formed by individual decoding algorithms of differing complexity to each of said information packets; testing means to perform an error test during or upon completion of said first selected subprocedure; if said error test is not passed said decoding means applying another subprocedure selected from said set and chosen according to a predetermined set of rules relating said subprocedures and defining a last subprocedure in any sequence of chosen subprocedures, said testing means being adapted to perform a further error test during or after completion of said another subprocedure and to activate said decoding means to apply another of said subprocedures if said error test is not passed and said last subprocedure has not been applied, and output means operable if said error test is passed or said last subprocedure has been applied to respectively output the result of the last applied subprocedure or a result based on one or more of the applied subprocedures.
p:\OPER\LKA\ANU.WEI 26/6/98 -8- The last subprocedure is preferably determined by the level of operational complexity. That is, the most complex subprocedure is the last performed. This may or may not be the most operationally complex in the selected set since the predetermined rules define the last subprocedure in a particular sequence.
The output where the error test is not passed and the last subprocedure has been applied is preferably based on the decoding that has been performed. In some bi-directional algorithms for example a force merge technique can be applied. In an alternative approach the information packet can simply be dropped and no output produced.
Preferably, an index of operational complexity is associated with each of said subprocedures and the predetermined set of rules relate to the index. In one form of the invention the index can be numerical. Preferably the index of operational complexity defines a hierarchy. The hierarchy may or may not include unique levels and the rules may define sequences of subprocedures which do not follow the hierarchy. In one preferred form of the invention a strict linear hierarchy based on increasing levels of computational complexity is used. This can, for example, correspond to the number of states used in the algorithm performed as the subprocedure.
Preferably, the error test is performed on at least some of the decoded data. In one form of the invention the error test can be performed using a computational metric which provides a probability score relating to the likelihood of the decoded data being correct. In a strongly preferred form of the invention a bi-directional algorithm is used to decode each packet of data and the error test is based on a merge condition for the decoding in each direction.
In a preferred form of the invention the first subprocedure utilised can be set according to other measures of data quality, for example, signal to noise ratio.
The algorithm used in a preferred form of the invention is the M-algorithm. Although many of the advantages of the invention are explained by reference to the use of the M-algorithm for decoding, it will be apparent to those skilled in the art that other sub-optimal decoding P:\OPER\LKA\ANU.WEI -26/6/98 -9schemes can be used in the invention to obtain similar advantages.
An essential feature of the invention is the decoding of the information bits in a packet format. In the case of a continuously transmitted signal an additional step of dividing the bits into packets or window blocks is required. This can be done in serial blocks or parallel blocks by appropriate conversion.
The individual packets transmitted or formed before decoding can each include hundreds up to thousands of bits. In one form, the packet starts from a known state (say state zero) and ends in a known state (say state zero), the last m bits in each packet do not carry information, but flush the contents of the shift registers). In another form a tail biting method can be applied. Packet formats have been widely used in telecommunications. The reasons to select the packet format in this invention can be summarized as The packet will reduce the length of error propagation. The maximum length of error propagation is limited to the length of the packet length.
For a packet format which starts from a known state and ends in a known state, the decoder can decode the packet from two ends of the packet. Thus, the probability of correct path loss will be significantly reduced.
The packet format will allow the decoder to isolate the noisy received signals. Thus the effects of the signal corrupted by strong noise will be limited to within its packet and will not affect the other packets.
Furthermore, the decoder could determine the received information sequence packets which are corrupted by strong noise, so the decoder can allocate more computational power to these packets.
For a packet format, two decoding procedure starting from both ends of the packet can be used. Since two decoding procedures are used, it is obvious that the decoder decision is not correct if both procedures do not merge at the joint point. The merge point is defined the time where two processes decode the same input bit and the merge can be defined in several ways for different algorithms used.
P \OPER\LKAANU.WEI 26/6/98 Although the previously known M-algorithm has some of the above advantages, its performance is still very poor. For example, this algorithm using 64 kept states can achieve an improvement on the bit energy to noise ratio of 1 dB compared with the 64 state Viterbi algorithm at a high bit energy to noise region. However, it has a poor performance at a low bit energy to noise ratio region. If the number of states kept is increased, the complexity increases significantly.
This invention provides a structure which removes the drawbacks of suboptimal decoders. For the suboptimal M-algorithm, only a small number of states are kept in the decoder regardless the total number of states in the coder. Since the decoder only keeps a fractional number of the total states, at any stage of the decoding procedure, the state corresponding to the transmission information sequence (called the correct path) can be lost not be amongst the kept states). This event is called the "correct path loss event". The correct path loss event has several impacts on the decoder error performance. The most important one is error propagation, where, the decoder searches over wrong states over a long time, and consequently produces a burst of erroneous decisions. Error performance analysis is very difficult for the M-algorithm. This invention proceeds from the recognition that the M-algorithm with the number of states kept in the decoder no less than a minimum number can achieve the performance of the optimum detector, provided that the error propagation is not too severe. Thus, a structure which eliminates the error propagation can approach the performance of the optimal decoder for a coder with a large number of states at a low complexity.
Additionally, combination of this invention and the bootstrap structure described above provides a means to avoid the drawbacks of the original bootstrap decoding algorithm, that is, complicated computation of the second part of metric and noise estimation.
The advantages of the preferred form of the invention include: The invention provides methods for highly reliable decoding of the received data with a short time delay, which makes it particularly suitable for use with voice signals transmitted p:\OPER\LKAANU.WEI 26/6/98 -11in mobile communications or satellite communications.
(ii) The invention provides for decoding of the received data at different levels of reliability varying with the receiver complexity and which can be implemented with different decoding speeds, including very high bit rates.
(iii) The invention provides for the relatively easy manufacture of coders and decoders and enabling flexibility adapting the manufactured coder/decoder according to customer requirements.
(iv) The invention allows service providers to utilize a centralized system more efficiently, for example at the base station the decoders for different users can share the computational capacity efficiently. This will effectively cut the complexity of the decoders and consequently cut down the cost.
The invention enables the decoder to recover the transmitted signals with different complexity levels automatically according to the quality of the received signals, thus the noisy signals will be recovered with a complicated decoding algorithm, while the less noisy signals will be recovered with a less complicated decoding algorithm.
(vi) The invention enables the decoder to check the reliability of its decision more easily and accurately than prior art and to feed back the retransmission request faster than prior art for communications systems with automatic repeat request (ARQ).
(vii) The invention enables the decoder to achieve a better performance without the requirement of estimating the noise variance.
(viii) The invention enables the decoder to estimate the reliability of its decision on recent signals easily and to feed back a power control request quickly.
(ix) The invention enables the coder to position important bits at reliable positions and the decoder to recover them reliably and efficiently, for example, in the European GSM mobile system the invented decoder could offer a better protection for the class 1 bits and the protection can be implemented easily.
The invention is not only provides a decoder to achieve a better performance, but also to provides a flexible tool to integrate with other encoders and decoders, such as in concatenated systems.
P:\OPER\LKA\ANU.WE1 26/6/98 12- The invention can be applied wherever it is necessary to transmit digital information with a certain degree of reliability. A preferred field of application of the invention is that of digital transmission on highly noisy channels, especially when the time delay and the receiver complexity are limited. For example, the invention may be implemented for the reception of signals by the mobile unit or the base station in a cellular mobile radio system. The invention does not only provide a better trade-off between the error performance and receiver complexity, but is also able to maintain a low decoding delay, which is extremely important in voice communications. However, the invention can also be applied similarly to any type of transmission where the performance is important.
The invention will now be further described in relation to various non-limiting examples of implementation.
BRIEF DESCRIPTION OF THE DRAWINGS Figure 1 is a plot of Bit Error Rate versus Energy per bit to noise power ratio (Eb/No) illustrating the Shannon Limit; Figure 2 is a plot of bit error probability versus bit energy to noise ratio for a first example of the method according to this invention; Figure 3 is a plot of bit error probability versus bit energy to noise ratio for a variation of the example shown in Figure 2; Figure 4 is a plot of bit error probability versus bit energy to noise ratio for other variations of the example shown in Figure 2; Figure 5 is a plot of average complexity in terms of the number of states kept for some examples of the method according to this invention; Figure 6 is a plot of bit error rate versus bit energy to noise ratio for three further examples of the method according to this invention; and Figure 7 is a plot of bit error rate versus bit energy to noise ratio for another example.
p:\OPER\LKA\ANU.WEI 26/6/98 13 BEST MODES FOR CARRYING OUT THE INVENTION Example 1 The method of the invention performed utilising the M-algorithm. This is done by performing the following steps: Preset a maximum allowable delay, which is equal to (the packet length divided by the bit rate) plus the maximum decoding delay.
Preset a set of allowable number of states to be kept. For example, 64, 256, 1024, 4096 states. This set represents the allowable complexity of the decoder. For a particular design, the particular set chosen can be optimized.
At the transmitter the information bits form a packet of length L, which contains L-m information bits and m known bits (say zero) to flush the contents of the shift register. The information packet is then input to a coder or a combination of several coders (for example a convolutional coder and a block coder used for error detection).
At the receiver, the decoder decodes the packet based on the bi-directional M-algorithm in with the smallest number of states (say 64 states) first.
The decoder checks whether the decoding procedure has failed or not. The failure of the decoder can be determined by checking whether the merge condition whether two decoders have a common state kept in both processes at the merge point), or whether the packet passes the error detection check, or combination of both methods.
If the decoding procedure fails, the decoder repeats steps and based on the algorithm with the second smallest number of states (say 256 states) or expand the number of states to the second smallest number 256) based on the previous computation results.
This process is repeated until the decoder reaches the largest number of states which is allowed to be kept in the decoder 4096).
If the decoding procedure passes the error check in step the decoder outputs the decision based on the M-algorithm.
Example 2 Replace the M-algorithm of Example 1 by the Stack algorithm. The bi-directional stack p:\OPER\LKA\ANU.WEI 26/6/98 -14algorithm can be defined by the following steps: 0 Step Set up a maximum number of paths the decoder will keep, the maximum stack size, S, which determines the complexity of the stack algorithm.
0 Step Load the stack with the start state and the end state in the packet. Set metric values of both stacks to be zero.
Step (iii): Extend the top stack in the stack and compute the metric of its successors according to the known method for the Stack algorithm. The extension is forward if the top path is from the starting point of the packet or otherwise backward.
Step Delete the top path in the stack.
0 Step Insert the new paths in the stack and rearrange the stack in order of decreasing metric value. If the number of paths is larger than the stack size, keep the S paths with smallest metric.
Step If the following termination condition is met, stop. Otherwise, return to step The termination condition is that either the merge condition is satisfied for the stack algorithm two stacks from both directions share a common state at the merge point), or the decoding decision of the packet passes the error detection check, or combination of the both methods.
The adaptation of the bi-directional stack algorithm to the present invention involves the following modifications to steps to of Example 1: 9 Delete step or replace step by presetting a limit on average decoding delay, since the exact delay of the stack algorithm is not known at a particular time.
9 Replace step by presetting a set of allowable number of paths kept in the stack, S. For example, (10, 100, 1000), which represents part of the complexity of the stack algorithm.
Replace the bi-directional M-algorithm in steps by the bi-directional stack algorithm and the merge condition is replaced by that in step (iv) above for the bi-directional stack algorithm.
P:\OPER\LKAANU.WEI 26i6/98 15 Example 3 Replace the M-algorithm of Example 1 by the Fano algorithm. The bi-directional Fano algorithm is comprised of two Fano algorithm processes (a forward process and a backward process), each of them is identical to the Fano algorithm, except the start direction and the following modification. Set up a threshold D for both processes, which determines the complexity of the Fano algorithm. At the start of the decoding procedure, set T =0 and M =0 for both Fano processes. The selection of which processes will operate one step is determined by the metric value of the best nodes. If the best node of the forward Fano algorithm has a smaller metric, the forward Fano algorithm will operate one step, otherwise the backward Fano algorithm will operate one step. The "End of tree?" normally used is replaced by the termination condition. For the bi-directional Fano algorithm, the termination condition is that either the merge condition is satisfied for the Fano algorithm two best nodes from both directions merge at a common state at the merge point), or the decoding decision of the packet passes the error detection check, or combination of the both methods.
The adaptation involves the following modifications to the steps to of Example 1: Delete step or replace step by presetting a limit on average decoding delay, since we do not know the exact delay of the Fano algorithm at a particular time.
Replace step by presetting a set of thresholds, D, for example, 2, which represents the complexity of the Fano algorithm.
S Replace the bi-directional M-algorithm in steps by a bi-directional Fano algorithm and the merge condition is replaced by that in the merge condition defined above for the defined bi-directional Fano algorithm.
Example 4 Replace the M-algorithm of Example 1 with other algorithms. Many other types of algorithms have been proposed over last 30-50 years. They include Generalized Stack algorithm, List algorithm, Breadth-first algorithms, different type of soft output algorithms, the Hidden Markov Model algorithm and etc. All these algorithms can be modified to replace the M-algorithm and benefit from the method of the invention.
P: \OPER\LKA\ANU.WEI 2616/98 16- Furthermore, any of the bi-directional algorithms can be replaced by its one-directional correspondent one. And the termination condition can be either that the final decoding procedure reaches to the known state at the end of the packet, or passes the error detection check, or a combination of both. This type of modification will have a sightly poorer error performance, but the decoding procedure can start when the detector receives the first bit of the packet.
Example Replace the predetermined complexity limit in step of Example 1 which corresponds to the complexity of decoding procedure by a set or one value determined by adaptive estimation.
The significant difference between this invention and use of the prior art M-algorithm is that for this invention the decoding complexity varies according to test results of the noise effects on the packet, while for the prior art method, the complexity is fixed. Consequently, the prior art M-algorithm method will not be able to deliver a good error performance at a low bit energy to noise ratio region with the average decoding complexity close to that of the present invention.
The significant difference between this invention and the prior art T algorithm is that for this invention the decoding complexity varies according to test results of the noise effects on a particular packet, while for the T algorithm the complexity is varied according to a fixed value (a threshold on the metric difference) and does not distinguish the packet corrupted by strong noise and by weak noise.
The low complexity decoding procedure in this invention is primarily used to test the noise effects on the packet. Most importantly, the invention relies upon the way which the noise affects the information packet, not the pure metric threshold as in the T algorithm or the number of paths kept as in the prior art M-algorithm. There are many ways to determine the effects and select or vary the decoding complexity accordingly. For example, P:\OPER\LKA\ANU.WE 266/198 17- The noise effect can be approximately estimated by the noise variance or signal power, or signal power to noise variance ratio. For a long packet, this estimation can be done accurately, while for a short packet it will be difficult to do so. Once the variance of the noise in the packet is known, the decoding algorithms can select a set of parameters or one parameter which determine the complexity of the decoding procedure.
A similar estimation can also be realized by estimating the variance of the noise or signal power, or signal power to noise variance ratio in the past packets.
The decoding procedure can change the decoding complexity according to the metric values of kept paths. This step can be applied even in step only. For example, if the metric value is above a threshold or the difference between metric values of some particular paths is smaller than a threshold, then the complexity of the decoding procedure can be varied accordingly.
A similar estimation to and variations can also be realized by estimating the averaging metric values or metric value differences of kept paths in past packets.
Examples 6 to 8. Using a bootstrap structure in the method These examples combine the method of Example 1 with a bootstrap algorithm. This can result in a significant reduction in the peak coding complexity at the cost of slightly increased decoding delay. In the bootstrap algorithm, a medium size packet can be formed by organizing (R-1)L information bits in a block of R-1 rows and L columns. Each row of L information bits is encoded into a code word of length (L+m)n/k using a convolutional encoder of memory length m, in which the last m bits are dummy tail bits (all zero bits). All rows are encoded by the same convolutional encoder. The Rth parity check row is generated in such way whose i-th digit will be the parity of the i-th digits of the R-1 information stream rows. Let P:\OPER\LKA\ANU.WEI 26/6/98 18u u] an u and v']1 denote the information bit vector and the encoded codeword vector of the i-th row, respectively, where i= 1, R, kl=L+m and u ,v The parity constraint is 4Vj J1 2 0 for q= 1, n and j 1, where T denotes the EXOR operation. The encoded codeword is then mapped into a transmitted symbol vector S where s,O) k
[S]
1 1 s2 s 2 s 1 S where s, Ek/nCi Let r] 1 (1 r,) r l r
I
denote the received signal vector of the i-th packet stream, where r, +n) and nia is a zero mean independent Gaussian variable with variance No/2.
In the original bootstrap decoder, the Stack algorithm decoder with a fixed complexity first decodes row 1. For a given complexity, the algorithm can often decode the first a few bits (say 0 to t, bits). Then the Stack algorithm decoder will spend a fixed computation in the second row, say it decodes 0 to t bits. The process continues, until the last row (row R).
P:'OPER\LKA\ANU.WEI 26/6/98 19- After that, the Stack algorithm decodes the information bits in row 1 again starting from t, bits with the fixed computation load. And so on until all rows have been decoded.
The key concept of the original bootstrap decoder is as follows. The row which is affected by strongest noises is often difficult to decode and for a given computation load the decoder can only decode a small number of bits. But, after the decoder decodes all the other row information bits, the information from the other rows could help the decoder to decode the row with the strongest noises, due to the parity constraint. For example, if all bits except one are known in [ql [qJ [q] 7,1 'j,2 j,m' this unknown bit can be recovered by the parity constraint, i.e., j[q],T 0 Vj,1 'j2 In the following examples the bootstrap decoding algorithm is modified and combining with the method of this invention.
Example 6 A bootstrap decoding algorithm using the hierarchical decoding structure according to this invention. The method is performed in the following steps: Step Preset a set of allowable number of states to be kept. For example, we can set (M=64, M=256, M=1024, M=4096). This set represents the allowable complexity of the decoder. For a particular design, the particular set chosen can be optimised.
Step Decode the first packet stream based on the non-sorting bi-directional M-algorithm with the smallest number of states M=64) first, using the metric with the parity check constraint.
Step Check whether the natural joint event occurs.
P :OPER\LKA\ANU.WEI 26/6/98 Step If the natural joint event does not happen, repeat for the next packet stream.
Step If the natural joint event occurs at step the decoder decodes the packet stream based on the M-algorithm and updates the parity check constraint. And then repeat for the next packet stream.
Step If all the packet streams have been decoded by the M-algorithm with the smallest number of states M=64) and a few packets are still not decoded, repeat steps based on the algorithm with the second smallest number of states M=256 for the above example). This process is repeated until reaching the maximum allowable complexity M=4096) Step If the natural joint event does not occur and the decoder reaches the maximum complexity, then both decoders decode the remaining packets by tracing back, following the paths with minimum metric.
The metric used in this method can be computed by the following way. Suppose that packet streams i 1 i 2 ,ii have been decoded, but j 2 j, have not been successfully decoded the natural joint event does not happen for these packets). Packet ji is decoded as follows: S1 o Pr V. =0, JJ1 ,l j jj 1J J 1 where j =_lo P(r\Jv, jl O
P
J
J Ikvj n I X r, is the metric for the Viterbi algorithm or the M-algorithm, P \OPER\LKA\ANU.WEI 26/6/98 -21 P(r/I I Pr,' J11, )r.J ,r 151 ,,r.mIv.j =0 J'Mb J, O Y is the metric due to the parity constraint which can be computed as the follows.
where CS v 1 11it 1 '2 J, I Sis decision of v Q I II and S[1 +exp( )+fi [1-exp(X()] Q..(0=-09V 2 =j22 o+exp(x()) I 1-exp()] 11 J2 With the hierarchical decoder (for speech) and this algorithm (for data), both types of information can be transmitted over a communication system with a given transmitter power.
The error performance requirements for both types of information are very different. For data information, the delay can be large, but the error rate is typically less than 10- 5 For speech information, the delay should be small, but the error rate is typically about 10- 3 (or packet drop rate of Traditionally, convolutional codes concatenated with a Reed-Solomon code are used for data information. But this often requires very large interleaver sizes which P:\OPER\LKA\ANU.WEI 26/6/98 -22are tens or hundreds of thousands of bits. Very few systems can accept such large interleaver sizes. With the similar amount of redundancy as RS codes, this algorithm can provide a similar BER with a block size up to only a few thousands of bits. Thus, in dual systems, the speech signal can be decoded by the hierarchical decoder, while the data signal can be decoded by this algorithm. For a same transmitter power level, both data and speech information can satisfy their error performance criteria.
Example 7 A modification of the algorithm in Example 6. In the bootstrap decoding algorithm in Example 6, the noise variance has to be estimated and the computation of
Q(O)
is often very high. In the following modified algorithm, these disadvantages can be avoided.
The steps are as follows: Step Preset a set of allowable number of states to be kept. For example, we can set (M=64, M=256, M=1024, M=4096). This set represents the allowable complexity of the decoder. For a particular design, the particular set chosen can be optimized.
Step Decode the first R-2 packet streams based on the non-sorting bi-directional M-algorithm with the smallest number of states M =64) first, using the metric without the parity check constraint, i.e.
Ebk In=4 -r Step Decode the (R-1)-th packet streams based on the non-sorting bi-directional M-algorithm with the smallest number of states M=64), using the metric with the parity check constraint, i.e.
P:\OPER\LKA\ANU.WEI 26/6/98 -23 I(V) +x(P)
A
1 jR-1 Let jx=R and jy=R-1. The metric can be computed by the the following method.
F b k C ,1 11 2 ,Jx1 1 ,jy-+l, i.e, the EXOR of the decision bit 0 s of all rows except rows jx and jy.
and .(0)=Aix=4 -jX Step Using the following way to decode packet R based on the non-sorting bi-directional M-algorithm with the smallest number of states, where the metric is computed by the method of Example 6 with jy=R and where jx can be arbitrarily selected from 1 to R-1.
Step Then decode packet 0, 1, R based on the non-sorting bi-directional M-algorithm with the second smallest number of states M=256 for the above example), where the metric is computed by the method above of this example with jy=the row number of current decoding row and jx=an arbitrary number from 1 to P \OPER\LKA\ANU.WEI 26i6/98 -24- R except jy. This process is repeated until reaching the maximum allowable complexity M=4096).
The method of metric computation of this example does not require the knowledge of the noise variance and the metric can be easily computed.
Example 8 Other modifications of the algorithms in Examples 6 and 7. The algorithms in Example 6 and Example 7 can also be modified by replacing the hierarchical decoder with either M-algorithm or the Viterbi algorithm. A typical modification is given as follows.
Step (R-1)L information bits are organized as a block of R-1 rows and L columns.
Encode each row of L information bits into code words of length L n/k using a tail-biting convolutional encoder of memory length m. All rows are encoded by the same convolutional encoder. Generate the R-th parity check row whose i-th digital will be the parity bit of the i-th digitals of the R-1 information streams.
Step Decode the first row or packet stream based on the Viterbi-algorithm or uni-directional M-algorithm, using the metric requiring the knowledge of noise variance Example 6).
Step Update the parity check constraint. Decode the next packet stream based on the Viterbi-algorithm, using the metric requiring the knowledge of noise variance Example 6) or if this packet is the R-lth packet the metric which does not require the knowledge of noise variance Example 7).
Step Repeat until the last packet at the last iteration.
This modification can not deliver an error performance as good as the algorithm in Example 6, but it allows us a gain of 1.5 dB in the error performance over current communications systems (wherever the Viterbi algorithm is used) without any significant modification of existing systems.
Example 9 Use of different types of codes in the method. The invention is valid for convolutional codes, P:\OPER\LKA\ANU.WEI 26/6/98 trellis coded modulation and block code, even the variant ways of combination of these type of codes, for example concatenated codes. The invention is also applicable to detection of information bits in other situations such as continuous phase modulation, intersymbol interference channel, multiuser systems etc where the Viterbi algorithm can be used.
The invention can also be used in source coding where the M algorithm has been widely used.
SIMULATION RESULTS Simulation results have been obtained for several rate half convolutional codes.
Simulation setting The simulation trial was terminated for each data point if 1000 bit errors were obtained, or the number of bits in simulation trials reached to at least 10 7 bits.
For packet error rate, the simulation trial were terminated for each data point if at least 100 packet errors were obtained.
Codes used in the simulation: Code a: The best known rate 1/2 coder with 14 shift registers (or 214= 16384 states), where g' )=56721, g(2)=61713 (in octal form) and its dfre=1 8 listed in Table 11.1 of S. Lin and D. J. Costello, Jr., ERROR CONTROL CODING: Fundamentals and Applications, Prentice-Hall, Englewood Cliffs, 1983.
Code b: The rate 1/2 coder with 23 shift registers (or 223=8,388,608 states), where g(l)=5534 6 1 2 5 g(2)=75744143, and its df=25, listed in Table 12.1 D, of the Lin and Costello Paper.
Code c: The rate 1/2 coder with 30 shift registers (or about 1 billion states) recently constructed by the inventor, where gl' 1 =75441025634, g' 21 =45741764624 and df,,32.
Code d: A simple parity check (even or odd check) code. Three parity bits are introduced to detect the bit errors of bits at the position 2i, 4i and 6i, where i= 1, 2, [packet length/6] and denotes the largest integer which is less than or equal to x. The three parity bits are transmitted at the end of the information bits and before the m known bits in the packet.
Code e: The simple BCH block code (247, 255), where g(D)=1+D 2
+D
3
+D
4
+D
8 The code P:\OPER\LKA\ANU.WEI 26/6/98 -26can detect (63/64) =0.984375% packet errors.
Code f: The rate 1/2 code with 18 shift registers, where g =4551474, g 2 1 =6354344. Its dfr is 22.
Algorithm used and its parameters The bi-directional algorithm has been used, except the step of "forced merge".
The number of states kept is {64, 256, 1024, 4096, 16384} with different upper limits for different codes. The maximum numbers of paths kept are 1024, 4096 and 16384 for code a, code b and code c respectively. The maximum number of paths kept are selected so that the M-algorithm will be able to achieve the error performance of the optimal detector. In the following figures, the upper limit denotes the maximum number of states can be kept in the decoding procedure.
Bit Error Rate and Complexity Result Fig. 2 shows the bit error probability versus bit energy to noise ratio for code a, where code d has been used for error detection, detect the false merging.
Fig. 3 shows the bit error probability versus bit energy to noise ratio for code a, where code d has been used for error detection.
Fig. 4 shows the bit error probability versus bit energy to noise ratio for code a for different packet lengths.
Fig. 5 shows the average complexity in term of the average number of states kept in the decoding procedures.
Code a and code b can approach the error rate of 10 5 at 2.5 dB and 2 dB, which is IdB and dB respectively better than Viterbi algorithm with the best rate 1/2 code with m=8.
However, the average complexity in term of the number of states kept in the decoding procedures is only approximately 64/256=1/4 of the Viterbi algorithm. To achieve approximately the same error performance, the bi-directional algorithm in M-algorithm requires 1024 and 4096 states. The average complexity of the invention is only 64/1024=6.25% and 64/4096=1.56% of that in the prior art M-algorithm. It is to be noted that the complexity to decode one packet could reach 64+256+1024=1344 and 64+256+1024+4096=5440 states for code a and code b respectively. However, the probability of the occurrence is very small. For example, for code b at Eb/No=2dB, the P:\OPER\LKA\ANU.WEI 26/6/98 -27probability of using the maximum complexity decoding procedure is about 0.088%. At the low bit energy to noise ratio region, the average complexity of the method according to this invention becomes large. But the average complexity is still much smaller than the method in the prior art M-algorithm. For example at Eb/No=ldB the method of this invention requires to keep 550 states on average, which is only 13.4% of the prior art M-algorithm method.
Figure 4 shows that if the packet length is doubled, the error rate is approximately doubled. This conclusion is also true for code b.
The error rate for code c where the packet length is 300 has also been simulated. Non parity check or block codes have been used. The result shows that at Eb/No=1.7dB code c can achieve BER=5xlO0, which is another 0.3dB gain over code b.
Packet Error Rate and Decoding Delay Results Table 1 shows the decoding delay and packet error rate. For code a and code b, each packet contains 247 information bits, 8 error detection bits (according to code e) and m bits to flush the shift registers. The average complexity is 142.6 states for code a at Eb/NO= 1.5, which is only 14% of that in the prior art M-algorithm. The average complexity is 667.7 and 208 for code b at Eb/NO= 1.0 and 1.5 dB respectively, which is only 16.3% and 5.1% of that in the prior art M-algorithm respectively.
Table 1. Packet Error Rate and Decoding Delay Code algorithm Eb/NO Packet Error Rate Delay VA with 256 states 2.5 dB 1.45% about 80 bits Code a 1.5 dB 2.06% 269 bits computation time Code b 1 dB 3.58% 278 bits computation time dB 0.47% As shown above, the method of this invention can approach the error performance of rate 1/2 P:\OPER\LKA\ANU.WEI 26/6/98 -28convolutional code with memory length of 14, 23 and 30 with very low average complexity.
More importantly, the coding gain at BER= 10 5 is about half of the asymptotical coding gain for code a, code b and code c. For example, the df, of code, code, (2,1,14) code, (2,1,23) code is 10, 12, 18, 25, respectively. The asymptotic gains are 0.79, 1.76, 1.43 dB. At the BER=10- 5 point, the Eb/No requirements are 4.0, 3.5, 2.6, 2.1 dB respectively.
It is believed that the error performance achieved by the invention for code a, code b and code c is very close to the error performance of the Viterbi algorithm. Accordingly, the invention overcomes the different drawbacks and limits of the sub-optimal decoding algorithm and provided a method for the decoding of digital data with a better trade-off between complexity and error performance and with a limit time delay. Simulation results also indicate that the invention provides a means to approach the Shannon capacity limit with a low complexity and low time delay compared to prior known methods.
Simulations for Bootstrap Decoding Algorithm using the Hierarchical Structure Simulations have been conducted for a bootstrap decoding algorithm using the hierarchical structure and its variations.
The simulation parameters are given as the follows. For code A, the number of states kept for the M-algorithm is M={64, 256, 1024, 1024}, mb=10, L=200 and 12 parity bits per packet are used to reduce the error propagation of false joint. For code F, the number of states kept for the M-algorithm is M={64, 256, 1024, 4096, 4096}, mb=10, L=280 and parity bits per packet are used to reduce the error propagation of false joint. For code C, the number of states kept for the M-algorithm is M={64, 256, 1024, 4096, 16384, 16384}, mnb= 10, L=300 and 4 parity bits per packet are used to reduce the error propagation of false joint. Figure 6 shows the BER as a function of Eb/No for codes A, F, C using the bootstrap algorithm with the hierarchical structure.
Figure 7 shows the BER as a function of Eb/NO for three cases: the rate 1/2 code with go)=753, g(2 =561 and m=8 decoded by the algorithm in Example 8 with the 256 Viterbi algorithm, where R= 10, L= 100, 2 parity bits are used for each packet and the metric is computed with the method in Example 6. The rate 1/2 SFF code with g =714476125, p:\OPER\LKA\ANU.WEI 26/6/98 -29g( 2 and m=26 is decoded by the algorithm in with the uni-directional no-sorting M-algorithm with M=512, where mb= 10, L=260, 2 parity bits are used for each packet and the metric is computed with the method in Example 6. The same setting as case decoded by the algorithm in Example 8 with the uni-directional no-sorting M-algorithm with M=512, but the metric is computed with the method in Example 7. The performance gain over the 256 state Viterbi algorithm decoder using the rate 1/2 code of 8 shift registers is significant (about 1.5 dB). Without knowledge of the noise variance, the error performance is reduced by less than 0.05 dB.
INDUSTRIAL APPLICABILITY The simulation results above have clearly shown that the invention provides methods for highly reliable decoding of the received data with a short time delay, which is very useful in practical systems such as mobile communications or satellite communications, where speech communication is one of major task.
The set of the number of paths kept can be changed adaptively, which provide methods for decoding of the received data at different reliable levels varying with the receiver complexity and the decoder can be implemented with a different speeds of decoding, including very high bit rates. This further allows manufacturers to easily produce coder/decoder and flexibly adapt the complexity, delay and performance according to the customer requirements.
At a centralized system such as the base station for cellular mobile radio systems, the receivers of different users can share the computation power and utilize the system more efficiently. For example, a fast decoder can be shared by many users. Each user uses a slow decoder to decode the packet first. If the decoding procedure has failed, then the user passes the packet to the fast decoder. Thus, this will effectively cut the complexity of the decoders many users share a faster decoder instead of each user having a fast decoder) and consequently reduce the cost. It is noted that in many systems such as Qualcomm CDMA system in USA, the link from mobile units to the base station has a higher error rate than the P: \OPER\LKA\ANU.wEI -26/6/98 link from the base station to the mobile units. Thus it is desirable to have a better error protection by more powerful coders and associated decoding procedure in the base station.
For decentralized systems such as the receiver in the mobile station, although the method of the invention requires a peak computational complexity slightly higher (1.25-1.33) than that in the prior art M-algorithm, the average computational complexity is much lower (only about 2% to If the prior art method is used, the handset can be run at a constant and fast clock rate to meet the computation requirements. When the handset runs constantly on a faster clock rate, two problems might occur. The first one is the amount of heat generated by the chip, which would require a heat dissipation mechanism. The second is the power consumption. In fact, in IC design it is often the case that the faster the clock rate, the more power it demands. In mobile handsets, the battery life is also an important system performance measure. However, this invention allows use of different clock rates in different situations. Most of the time, the handset would run at a normal (slow) rate, for example.
When a high computational demand occurs the handset could switch to a higher clock rate similar. In the present invention, the high computational demand occurs very rarely. For example, if the probability of full computational capacity being required is 1 and the packet generation rate is 50 packets per second, then the faster clock rate is only required 20 ms every 2 seconds. This provides a substantial saving on power consumption and avoids the heat generation problem.
The present invention enables the decoder to recover the transmitted signals with different complexity levels automatically according to the quality of the received signals, thus the noisy signals will be recovered with a complicated decoding algorithm, while the less noisy signals will be recovered with a less complicated decoding algorithm.
In ARQ systems, the method of this invention can check the reliability of its decision by examining whether the two processes with a low complexity merge. If they do not merge and the metric indicates that the packet is corrupted by strong noise, a retransmission request can be fed back to the transmitter before the more complicated decoding process is used. In the p:\OPER\LKA\ANU.WE1 26/6/98 -31conventional procedures, the retransmission request will be issued after the Viterbi algorithm completely decodes the message and the error detection indicates that the packet contains error bits. Consequently, the method of this invention feeds back the retransmission request faster than prior art for communications systems with automatic repeat request (ARQ).
The packet length of the invention method is much smaller than that of Turbo codes. Thus, for ARQ, the number of bits required for retransmission for the invention method is often smaller. For example, Turbo codes might have a packet length of 65536 bits and the method of this invention a packet length of 500 bits. For a bit error rate of 10', the error probability of a packet with 65536 bits will be much higher than that of a packet with 500 bits. If a packet error occurs, the number of bits required for retransmission is 500 for the invention method, while the number of bits required for retransmission using the Turbo code is 65536.
Compared with Turbo codes, the invention provides a method which enables a decoder to achieve a better performance without the requirements of estimation the noise variance.
On fading channels, the received signal strength varies from time to time. If the fading is severe, the decoder using the method of this invention will go to higher complexity decoding procedure more often. Thus, the channel performance can be estimated by measuring the frequency with which the decoder goes to higher complexity decoding procedures. This provides a mechanism for controlling transmission power.
It is shown in simulation and predicted by theory that the error rate of bits at the beginning and the end of the packet is lower than those in the middle. Thus, the important bits can be placed to those locations, which will be better protected. Even when packet error occurs, these bits are most likely correct. Thus, instead of dropping the whole packet, the detector might still be able to use these bits to provide a better quality service. For example, the first 29 bits were never wrong in 50,000 packets for code b. Furthermore, the merging points for decoding procedures with different levels of complexity can clearly indicate the unreliable region, thus those bits at the beginning and the end of the packet can be selected more P:\OPER\LKA\ANU.WEI 26/6/98 -32reliably. The metric can also help the decoder to select the reliable bits. The invention thus provides methods that enable the coder to position the important bits at reliable positions and the decoder to recover them reliably and efficiently. For example in the European GSM mobile system the method of this invention could offer a better protection for the class 1 bits and the protection can be implemented easily.
Different low complexity soft output algorithms can be applied in the invention. Thus, the invention provides a platform not only for the decoder to achieve a better performance, but also to provide a flexible tool to integrate with other encoders and decoders, such as in concatenated systems.
The bootstrap decoding algorithm using the hierarchical structure has the following advantages: The weak parity check can reduce the correlation between received signals. Thus, for a medium packet size this concatenated combination is better than Turbo codes.
It will reduce the peak complexity size. For example, the bi-directional M-algorithm with M=262144 is required to near optimally decode a good rate 1/2 code with minimum distance 36 in the hierarchical structure. However, if an optimal rate 1/2 code of memory length 14 (dfte=18) is used, then a block code with minimum distance 36 could be constructed, where each packet stream can be near optimally decoded by a much simple decoder the bi-directional M-algorithm with M=512).
With the hierarchical decoder (for speech) and the bootstrap decoding algorithm using the hierarchical structure (for data), we can transmit both types of information over a communication system with a given transmitter power. It is often required to transmit data and speech information over a communication system. The error performance requirements for both types of information are very different. For data information, the delay can be large, but the error rate is typically less than 10'. For speech information, the delay should be small, but the error rate is typically about 10 3 (or packet drop rate of Traditionally, convolutional codes concatenated with a Reed-Solomon code are used for data information.
This often requires very large interleaver sizes which are tens or hundreds of thousands of p:\OPER\LKA\ANU.WEI 2616/98 33 bits. Very few systems can accept such large interleaver sizes. With a similar amount of redundancy as RS codes, the bootstrap decoding algorithm using the hierarchical structure can provide a similar BER with a block size up to only a few thousands of bits. Thus, in such systems, the speech signal will be decoded by the hierarchical decoder, while the data signal will be decoded by the bootstrap decoding algorithm using the hierarchical structure. For a same transmitter power level, both data and speech information can satisfy their error performance criteria.
The bootstrap decoding algorithm using the hierarchical structure or its modifications are most suitable for data communications. By simply modifying most of existing telecommunications systems where the Viterbi algorithm is used, the possible performance gain is at least 1dB.
The method of this invention is also applicable to other cases such as ISI, multiuser detection, and CPM, where the Viterbi algorithm can perform optimal detection.
The foregoing describes only some of the possible variations applicable to this invention and modifications can be made without departing from the scope of the invention.

Claims (22)

1. A method of decoding digital data encoded in a sequence of information packets using a selected set of subprocedures formed by individual decoding algorithms of differing complexity, said method including the steps of: applying a first selected one of said subprocedures to each of said information packets; performing an error test during or upon completion of said first selected subprocedure; if said error test is not passed applying another subprocedure selected from said set and chosen according to a predetermined set of rules relating said subprocedures and defining a last subprocedure in any sequence of chosen subprocedures; performing an error test during or after completion of said another subprocedure and repeating step if said error test is not passed and said last subprocedure has not been applied; if said error test is passed outputting the result of the last applied subprocedure or if said error test is not passed and last subprocedure has been applied outputting a result based on one or more of the applied subprocedures.
2. A method of decoding digital data encoded in a continuous data stream using a selected set of subprocedures formed by individual decoding algorithms of differing complexity, said method including the steps of: dividing the encoded data into discrete information packets; applying a first selected one of said subprocedures to each of said information packets; performing an error test during or upon completion of said first selected subprocedure; if said error test is not passed applying another subprocedure selected from said set and chosen according to a predetermined set of rules relating said subprocedures and defining a last subprocedure in any sequence of chosen subprocedures; performing an error test during or after completion of said another subprocedure and repeating step if said error test is not passed and said last subprocedure has not been applied; if said error test is passed outputting the result of the last applied subprocedure or if said P:\OPER\LKA\ANU.WEI 26j6/98 error test is not passed and last subprocedure has been applied outputting a result based on one or more of the applied subprocedures.
3. A method as claimed in claim 1 or claim 2 wherein the last applied subprocedure is determined by the level of operational complexity.
4. A method as claimed in claim 1 or claim 2 wherein if the error test is not passed and the last subprocedure has been applied the output is based on the decoding that has been performed.
A method as claimed in claim 1 or claim 2 wherein if the error test is not passed and the last subprocedure has been applied no output is produced.
6. A method as claimed in claim 1 or claim 2 wherein an index of operational complexity is associated with each of said subprocedures and said predetermined set of rules relate to the index.
7. A method as claimed in claim 6 wherein the index of operational complexity defines a hierarchy.
8. A method as claimed in claim 7 wherein said hieracy is a strict linear hieracy based on increasing levels of computational complexity.
9. A method as claimed in claim 1 or claim 2 wherein said error test uses a computational metric which provides a probability score relating to the likelihood of the data being correct. A method as claimed in claim 1 or claim 2 wherein said individual decoding algorithms are bidirectional and said error test is based on a merge condition for the decoding in each direction.
P:\OPER\LKA\ANU.WEI 26/6/98 -36-
11. A method as claimed in claim 1 or claim 2 wherein said predetermined set of rules provides for the first subprocedure to be set according to a measure of data quality.
12. A method as claimed in claim 1 or claim 2 wherein said individual decoding algorithms are the M-algorithm.
13. A method as claimed in claim 1 or claim 2 wherein said information packets are decoded in parallel sets and decoding of at least one information packet utilises parity check with other information packets in said set.
14. A method as claimed in claim 13 wherein each said parallel set contains at least three packets of information and at least two of said packets of information are decoded using parity constraints after successful decoding of the other packets of information in the set.
15. A method as claimed in claim 14 wherein the parity constraint based on a relationship between computational metrics respectively providing a likelihood of the data in each of the last two information packets being correct, one of said computational metrics being based on parity constraints and the other being used in the decoding algorithm.
16. A method as claimed in claim 13 wherein at least some of the parity checks are based on a relationship between computational metrics respectively providing a likelihood of the data in two of said information packets being correct.
17. A method as claimed in claim 16 wherein one of said computational metrics corresponds to the information packet being decoded and is not based on parity constraints and the other computational metric relates to another packet in the set and is a parity constraint metric.
18. A method as claimed in claim 17 wherein said another packet in the set is a distrusted information packet. P:\OPER\LKA\ANU WEI 26/6/98 -37-
19. A receiver for a digital signal transmitted over a channel in an encoded sequence of packets of information, said receiver including: receiving means to receive said packets from said channel; decoding means to apply a first one of a selected set of subprocedures formed by individual decoding algorithms of differing complexity to each of said information packets; testing means to perform an error test during or upon completion of said first selected subprocedure; if said error test is not passed said decoding means applying another subprocedure selected from said set and chosen according to a predetermined set of rules relating said subprocedures and defining a last subprocedure in any sequence of chosen subprocedures, said testing means being adapted to perform a further error test during or after completion of said another subprocedure and to activate said decoding means to apply another of said subprocedures if said error test is not passed and said last subprocedure has not been applied, and output means operable if said error test is passed or said last subprocedure has been applied to respectively output the result of the last applied subprocedure or a result based on one or more of the applied subprocedures.
A receiver for a digital signal transmitted over a channel in an encoded continuous stream, said receiver including: receiving means to receive said data from said channel; means to convert the encoded data into discrete information packets; decoding means to apply a first one of a selected set of subprocedures formed by individual decoding algorithms of differing complexity to each of said information packets; testing means to perform an error test during or upon completion of said first selected subprocedure; if said error test is not passed said decoding means applying another subprocedure selected from said set and chosen according to a predetermined set of rules relating said subprocedures and defining a last subprocedure in any sequence of chosen subprocedures, said testing means being adapted to perform a further error test during or after completion of said another subprocedure and to activate said decoding means to apply another of said subprocedures if P:\OPER\LKA\ANU.WEI 26/6/98 -38- said error test is not passed and said last subprocedure has not been applied, and output means operable if said error test is passed or said last subprocedure has been applied to respectively output the result of the last applied subprocedure or a result based on one or more of the applied subprocedures.
21. A method of decoding digital data in a sequence of information packets including the steps of forming sets of said information packets for decoding each said set containing at least three information packets in at least a first iteration applying a selected decoding algorithm to at least all except two of the information packets in a set in at least a second or subsequent iteration decoding at least one information packet utilising a parity check with other information packets in said set, at least some of the parity checks being based on a relationship between computational metrics respectively providing a likelihood of the data in two of said information packets being correct and wherein one of said computational metrics corresponds to the information packet being decoded and is not based on parity constraints and the other computational metric relates to another packet in the set and is a parity constraint metric.
22. A method of decoding digital data according to any one or more of the examples.
AU73231/98A 1997-06-26 1998-06-26 Decoding method and apparatus Withdrawn AU7323198A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
AU73231/98A AU7323198A (en) 1997-06-26 1998-06-26 Decoding method and apparatus

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
AUPO7576 1997-06-26
AUPO7576A AUPO757697A0 (en) 1997-06-26 1997-06-26 Decoding method and apparatus
AU73231/98A AU7323198A (en) 1997-06-26 1998-06-26 Decoding method and apparatus

Publications (1)

Publication Number Publication Date
AU7323198A true AU7323198A (en) 1999-01-07

Family

ID=25637269

Family Applications (1)

Application Number Title Priority Date Filing Date
AU73231/98A Withdrawn AU7323198A (en) 1997-06-26 1998-06-26 Decoding method and apparatus

Country Status (1)

Country Link
AU (1) AU7323198A (en)

Similar Documents

Publication Publication Date Title
KR100491910B1 (en) Method and apparatus for detecting communication signals having unequal error protection
KR100566084B1 (en) Soft decision output decoder for decoding convolutionally encoded codewords
EP0834222B1 (en) Parallel concatenated tail-biting convolutional code and decoder therefor
CA2020899C (en) Generalized viterbi decoding algorithms
US7249304B2 (en) Apparatus and method for error correction in a CDMA mobile communication system
CA2068159A1 (en) Generalized viterbi algorithm with tail-biting
KR100374787B1 (en) Bandwidth-efficient concatenated trellis-coded modulation decoder and method thereof
KR20020018643A (en) Method and system for fast maximum a posteriori decoding
US7218683B2 (en) Channel encoding/decoding method and multiple-antenna communication transmitting/receiving system performing the same
US5822340A (en) Method for decoding data signals using fixed-length decision window
US6665832B1 (en) Slotted mode decoder state metric initialization
US7272771B2 (en) Noise and quality detector for use with turbo coded signals
RU2301492C2 (en) Method and device for transmitting voice information in digital radio communication system
US7225392B2 (en) Error correction trellis coding with periodically inserted known symbols
AU7323198A (en) Decoding method and apparatus
Ho et al. Optimal soft decoding for combined trellis-coded quantization/modulation
JP2000253083A (en) Method for detecting and decoding differential modulation code
US6742158B2 (en) Low complexity convolutional decoder
US20050086577A1 (en) Method and arrangement for enhancing search through trellis
JP3514213B2 (en) Direct concatenated convolutional encoder and direct concatenated convolutional encoding method
KR100267370B1 (en) A low-complexity syndrome check error estimation decoder for convolutional codes
Pukkila Source and Channel Encoder and Decoder Modeling
Sundberg Generalizations of the Viterbi Algorithm with applications in radio systems
Yoo et al. An efficient high-speed block turbo code decoding algorithm and hardware architecture design
HoAhn et al. Single trellis decoding of Reed-Solomon and convolutional concatenated code

Legal Events

Date Code Title Description
MK12 Application lapsed section 141(1)/reg 8.3(2) - applicant filed a written notice of withdrawal