# Patent

## Title
Dynamic iterative decoding for balancing quality of service parameters

## Abstract

This application is a continuation of copending International Application No. PCT/DE98/00221, filed Jan. 23, 1998, which designated the United States.

## Background
The invention relates to a method for frame error detection in a data transmission, and to a device for performing the method.

In order to make maximum use of the limited capacity of an available transmission channel, before data transmission in the transmitting direction, especially in video, audio and speech transmission, a source coding is done in order to eliminate redundance from the data and thus compress the data to be transmitted. Often the data to be transmitted are first divided up into so-called frames. These frames can be time slots of a certain duration or can also be spectral ranges or image excerpts or segments. Then in the source coding, parameters are ascertained that describe or determine the data to be transmitted as accurately as possible. This is known as parametric source coding. One example of it in the case of speech coding is GSM full-rate coding. In speech source coding (speech coding), the ascertained parameters are also called speech coefficients.

In the transmission of these compressed data, if the channel conditions are poor, errors can occur despite protective provisions such as channel coding; then the received speech, for instance, is greatly interfered with and may even becomes unintelligible. In the GSM standard, all the received speech frames are therefore first classified as good or bad with the aid of a frame error detection criterion. The bad frames are then replaced with a frame, which typically results from extrapolating one or more previously received "good" frames. The interference in the speech can thus be reduced, and the speech intelligibility is preserved.

In GSM full-rate transmission, for instance, the speech is subdivided into frames of 20 ms each, and each frame is compressed into 260 bits by the full-rate or enhanced full-rate coder. These bits are ranked by their importance as class 1a, 1b, and class 2. The 50 bits in class 1a are secured, among other things by way of a parity check, with 3-bits. If this CRC (cyclic redundancy check) shows an error, then the frame is declared bad. The 3-bit parity check in the full-rate speech coder has a certainty of approximately 7/8 for error detection; that is, good frames are found to be bad and vice versa. Bad frames that have been detected as good are often heard as a pronounced "crackling" in the speaker of the mobile phone.

It is accordingly an object of the invention to provide a method for frame error detection and a device for performing this method which overcomes the above-mentioned disadvantages of the heretofore-known methods and devices of this general type and which can detect the frame errors more reliably. In particular it is an object of the invention to reliably detect those frames that have a good quality as good frames and to detect the frames that have a bad quality as bad frames.

With the foregoing and other objects in view there is provided, in accordance with the invention, a method for frame error detection, which comprises:

determining, in a receiver, a plurality of comparison values including a given comparison value depending on at least one of a frame energy of a given speech frame and a frame energy change between the given speech frame and a preceeding speech frame; and

identifying the given speech frame as a bad speech frame if a logical combination of a plurality of criteria is met, one of the criteria being based on a comparison of the given comparison value with a threshold value.

In accordance with another mode of the invention, at least one of the comparison values is determined from a linear combination of at least one value selected from the group consisting of values based on a cyclic redundancy check, values depending on the frame energy of the given speech frame, values depending on the frame energy change between the given speech frame and the preceeding speech frame, values depending on parameters of the given speech frame ascertained from a parametric source coding process, and values depending on changes of the parameters of the given speech frame with respect to parameters of the preceding speech frame.

In accordance with yet another mode of the invention, a source coding is performed within a data transmission, the source coding including a linear predictive coding, and at least one of the comparison values is determined on the basis of a change in at least one linear predictive coding filter coefficient of the given speech frame compared with a corresponding linear predictive coding filter coefficient of the preceding speech frame.

In accordance with a further mode of the invention, a source coding is performed within a data transmission, the source coding includes a long-term prediction, and at least one of the comparison values is determined on the basis of a value of a long-term prediction delay.

In accordance with yet a further mode of the invention, a source coding is performed within a data transmission, the source coding includes a regular pulse excitation analysis, and at least one of the comparison values is determined on the basis of at least one block amplitude or on the basis of a rest energy value of a subframe.

In accordance with a further mode of the invention, an error propagation is reduced by correcting values of parameters to be stored in a memory for subsequent calculations.

With the objects of the invention in view there is also provided, a device for frame error detection, which is preferably included in a receiver, the device comprising:

a determining unit for determining a plurality of comparison values including a given comparison value depending on at least one of a frame energy of a given speech frame and a frame energy change between the given speech frame and a preceding speech frame;

a comparison unit connected to the determining unit, the comparison unit performing comparison operations including a comparison of the given comparison value with a threshold value;

a logic unit connected to the a comparison unit, the logic unit performing a logical combination of the comparison operations;

an identifier unit connected to the logic unit, the identifier unit identifying the given speech frame as a bad speech frame based on the logical combination; and a calculation unit connected to the determining unit, the calculation unit calculating the frame energy of the given speech frame.

In accordance with another feature of the invention, the calculation unit estimates the frame energy of the given speech frame.

In accordance with yet another feature of the invention, an evaluation unit is connected to the determining unit, the evaluation unit evaluating a cyclic redundancy check.

In accordance with a further feature of the invention, an ascertaining unit is connected to the determining unit, the ascertaining unit ascertaining parameters specific for data transmitted within the given speech frame and the preceding speech frame.

In accordance with another feature of the invention, a correction unit is connected to the ascertaining unit, the correction unit correcting the parameters such that an error propagation is reduced, and a storage unit is connected to the ascertaining unit, the storage unit storing corrected parameters for subsequent calculations.

The object of the invention is achieved by declaring frames as wrong if a certain logical combination of a plurality of different criteria is met. At least one criterion is to compare a so-called comparison value, which is ascertained in the receiving device, with a predetermined threshold value. If the threshold value is exceeded or undershot, then the criterion is considered to be met.

In a preferred embodiment of the invention, this comparison value is calculated by a mathematical function, whose arguments may be measured values or values that are available within the digital processing.

Another advantageous embodiment of the invention provides that at least one of the comparison values to be ascertained depends, among others, on the frame energy or its change relative to the frame energy of a preceding frame. The frame energy can also be estimated. This estimate can, particularly if a parametric source coding is performed within the data transmission in the transmitter, be made with the aid of the parameters ascertained thereby. It is thus possible to obtain an estimated value for the frame energy, without having to perform a source decoding. Hence the method is distinguished by its relative lack of complexity.

According to another feature of the invention, in which a parametric source coding is performed within the data transmission in the transmitter, at least one of the parameters ascertained in the process, or its change compared with the corresponding parameter of a preceding frame, is used to calculate at least one of the aforementioned comparison values.

A further preferred embodiment provides that at least one of these comparison values is based, among others, on the cyclic redundancy check (CRC).

By incorporating the invention into the GSM system concept, it is possible regardless of the speech coder used (full-rate, half-rate, or enhanced full-rate coder), to achieve a substantial improvement in speech quality.

Other features which are considered as characteristic for the invention are set forth in the appended claims.

Although the invention is illustrated and described herein as embodied in a method and a device for frame error detection, it is nevertheless not intended to be limited to the details shown, since various modifications and structural changes may be made therein without departing from the spirit of the invention and within the scope and range of equivalents of the claims.

The construction and method of operation of the invention, however, together with additional objects and advantages thereof will be best understood from the following description of specific embodiments when read in connection with the accompanying drawings.

FIG. 1 is a block diagram illustrating the steps of the method for frame error detection according to the invention; and

FIG. 2 is a schematic block diagram of a device for frame error detection according to the invention.

Referring now to the figures of the drawings in detail and first, particularly, to FIG. 1 thereof, there is shown that received data (RD) preferably pass through a channel decoder (CD) in a first step. After that, a cyclic redundancy check (CRC) is performed, and depending on the outcome of this check, a comparison value F.sub.CRC is determined. In addition, from the parameters (PD) that have been ascertained in the transmitter by a parametric source coding method, the frame energy is estimated (EE) and the change in energy compared with the energy of preceding frames is calculated (DE), and from this a comparison value F.sub.E is determined. Furthermore, the change in these parameters (PD) compared with the corresponding parameters of preceding frames is calculated (DP) and from that a comparison value F.sub.C is determined. These comparison values F are compared with threshold values, and these comparison operations are logically linked with one another (LC). Depending on the outcome of this logical linkage, a frame is declared to be bad or good. A frame declared to be bad can advantageously be marked by setting a BFI flag (Bad Frame Indication). The bad frames are then replaced in the source decoder by a frame that is obtained by extrapolation, typically from one or more previously received "good" frames. Thus, with the aid of the parameters (PD), the original data can largely be restored in the source decoder (QD) having an output (OD).

In a special embodiment of the method of the invention, within the data transmission in the transmitter, a parametric speech coding method, such as the GSM full-rate, half-rate or enhanced full-rate coding, is performed.

The comparison values F to be ascertained in the receiving device are preferably based on the following calculations performed in the receiving set: frame energy and its change between two successive frames from the speech coefficients (parameters of the parametric source coding; F.sub.E); source coding) and their change between successive frames (F.sub.C, F.sub.CLAR, F.sub.CX, F.sub.CN)

Advantageously, for comparison values whose values are defined in the range of 0 (good) to 100 (bad), a threshold of 95 is for instance defined. If at least one of the ascertained comparison values exceeds this threshold, or if a plurality of comparison values added together exceed a higher threshold of 150, for instance, then the frame is bad; if not, it is good. If a frame is declared bad, then the BFI (Bad Frame Indication) flag is set. The determination of the BFI flag is illustrated in the following relation (1). ##EQU1##

If the GSM full-rate speech coder is used, the individual comparison values can advantageously be ascertained as follows.

A) CRC comparison value F.sub.CRC

The received decoded parity bits are compared with the parity bits that are ascertained from the received decoded 50 bits in class 1a. If there is no match between them, then the CRC comparison value F.sub.CRC is set for instance to a value of F.sub.CRC =100 (bad frame), and if not, a value of F.sub.CRC =0 is set.

B) Energy comparison value F.sub.E =F.sub.E1 +F.sub.E2

Energy estimation with the aid of the 76 speech coefficients of one frame.

The energy of one speech frame, which is 20 ms long, is unknown before the speech decoding. In order not to have to perform speech decoding twice, the frame energy E.sub.GES can be estimated from the 76 speech coefficients. This energy estimate can preferably be made as follows:

First, a so-called energy E.sub.rest is determined by the following formula for the subframe m, which is 5 ms in length (m=0, 1, 2, 3) ##EQU2##

in which x'.sub.max represents the delogarithmized coefficient x.sub.max (block amplitude), and x.sub.m (i) represents the RPE pulses of the subframe m. A functional description of RPE coding is given in the "GSM Recommendations" GSM 06.10, Chapter 3.

In the next step, in a rough approximation, the energy E.sub.Subfr for the current subframe m is ascertained. In this process, depending on the LTP (Long Term Predictor) delay N and the amount of similarity q.sub.b, the energy of the third from last, next to last or previous subframe is added to the energy E.sub.rest, weighted in each case with q.sub.b :

The following advantageous allocation for the subframes m-1 (1=1,2,3; if m-1<0, this corresponds to the subframe m-1+4 of the last total frame that was identified as being "good") and the weighting q.sub.b depending on the LTP delay N 9.sup.th, 26.sup.th, 43.sup.rd, and 60.sup.th coefficient, each quantized with 7 bits) and the value b (10.sup.th, 27.sup.th, 44.sup.th and 61.sup.st coefficient, each quantized with 2 bits) is conceivable (see also the "GSM Recommendations" GSM 06.10, Chapter 3): Allocation of the coefficient b to the quality q b    q.sub.b 0    0.1 1    0.35 2    0.65 3    1.0 Allocation of the coefficient N to the number of the subframe Delay N            Subframe (m - 1) .ltoreq.60             m - 1 61 . . . 100       m - 2 .gtoreq.101            m - 3

The energy E.sub.Subfr is determined for all four subframes, each subframe being 5 ms long. If an error is found in the preceding frame (if the BFI flag is set), then a reference is made to the last good frame, and the energy per erroneous frame is damped by 20%, for instance.

The energy E.sub.HP before the concluding Deem phase is calculated as follows: ##EQU3##

in which r.sub.m (i) stands for the reflection coefficients calculated from the LAR (Log.-Area Ratio) coefficients (see "GSM Recommendations" GSM 06.10, Chapter 3). The energies EHP for four subframes are added together and thus yield the total energy of one frame before the Deem phase through the low-pass filter. This energy is logarithmized and then the numerical value 23 (chosen arbitrarily) is subtracted from the result. A value of 0 dB then corresponds to a very faint background noise. ##EQU4##

The energy is changed only a little bit by the high-pass filter. The following is therefore obtained:

Determination of the energy comparison value F.sub.E =F.sub.E1 +F.sub.E2

i) F.sub.E1 : Measurements of many speech samples have shown that the energy of a speech signal E=E.sub.m (E.sub.m =energy E.sub.ges of the current frame) never exceeds a certain value of 57 dB, for instance, and rarely exceeds a value of 48 dB. On example for realizing the calculation of F.sub.E1 is shown in the following: ##EQU5##

ii) F.sub.E2 : The change in energy .DELTA.E=.vertline.E.sub.m -E.sub.m-1.vertline. between a current frame and a preceding frame is normally less than a certain limit value .DELTA.E.sub.max. However, this change is dependent on the absolute energy E.sub.m. If a greater change occurs, then there is a very high probability that a transmission error in the channel is has occurred. In addition, limit values .DELTA.E.sub.rare for the energy changes, which occur very seldom (for instance less than 5%), also exist. In the following table, one possible realization of these two limit values is shown; the absolute energy is described in 5 dB steps as min{E.sub.m-1, E.sub.m }. Maximum of allowed energy change and rarely occurring energy change (beyond this value, an energy comparison value is calculated which is a measure for the error probability in the current speech frame) as a function of the absolute energy of the speech frame. min{E.sub.m-1, E.sub.m } [dB} <5 <10 <15 <20 <25 <30 <35 <40 <45 <50 <55 <57 ab 57 .DELTA.E.sub.max  [dB] 42   39     36     30     27     24     20     16 12     9      6      3      0 .DELTA.E.sub.rare  [dB] 22   19     18     17     15     14     12     9 6      4      3      1      --

Table 3: Maximum of allowed energy change and rarely occurring energy change (beyond this value, an energy comparison value is calculated which is a measure for the error probability in the current speech frame) as a function of the absolute energy of the speech frame.

One conceivable variant realization for calculating F.sub.E2 is shown as follows: ##EQU6##

The maximum for the energy comparison value F.sub.E is preferably limited to 100.

C) Coefficient comparison values F.sub.C, F.sub.CLAR, F.sub.CX, F.sub.CN

Statistical investigations of speech frames have shown that some of the 76 speech coefficients that are generated in the GSM full-rate speech coder vary only very slightly; this includes the eight LAR coefficients from the LPC analysis and the four X.sub.max coefficients from the RPE analysis. This correlation of the coefficients can therefore be employed to detect frame errors. If the change is greater than a certain value, then this can with high likelihood be ascribed to a channel error. The four LTP delay coefficients represent a special case, whose absolute allowed range of values is limited. If a received value is outside that range, this can be taken into account for the frame error detection.

Advantageously, the coefficient comparison values can be determined as follows:

i) F.sub.CLAR : As in the energy consideration, a maximum value by which the coefficients change is indicated. If the change is even greater, the coefficient comparison value F.sub.CLAR is set to 100. There is also a change that occurs very seldom (in fewer than 5% of the cases). Between these two values, the coefficient comparison value F.sub.CLAR is increased linearly from 0 to 100. In the following table, a possible allocation of these values to the eight LAR coefficients is shown: Range of values, maximum allowed change, and rarely occurring change (beyond this value, a coefficient comparison value is calculated, which is a measure for the likelihood of error in the current speech frame) as a function of the number of the speech coefficient. Coefficient LAR           1      2      3      4      5      6      7      8 Value Range   0-63   0-63   0-31   0-31   0-15   0-15   0-7    0-7 .DELTA..sub.max  31     31     15     15     8      8      -- -- .DELTA..sub.rare  24     24     12     12     6      6      4      4

Since the LAR coefficients 7 and 8 are not as significant for the intelligibility of the speech, the coefficient comparison value F.sub.CLAR is set to 40, if the change is from 5 to 7, and to 20, if the change is 4. The coefficient comparison value F.sub.CLAR is under no circumstances set to 100, which is why no maximally allowed .DELTA..sub.max is indicated. Since a major change nevertheless is an indication of a channel error, and channel errors usually occur in clusters (fading), the LAR coefficients 7 and 8 are taken into account to a certain extent. The result obtained is thus an additional value for the coefficient criterion, which makes it possible to have a more certain decision concerning a channel error. In the second line of the table, the range of values that the LAR coefficients can assume is shown.

ii) F.sub.cx : The coefficient x.sub.max (block amplitude) is ascertained per subframe; in other words, for every 20 ms frame, it is provided four times. On the one hand, the sum of the four changes of x.sub.max between the individual subframes is calculated. If this value is greater than 64, then the coefficient comparison value F.sub.cx is set to 100; for values between 48 and 64, it is calculated linearly from 0 to 100. On the other hand, the maximum value of the four changes is determined. If it is greater than 31, then the coefficient comparison value F.sub.cx is set to 100, and for values of 24 through 31, it is raised linearly from 0 to 100.

iii) F.sub.CN : The LTP delay N is quantized with 7 bits and thus has a range of values from 0 to 127. Due to the definition of the LTP analysis, however, a range of only between 40 and 120 is permitted. Thus a value from 0 tp 39 or from 121 to 127 can always be ascribed to a channel error. Since such a value virtually always represents an error in the class 1a bits (6 of the 7 bits of this LTP coefficient are class 1a bits, so that only a value change from 120 to 121 is not an error in the class 1a bits), it follows that such a value is virtually always an indication of errors in the class 1a bits. These errors are especially disturbing and problematic. A coefficient comparison value F.sub.CN can therefore be defined advantageously and simply as follows: ##EQU7##

iv) F.sub.C : The values F.sub.CLAR, F.sub.CX, F.sub.CN are added together and yield the coefficient comparison value F.sub.C. The maximum value for it is therefore preferably limited to 140.

Because a current value is always compared with a previous value when changes occur, the risk of error propagation exists whenever an erroneous parameter is stored in memory and is thus used as a comparison value for the next frame. As a result, a frame error may subsequently be detected even though the received bits were all correct. To rule out the possibility of error propagation as much as possible, the comparison of a wrongly stored value with a new value should preferably be avoided. To that end, preferably the old values can be corrected before being stored in memory. One possible way of storing the old values in memory will now be described. First, reference will be made to the LAR coefficients 1 through 6. If the change in the two LAR values is greater than the maximum value shown in Table 4, then the following value is stored in memory ##EQU8##

with i .epsilon. {1 . . . 6}

in which LAR.sub.s is the new value to be stored in memory, LAR.sub.0 is the old value, and LAR.sub.akt is the current received value. With this calculation, the possibility that a lesser or smaller change in the corresponding direction has occurred is taken into account. If the change is between the two values shown in the table, then (11)

in which LAR.sub.akt is the current frame value. For the LAR coefficients 7 and 8, the value is set to 3, if the old stored value is <4 and if the change was at least 4, and is set to 4 if the old stored value was >4. The probability that in the next frame F.sub.CLAR will be raised because of the LAR coefficients 7 and 8 is consequently very small. An error propagation due to less significant coefficients would be especially disturbing and problematic.

For all eight LAR coefficients follows LAR.sub.s [i]=LAR.sub.akt [i], if the change is less than .DELTA..sub.rare.

For the coefficient X.sub.max, the change in the coefficient between the third and fourth subframes is looked at. If this change is at most 20, then the value of the fourth subframe is stored in memory for the next pass; if not, the mean value is formed from the old stored value and the four current values.

For one skilled in the art, it is easy to employ the embodiment of the method of the invention for frame error detection described here, in other methods. In particular, the method of the invention can be employed in parametric source coding methods, such as half-rate or enhanced full-rate coding, but also in audio and video source coding, by ascertaining comparison values for the frame energy and the parameters adapted to the particular type of data to be transmitted.

A configuration corresponding to the method of the invention may for example be provided in a receiver MR and provides a digital processor (determining unit MD, comparison unit MC, logic unit ML, identifier unit MI), which ascertains the aforementioned comparison values with a procedure within a program and compares these comparison values with threshold values. This digital processing unit also links these comparison operations logically with one another and provides frames with a marking (BFI) if this aforementioned logical combination is met. This processor also calculates current values to be stored in a memory MS, so that the appropriate comparisons can be made in a comparison unit MC.

The digital signal processing unit (evaluation unit MCRC, calculation unit ME, ascertaining unit MP) of a preferred embodiment of the configuration of the invention also performs a CRC and ascertains parameters that are calculated within the data transmission by a parametric source coding method and estimates the frame energy with the aid of these parameters.

A further configuration according to the invention also has memories (MS) for storing possibly corrected parameters that are needed for later calculations, so that the appropriate comparisons can be made.

The devices recited for setting up the configurations described above are realized by one skilled in the art for instance with the aid of suitable software modules, which run on processors that are typically provided in communications terminal equipment of the type mentioned above. The description of the method of the invention enables one skilled in the art to readily set up such software modules.

## Claims

1. A method for frame error detection, which comprises: given comparison value depending on at least one of a frame energy of a given speech frame and a frame energy change between the given speech frame and a preceeding speech frame; and combination of a plurality of criteria is met, one of the criteria being based on a comparison of the given comparison value with a threshold value.

2. The method according to claim 1, wherein the determining step includes estimating at least one of the frame energy and the frame energy change.

3. The method according to claim 1, which comprises calculating at least one of the comparison values with a mathematical function having arguments with values other than the given comparison value.

4. The method according to claim 1, which comprises determining, with a parametric source coding process performed within a data transmission, at least one of the comparison values on the basis of at least one of parameters of the given speech frame and changes of the parameters of the given speech frame with respect to parameters of the preceding speech frame.

5. The method according to claim 1, which comprises determining at least one of the comparison values on the basis of a cyclic redundancy check.

6. The method according to claim 1, which comprises determining at least one of the comparison values from a linear combination of at least one value selected from the group consisting of values based on a cyclic redundancy check, values depending on the frame energy of the given speech frame, values depending on the frame energy change between the given speech frame and the preceeding speech frame, values depending on parameters of the given speech frame ascertained from a parametric source coding process, and values depending on changes of the parameters of the given speech frame with respect to parameters of the preceding speech frame.

7. The method according to claim 6, wherein the determining step includes estimating at least one of the frame energy and the frame energy change.

8. The method according to claim 1, which comprises: including a linear predictive coding; and in at least one linear predictive coding filter coefficient of the given speech frame compared with a corresponding linear predictive coding filter coefficient of the preceding speech frame.

9. The method according to claim 1, which comprises: including a long-term prediction; and of a long-term prediction delay.

10. The method according to claim 1, which comprises: performing a source coding within a data transmission, the source coding including a regular pulse excitation analysis; and one block amplitude.

11. The method according to claim 1, which comprises: including a regular pulse excitation analysis; and energy value of a subframe.

12. The method according to claim 1, which comprises reducing an error propagation by correcting values of parameters to be stored in a memory for subsequent calculations.

13. A device for frame error detection, comprising: including a given comparison value depending on at least one of a frame energy of a given speech frame and a frame energy change between the given speech frame and a preceding speech frame; performing comparison operations including a comparison of the given comparison value with a threshold value; performing a logical combination of the comparison operations; identifying the given speech frame as a bad speech frame based on the logical combination; and unit calculating the frame energy of the given speech frame.

14. The device according to claim 13, wherein said calculation unit estimates the frame energy of the given speech frame.

15. The device according to claim 13, including an evaluation unit connected to said determining unit, said evaluation unit evaluating a cyclic redundancy check.

16. The device according to claim 13, including an ascertaining unit connected to said determining unit, said ascertaining unit ascertaining parameters specific for data transmitted within the given speech frame and the preceding speech frame.

17. The device according to claim 16, including: correcting the parameters such that an error propagation is reduced; and storing corrected parameters for subsequent calculations.

18. A receiver, comprising: including a given comparison value depending on at least one of a frame energy of a given speech frame and a frame energy change between the given speech frame and a preceding speech frame; performing comparison operations including a comparison of the given comparison value with a threshold value; a logical combination of the comparison operations; identifying the given speech frame as a bad speech frame based on the logical combination; and unit calculating the frame energy of the given speech frame.