CA2090284C - Method for detecting and masking bad frames in coded speech signals - Google Patents
Method for detecting and masking bad frames in coded speech signalsInfo
- Publication number
- CA2090284C CA2090284C CA002090284A CA2090284A CA2090284C CA 2090284 C CA2090284 C CA 2090284C CA 002090284 A CA002090284 A CA 002090284A CA 2090284 A CA2090284 A CA 2090284A CA 2090284 C CA2090284 C CA 2090284C
- Authority
- CA
- Canada
- Prior art keywords
- bits
- group
- frame
- decoding
- check
- 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.)
- Expired - Fee Related
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/0078—Avoidance of errors by organising the transmitted data in a format specifically designed to deal with errors, e.g. location
- H04L1/0083—Formatting with frames or packets; Protocol or part of protocol for error control
Abstract
The process for detection and masking of bad frames in a coded speech signal resulting from channel transmission errors has been improved. The coded speech signal has a first group of bits comprising the most perceptually significant bits of the coded speech signal, a second group of bits comprising the second most perceptually significant bits and a third group of bits comprising the least perceptually significant bits. The coded speech signal is de-interleaved to obtain a first series of bits comprising the first and second group and a second series of bits comprising the third group of bits.
The first series of bits are convolutionally decoded for recovering the first and second group of bits, with the first group of bits containing error protected bits. A CRC
check is performed by sending the recovered bits of the first group to cyclic redundancy decoding means. The first group of bits is forwarded to speech decoder means if the CRC check is successful. The frame energy and LPC
parameters are replicated for the first and third group of bits and the frame energy, LPC parameters, lag value and sub-frame gain are replicated for the second group of bits, and subsequently the replicated bits are forwarded to the speech coder means, if the CRC check is not successful.
The first series of bits are convolutionally decoded for recovering the first and second group of bits, with the first group of bits containing error protected bits. A CRC
check is performed by sending the recovered bits of the first group to cyclic redundancy decoding means. The first group of bits is forwarded to speech decoder means if the CRC check is successful. The frame energy and LPC
parameters are replicated for the first and third group of bits and the frame energy, LPC parameters, lag value and sub-frame gain are replicated for the second group of bits, and subsequently the replicated bits are forwarded to the speech coder means, if the CRC check is not successful.
Description
209028~
IMPROVED METHOD FOR DETECTING AND MASKIN~ BAD FRAMES
IN CODED SPEECH SIGNALS
Fi~ld of the Invention This invention relates to speech coding and decoding and more particularly, to the recovery of encoded speech information corrupted by errors due to channel fading.
lo sackground o~ the Invention In digital cellular mobile systems, speech communication is realized by transmitting and receiving the encoded speech information bit stream through a radio channel. secause of the possibility of transmission errors in the fading channel, the received data may be totally corrupted. Thus, a channel codec (coder-decoder) is essential to mitigate the effects of transmission errors.
The channel codec must carry out three fundamental functions:
a) error correction up to the capability of the channel coding employed;
b) bad frame detection when the correction failsi and c) bad frame masking with the aid of the speech decoder to reconstruct the lost frame.
The error correction capability of a channel codec is determined by the error protection techniques used, (such as, convolution coding or Reed-Solomon coding) as ; well as other processing steps such as interleaving of frames, and feed-back of receiver status (soft channel coding).
In the new Digital Cellular Interim Standard 54 (IS-54), convolution coding and Viterbi decoding were selected as the error protection schemes.
The standard calls for a speech codec operating at 7950 bits/sec and able to produce 159 bits for each speech frame of 20 msec. The channel protection used in the standard is a multi-step channel codec. At the channel , . . . .
.
.
, '` :: ,.
:
.. . . . .
::. , '' : ~ :
, :.
.. , ,, ,, ~ .
IMPROVED METHOD FOR DETECTING AND MASKIN~ BAD FRAMES
IN CODED SPEECH SIGNALS
Fi~ld of the Invention This invention relates to speech coding and decoding and more particularly, to the recovery of encoded speech information corrupted by errors due to channel fading.
lo sackground o~ the Invention In digital cellular mobile systems, speech communication is realized by transmitting and receiving the encoded speech information bit stream through a radio channel. secause of the possibility of transmission errors in the fading channel, the received data may be totally corrupted. Thus, a channel codec (coder-decoder) is essential to mitigate the effects of transmission errors.
The channel codec must carry out three fundamental functions:
a) error correction up to the capability of the channel coding employed;
b) bad frame detection when the correction failsi and c) bad frame masking with the aid of the speech decoder to reconstruct the lost frame.
The error correction capability of a channel codec is determined by the error protection techniques used, (such as, convolution coding or Reed-Solomon coding) as ; well as other processing steps such as interleaving of frames, and feed-back of receiver status (soft channel coding).
In the new Digital Cellular Interim Standard 54 (IS-54), convolution coding and Viterbi decoding were selected as the error protection schemes.
The standard calls for a speech codec operating at 7950 bits/sec and able to produce 159 bits for each speech frame of 20 msec. The channel protection used in the standard is a multi-step channel codec. At the channel , . . . .
.
.
, '` :: ,.
:
.. . . . .
::. , '' : ~ :
, :.
.. , ,, ,, ~ .
2~028~
coder side, the 159 bits are regrouped into two classes of bits, according to their sensitivity to the regenerated speech quality. There are 77 class I bits and 82 class 2 bits. The class 1 bits are more sensitive than the class 2 bits.
A 7 bit CRC (Cyclic Redundancy Checking) is used for the purpose of error detection. These 7 bits are computed over the 12 most perceptually significant bits (this means that one error in these 12 bits will degrade lo severely the regenerated speech qua]ity). These 7 bits are part of the class 1 bits. Thus, there are in total 84 class 1 bits.
An error protection technique based on convolutional coding is applied on the class 1 bits. This convolutional coding uses a rate 1/2, 5-bit memory convolutional code. The output bits from the convolution coder are then interleaved wlth the class 2 bits. Half of these bits are then transmitted at the current time slot and the remainder are transmitted 20 ms later.
The channel decoder operates in the reversed order. That is, the received data is de-interleaved in order to recover the bits corresponding to the current speech frame, and in order to separate these bits into class 2 bits and the bits to be convolutionally decoded.
The received bits are then convolutionally decoded to recover the class 1 bits (error correction step) and a CRC
check is done of the 12 most perceptually significant bits (error detection step). A bad frame masking technique is employed whenever the CRC check fails.
The problem with this approach is two-fold.
First, the bad frame detection (CRC checking) is only based on the 12 most perceptually significant bits and the 7 CRC
bits. ~ote that a single error in these 7 bits can also cause a CRC check failure. Errors which might have occurred in the other 65 class 1 bits are not taken into account. It was determined that even if the CRC check succeeds, there could be more than 45% bit error rate in , : , ~ - , - : .
- - - : . .. . . -. . .
209028~
these 65 bits.
Second, the bad frame masking repeats only the R0 and the LPC bits. The lag bits and the sub frame gain (GSP0) bits are always used as received. sut, when CRC
checking fails, the BER for these bits is usually very high (the average is around 25%).
In both cases, the use of the Lag bits and the GSP0 bits as received, having more than 10% bit errors, will degrade the regenerated speech quality. When errors o occur in the GSP0 bits, the regenerated speech is usually explosion-like, which reduces considerably the intelligibility as well as the perceptual quality of the decoded speech.
Accordingly there is a need for an improved bad frame detection and masking technique which will help in the avoidance of explosion-like speech.
Thus, it is an object of the present invention to provide an improved error detection and bad frame masking - technique which provides smoother regenerated speech, improves intelligibility and the perceptual quality of speech.
Another object of the present invention is to provide an improved error detection technique so that errors occurring in the Class 1 bits, other than the most significant bits, can be taken into account.
Another object of the present invention is to provide an improved bad frame masking technique so that erroneous lnformation will not be used by the speech decoder Yet another object of the present invention is to provide an improved error detection and bad frame masking technique which can be implemented with the requirements of the digital cellular standard.
:
Summary of the In~ention According to a first aspect of the invention, there is provided a method of improving the detection and ~`
20~8~
masking of bad frames in a coded speech signal resulting from channel transmission errors, said coded speech signal having a first group of bits comprising the most perceptually significant bits of said coded speech signal, s a second group of bits comprising the second most perceptually significant bits and a third group of bits comprising the least perceptually significant bits, comprising:
de-interleaving said coded speech signal to obtain lo a first series of bits comprising said first and second group and a second series of bits comprising said third group of bits;
convolutionally decoding said first series of bits for recovering said first and second group of bits, said first group of bits containing error protected bits;
performing a CRC check by sending said recovered bits of said first group to cyclic redundancy decoding means;
forwarding said first group of bits to speech decoder means if said CRC check is successful; and replicating the frame energy and LPC parameters for said first and third group of bits and replicating the frame energy, LPC parameters, lag value and sub-frame gain for said second group of bits, and subsequently forwarding the replicated bits to said speech coder means, if said CRC
check is not successful.
Brief Description of the Drawings Figure 1 is a table of the bit assignment according to the IS-54 channel codec requirements;
Figure 2a is a block diagram showing the general speech coding/decoding operation of IS-54;
Figure 2b is a block diagram illustrating the decoding process according to the IS-54 standard;
Figure 2c is an illustration of the bad frame masking process required in the IS-54 standard;
Figure 3a is a table showing the decoding -.
20~Q~8~
operation required for each group of bit, according to the invention;
Figure 3b is a block diagram used for illustrating the operation of the improved speech decoder according to a first embodiment of the present invention; and Figure 3c is an illustration of the replication process according to said first and second embodiment of the invention.
o Description of the Preferred Embodiment As is shown in Figure 1, the speech information bits in digital cellular systems (TIA-IS-54 and GSM) are organised into three groups:
Group A comprises the perceptually most significant bits protected by error detection as well as protection bits. If errors are detected in this group, the decoding is considered unsuccessful and the received information is discarded. In Group A there are 3 frame energy bits, 9 Linear Prediction Coding (LPC) bits and 7 CRC bits for a total of 19 bits.
Group B comprises a larger group of perceptually significant bits covered by error correction only. This part of the received bit stream may include errors even after decoding even though the group A error detection indicates no errors. Group B bits are comprised of 1 frame energy bit, 4 LPC parameter bits, 28 pitch lag blts and 32 sub-frame gain bits for a total of 65 bits.
Group C comprises a group of perceptually less significant bits that are not protected at all. Errors in this group generally only have a minor impact on speech quality. In this group, there is 1 bit allocated to Frame Energy, 25 bits to LPC parameters and 56 bits allocated to code indices.
If we now refer to Figure 2a, we have shown a functional block diagram showing the general speech coding/decoding operation required in the IS-54 digital ; cellular standard. The drawing depicts the channel coding 2 ~
steps necessary at the transmitting end 10 before the data is transmitted on a radio traffic channel 11. At the receiving end 12 the data is decoded to recover the original information. ~ote that since both the base station radio and the mobile unit have a transrnitting and a receiving unit, the discussion of the operation of this invention will be general and will not be directed to either the base station or mobile unit specifically.
The North American digital cellular standard lo requires the use of a speech codec (coder-decoder) operating at 7950 bits/sec. It produces 159 bits for each speech frame of 20 msec.
The channel protection used in the standard is a multi-step channel codec. With reference to Figure 2a, these steps can be described as follows:
At the channel coder side, the 159 bits are regrouped into two classes of bits, Group A and B forming the first class and Group C forming the second class, according to their sensitivity to the regenerated speech quality. Thus, there are 77 class 1 bits and 82 class 2 bits. The class 1 bits are more sensitive than the class 2 bits.
A 7 bit CRC (Cyclic Redundancy Checking) 13 is used for the purpose of error detection, these 7 bits are computed over the 12 most perceptually significant bits 14, i.e. Group A bits (this means that one error in these 12 bits will severely degrade the regenerated speech quality).
These 7 bits are part of the class 1 bits. Thus, with 12 7 bits in Group A and 65 bits in Group B 15, there is a total of 84 class 1 bits.
An error protection technique 16 is then applied on the class 1 bits. This error protection technique is based on convolutional coding. This convolutional coding uses a rate 1/2, 5-bit memory convolutional code.
3s The output bits 17 from the convolutional coder 18 are then interleaved 19 with the class 2 or Group C bits 20. Then, half of these bits are transmitted with the :. , . . , ~ :
~ . ' ~ . :
-.
: ~ ' 8 ~
current time slot. The rernainder are transmitted 20 ms later.
At the receiving end 12, the channel decoder operates in the reverse order. That is, the received data is first de-interleaved 21 in order to recover the bits corresponding to the current speech frame and in order to separate these bits back into the class 2 bits 22 and the bits 23 which will need to be convolutionally decoded.
The bits 23 are convolutionally decoded 24 to recover the class 1 bits, shown generally at reference numeral 25. This is the error correction step. Then, a CRC check 26, is performed to verify that the 12 most perceptually significant bits, i.e. Group A bits 27 are correct. This is the error detection step.
AS Will be described below, a bad frame masking technique is used whenever the CRC check fails.
Referring now to Figures 2b and 2c, we have shown a functional block diagram illustrating the decoding and bad frame masking processes according to the IS-54 standard.
As indicated above, the bad frame detection is based on the CRC check 26 of the group A bits recovered from the convolution decoder 24. As shown in Figure 2b, if the CRC check is OK, the recovered class 1 (Group A and B) and class 2 (Group C) bits are used to regenerate the speech. The recovered Group A bits 27, Group B bits 30 and Group C bits 31 are sent to a speech decoder for further processing. However, if the CRC check is not OK, the frame energy and LPC parameters (see Figure 1) from the previous frame considered to be correctly received are replicated for Groups A, s and C, as shown, respectively, at reference numerals 32, 33 and 34. For example, in the illustration of Figure 2c, since the CRC check of the Group A bits for Frame 5 was not OK, the frame energy and LPC parameters of the last frame considered to be correctly received, i.e.
Frame 2, are replicated for use in Frame 5. The frame energy is reduced depending on the number of consecutive .
:~ . ' , .; ' 2~9~2~
frame errors. However, t:he pitch lag and subframe gain (see Figure 1) are always used as received.
In the preferred embodiment of the present invention, an additional error detection technique is used beyond the CRC check. This technique is based on a maximum likelihood (ML) check and is only used if the CRC check is successful. In both the IS-54 and GSM standards, maximum likelihood convolutional decoding (Viterbi decoding) is employed to recover the protected bits in Group A and Group B bits. Statistically, the metric assigned to the final surviving path by Vertibi decoding represents a measure of confidence in the recovered bits. The higher the metric, the lower the estimated bit error rate (BER) for these bits. Thus, based on statistical analysis, a threshold was determined. This threshold is then applied to this metric to determine whether the group B bits are corrupted.
Frames are rejected if the CRC check fails or the ML
threshold is exceeded. In the IS-54 standard, an appropriate metric is the ~mm; ng dlstance. The lower the final Hamming distance, the more probable that the final surviving path is correct, the lower~the BER for the recovered blts. In the preferred embodiment, a Hamming distance threshold of 19 was computed to be the best compromise. For those frames accepted by CRC check, a BER
can be plotted against the ML threshold for group B bits when accepted and when rejected by the ML check. By checking a finite ML threshold (e.g. 19), for a bad channel condition (low vehicle speed, 8km/h, and low C/I value, 14db), the BER for accepted frame is reduced from 2% to 0.8%, and the BER for rejected frames is 22%.
In order to improve the regenerated speech quality, the standard bad frame masking technique has been modified so that erroneous parameters are not used to regenerate speech. As is shown in Figure 3a, three situations can be observed after performing channel decoding.
In the first case, both the CRC check 40 and the . . ' ,: .
. - .
' .
:: .
~-.
;: ~ - ~ ' ' ' ~
.
.
2~902~
ML check 41 indicate no errors. Thus, the Group A, B and C
bits are used without modifications.
In the second case, although the CRC check 40 was successful, errors have been detected since the ML check is bad 42. In this instance, the received frame energy and LPC parameter bits of Group A and the Group C bits are used without modification (see Figure 1), but the lag value and subframe gain parameter bits for each subframe, ~hich make up the Group B bits, are copied 43 from the last subframe of the previous frame accepted by CRC and ML checks.
In the third case, the CRC check 44 is bad since errors have been detected. As in the standard, the frame energy and LPC parameters for Groups A, B and C are replicated from a previous frame. However, the lag value and sub-frame gain bits are replicated 45 as in the second case above.
With reference to Eigures 3b and 3c, we can see that in operation, the first error detection technique, i.e. the CRC check 50, is still completed as required by the standard. The 12 Group A bits 51 and the 82 Group C
bits 52 are used at the speech coder without modification.
However, the BER of the 65 Group B bits 53 is verified against the ML threshold. If the ML check is OK, indicating a minim~l number of errors, the 65 Group B bits 53 are accepted without modification.
When a Viterbi algorithm is used with a hard channel information (hard decision), as in the IS-54 standard, the likelihood metric used is usually the hamming distance. In this case, the ML path is associated with the smallest Hamming distance. Thus, the smaller the ~ammi ng distance, the lower is the BER for the decoded Group B
bits. When this distance is higher then 19, the bits 53 are rejected. When the ML check 54 is not OK, the frame energy and LPC parameters of the frame are kept 55 without - 35 modifications. However, the pitch lag value and sub-frame gain of the last sub-frame of the last accepted frame are replicated 56. The modified Group B bits 57 is then sent .
209~8~
to the speech decoder for further processing.
When the CRC check 50 is not ox, then as indicated above, the frame energy and LPC parameter bits of Groups A, B and C are replicated as per the standard. However, with respect to Group B, the replication process 58 includes the lag value and sub-frame gain of the last frame to have been correctly received. The modified Group A, B and C bits depicted, respectively, at reference numerals 59, 60 and 61 are then sent to the speech coder.
The example illustrated in Figure 3c, shows the two bad frame masking technique when either of the error detection steps fail. In the first instance, if the CRC
check of the Group A bits for Frame 5 was not OK, the frame energy and LPC parameters of the last frame considered to be correctly received, i.e. Frame 2, are replicated 70 for use in Frame 5. In addition, the lag value and sub-gain frame of frame 2 is also replicated. This replication is made for the Group A, B and C bits.
In the second instance, if the CRC check of the Group A bits is successful but the ML check fails, then, the Group A and C bits of frame 5 are sent to the speech decoder without modification (see Figure 3b) and the received frame energy and I.PC parameters of the Group B
bits of frame 5 are used without modification 71. ON the other hand, the pitch lag value and sub-frame gain of the last sub-frame 72 of frame 2 are replicated 73. Thus, the modified Group B bits 57 (see Figure-3b) comprises received frame energy and LPC parameters bits and replicated pitch lag value and sub-frame gain bits.
. . , - .
:: -.
- ~
: :. . - -: -,, ~ , ~ . - ' :, . ' , : ' , : .,
coder side, the 159 bits are regrouped into two classes of bits, according to their sensitivity to the regenerated speech quality. There are 77 class I bits and 82 class 2 bits. The class 1 bits are more sensitive than the class 2 bits.
A 7 bit CRC (Cyclic Redundancy Checking) is used for the purpose of error detection. These 7 bits are computed over the 12 most perceptually significant bits (this means that one error in these 12 bits will degrade lo severely the regenerated speech qua]ity). These 7 bits are part of the class 1 bits. Thus, there are in total 84 class 1 bits.
An error protection technique based on convolutional coding is applied on the class 1 bits. This convolutional coding uses a rate 1/2, 5-bit memory convolutional code. The output bits from the convolution coder are then interleaved wlth the class 2 bits. Half of these bits are then transmitted at the current time slot and the remainder are transmitted 20 ms later.
The channel decoder operates in the reversed order. That is, the received data is de-interleaved in order to recover the bits corresponding to the current speech frame, and in order to separate these bits into class 2 bits and the bits to be convolutionally decoded.
The received bits are then convolutionally decoded to recover the class 1 bits (error correction step) and a CRC
check is done of the 12 most perceptually significant bits (error detection step). A bad frame masking technique is employed whenever the CRC check fails.
The problem with this approach is two-fold.
First, the bad frame detection (CRC checking) is only based on the 12 most perceptually significant bits and the 7 CRC
bits. ~ote that a single error in these 7 bits can also cause a CRC check failure. Errors which might have occurred in the other 65 class 1 bits are not taken into account. It was determined that even if the CRC check succeeds, there could be more than 45% bit error rate in , : , ~ - , - : .
- - - : . .. . . -. . .
209028~
these 65 bits.
Second, the bad frame masking repeats only the R0 and the LPC bits. The lag bits and the sub frame gain (GSP0) bits are always used as received. sut, when CRC
checking fails, the BER for these bits is usually very high (the average is around 25%).
In both cases, the use of the Lag bits and the GSP0 bits as received, having more than 10% bit errors, will degrade the regenerated speech quality. When errors o occur in the GSP0 bits, the regenerated speech is usually explosion-like, which reduces considerably the intelligibility as well as the perceptual quality of the decoded speech.
Accordingly there is a need for an improved bad frame detection and masking technique which will help in the avoidance of explosion-like speech.
Thus, it is an object of the present invention to provide an improved error detection and bad frame masking - technique which provides smoother regenerated speech, improves intelligibility and the perceptual quality of speech.
Another object of the present invention is to provide an improved error detection technique so that errors occurring in the Class 1 bits, other than the most significant bits, can be taken into account.
Another object of the present invention is to provide an improved bad frame masking technique so that erroneous lnformation will not be used by the speech decoder Yet another object of the present invention is to provide an improved error detection and bad frame masking technique which can be implemented with the requirements of the digital cellular standard.
:
Summary of the In~ention According to a first aspect of the invention, there is provided a method of improving the detection and ~`
20~8~
masking of bad frames in a coded speech signal resulting from channel transmission errors, said coded speech signal having a first group of bits comprising the most perceptually significant bits of said coded speech signal, s a second group of bits comprising the second most perceptually significant bits and a third group of bits comprising the least perceptually significant bits, comprising:
de-interleaving said coded speech signal to obtain lo a first series of bits comprising said first and second group and a second series of bits comprising said third group of bits;
convolutionally decoding said first series of bits for recovering said first and second group of bits, said first group of bits containing error protected bits;
performing a CRC check by sending said recovered bits of said first group to cyclic redundancy decoding means;
forwarding said first group of bits to speech decoder means if said CRC check is successful; and replicating the frame energy and LPC parameters for said first and third group of bits and replicating the frame energy, LPC parameters, lag value and sub-frame gain for said second group of bits, and subsequently forwarding the replicated bits to said speech coder means, if said CRC
check is not successful.
Brief Description of the Drawings Figure 1 is a table of the bit assignment according to the IS-54 channel codec requirements;
Figure 2a is a block diagram showing the general speech coding/decoding operation of IS-54;
Figure 2b is a block diagram illustrating the decoding process according to the IS-54 standard;
Figure 2c is an illustration of the bad frame masking process required in the IS-54 standard;
Figure 3a is a table showing the decoding -.
20~Q~8~
operation required for each group of bit, according to the invention;
Figure 3b is a block diagram used for illustrating the operation of the improved speech decoder according to a first embodiment of the present invention; and Figure 3c is an illustration of the replication process according to said first and second embodiment of the invention.
o Description of the Preferred Embodiment As is shown in Figure 1, the speech information bits in digital cellular systems (TIA-IS-54 and GSM) are organised into three groups:
Group A comprises the perceptually most significant bits protected by error detection as well as protection bits. If errors are detected in this group, the decoding is considered unsuccessful and the received information is discarded. In Group A there are 3 frame energy bits, 9 Linear Prediction Coding (LPC) bits and 7 CRC bits for a total of 19 bits.
Group B comprises a larger group of perceptually significant bits covered by error correction only. This part of the received bit stream may include errors even after decoding even though the group A error detection indicates no errors. Group B bits are comprised of 1 frame energy bit, 4 LPC parameter bits, 28 pitch lag blts and 32 sub-frame gain bits for a total of 65 bits.
Group C comprises a group of perceptually less significant bits that are not protected at all. Errors in this group generally only have a minor impact on speech quality. In this group, there is 1 bit allocated to Frame Energy, 25 bits to LPC parameters and 56 bits allocated to code indices.
If we now refer to Figure 2a, we have shown a functional block diagram showing the general speech coding/decoding operation required in the IS-54 digital ; cellular standard. The drawing depicts the channel coding 2 ~
steps necessary at the transmitting end 10 before the data is transmitted on a radio traffic channel 11. At the receiving end 12 the data is decoded to recover the original information. ~ote that since both the base station radio and the mobile unit have a transrnitting and a receiving unit, the discussion of the operation of this invention will be general and will not be directed to either the base station or mobile unit specifically.
The North American digital cellular standard lo requires the use of a speech codec (coder-decoder) operating at 7950 bits/sec. It produces 159 bits for each speech frame of 20 msec.
The channel protection used in the standard is a multi-step channel codec. With reference to Figure 2a, these steps can be described as follows:
At the channel coder side, the 159 bits are regrouped into two classes of bits, Group A and B forming the first class and Group C forming the second class, according to their sensitivity to the regenerated speech quality. Thus, there are 77 class 1 bits and 82 class 2 bits. The class 1 bits are more sensitive than the class 2 bits.
A 7 bit CRC (Cyclic Redundancy Checking) 13 is used for the purpose of error detection, these 7 bits are computed over the 12 most perceptually significant bits 14, i.e. Group A bits (this means that one error in these 12 bits will severely degrade the regenerated speech quality).
These 7 bits are part of the class 1 bits. Thus, with 12 7 bits in Group A and 65 bits in Group B 15, there is a total of 84 class 1 bits.
An error protection technique 16 is then applied on the class 1 bits. This error protection technique is based on convolutional coding. This convolutional coding uses a rate 1/2, 5-bit memory convolutional code.
3s The output bits 17 from the convolutional coder 18 are then interleaved 19 with the class 2 or Group C bits 20. Then, half of these bits are transmitted with the :. , . . , ~ :
~ . ' ~ . :
-.
: ~ ' 8 ~
current time slot. The rernainder are transmitted 20 ms later.
At the receiving end 12, the channel decoder operates in the reverse order. That is, the received data is first de-interleaved 21 in order to recover the bits corresponding to the current speech frame and in order to separate these bits back into the class 2 bits 22 and the bits 23 which will need to be convolutionally decoded.
The bits 23 are convolutionally decoded 24 to recover the class 1 bits, shown generally at reference numeral 25. This is the error correction step. Then, a CRC check 26, is performed to verify that the 12 most perceptually significant bits, i.e. Group A bits 27 are correct. This is the error detection step.
AS Will be described below, a bad frame masking technique is used whenever the CRC check fails.
Referring now to Figures 2b and 2c, we have shown a functional block diagram illustrating the decoding and bad frame masking processes according to the IS-54 standard.
As indicated above, the bad frame detection is based on the CRC check 26 of the group A bits recovered from the convolution decoder 24. As shown in Figure 2b, if the CRC check is OK, the recovered class 1 (Group A and B) and class 2 (Group C) bits are used to regenerate the speech. The recovered Group A bits 27, Group B bits 30 and Group C bits 31 are sent to a speech decoder for further processing. However, if the CRC check is not OK, the frame energy and LPC parameters (see Figure 1) from the previous frame considered to be correctly received are replicated for Groups A, s and C, as shown, respectively, at reference numerals 32, 33 and 34. For example, in the illustration of Figure 2c, since the CRC check of the Group A bits for Frame 5 was not OK, the frame energy and LPC parameters of the last frame considered to be correctly received, i.e.
Frame 2, are replicated for use in Frame 5. The frame energy is reduced depending on the number of consecutive .
:~ . ' , .; ' 2~9~2~
frame errors. However, t:he pitch lag and subframe gain (see Figure 1) are always used as received.
In the preferred embodiment of the present invention, an additional error detection technique is used beyond the CRC check. This technique is based on a maximum likelihood (ML) check and is only used if the CRC check is successful. In both the IS-54 and GSM standards, maximum likelihood convolutional decoding (Viterbi decoding) is employed to recover the protected bits in Group A and Group B bits. Statistically, the metric assigned to the final surviving path by Vertibi decoding represents a measure of confidence in the recovered bits. The higher the metric, the lower the estimated bit error rate (BER) for these bits. Thus, based on statistical analysis, a threshold was determined. This threshold is then applied to this metric to determine whether the group B bits are corrupted.
Frames are rejected if the CRC check fails or the ML
threshold is exceeded. In the IS-54 standard, an appropriate metric is the ~mm; ng dlstance. The lower the final Hamming distance, the more probable that the final surviving path is correct, the lower~the BER for the recovered blts. In the preferred embodiment, a Hamming distance threshold of 19 was computed to be the best compromise. For those frames accepted by CRC check, a BER
can be plotted against the ML threshold for group B bits when accepted and when rejected by the ML check. By checking a finite ML threshold (e.g. 19), for a bad channel condition (low vehicle speed, 8km/h, and low C/I value, 14db), the BER for accepted frame is reduced from 2% to 0.8%, and the BER for rejected frames is 22%.
In order to improve the regenerated speech quality, the standard bad frame masking technique has been modified so that erroneous parameters are not used to regenerate speech. As is shown in Figure 3a, three situations can be observed after performing channel decoding.
In the first case, both the CRC check 40 and the . . ' ,: .
. - .
' .
:: .
~-.
;: ~ - ~ ' ' ' ~
.
.
2~902~
ML check 41 indicate no errors. Thus, the Group A, B and C
bits are used without modifications.
In the second case, although the CRC check 40 was successful, errors have been detected since the ML check is bad 42. In this instance, the received frame energy and LPC parameter bits of Group A and the Group C bits are used without modification (see Figure 1), but the lag value and subframe gain parameter bits for each subframe, ~hich make up the Group B bits, are copied 43 from the last subframe of the previous frame accepted by CRC and ML checks.
In the third case, the CRC check 44 is bad since errors have been detected. As in the standard, the frame energy and LPC parameters for Groups A, B and C are replicated from a previous frame. However, the lag value and sub-frame gain bits are replicated 45 as in the second case above.
With reference to Eigures 3b and 3c, we can see that in operation, the first error detection technique, i.e. the CRC check 50, is still completed as required by the standard. The 12 Group A bits 51 and the 82 Group C
bits 52 are used at the speech coder without modification.
However, the BER of the 65 Group B bits 53 is verified against the ML threshold. If the ML check is OK, indicating a minim~l number of errors, the 65 Group B bits 53 are accepted without modification.
When a Viterbi algorithm is used with a hard channel information (hard decision), as in the IS-54 standard, the likelihood metric used is usually the hamming distance. In this case, the ML path is associated with the smallest Hamming distance. Thus, the smaller the ~ammi ng distance, the lower is the BER for the decoded Group B
bits. When this distance is higher then 19, the bits 53 are rejected. When the ML check 54 is not OK, the frame energy and LPC parameters of the frame are kept 55 without - 35 modifications. However, the pitch lag value and sub-frame gain of the last sub-frame of the last accepted frame are replicated 56. The modified Group B bits 57 is then sent .
209~8~
to the speech decoder for further processing.
When the CRC check 50 is not ox, then as indicated above, the frame energy and LPC parameter bits of Groups A, B and C are replicated as per the standard. However, with respect to Group B, the replication process 58 includes the lag value and sub-frame gain of the last frame to have been correctly received. The modified Group A, B and C bits depicted, respectively, at reference numerals 59, 60 and 61 are then sent to the speech coder.
The example illustrated in Figure 3c, shows the two bad frame masking technique when either of the error detection steps fail. In the first instance, if the CRC
check of the Group A bits for Frame 5 was not OK, the frame energy and LPC parameters of the last frame considered to be correctly received, i.e. Frame 2, are replicated 70 for use in Frame 5. In addition, the lag value and sub-gain frame of frame 2 is also replicated. This replication is made for the Group A, B and C bits.
In the second instance, if the CRC check of the Group A bits is successful but the ML check fails, then, the Group A and C bits of frame 5 are sent to the speech decoder without modification (see Figure 3b) and the received frame energy and I.PC parameters of the Group B
bits of frame 5 are used without modification 71. ON the other hand, the pitch lag value and sub-frame gain of the last sub-frame 72 of frame 2 are replicated 73. Thus, the modified Group B bits 57 (see Figure-3b) comprises received frame energy and LPC parameters bits and replicated pitch lag value and sub-frame gain bits.
. . , - .
:: -.
- ~
: :. . - -: -,, ~ , ~ . - ' :, . ' , : ' , : .,
Claims (5)
1. A method of improving the detection and masking of bad frames in a coded speech signal resulting from channel transmission errors, said coded speech signal having a first group of bits comprising the most significant bits of said coded speech signal, error detection bits and error correction bits, a second group of bits comprising the second most significant bits and error correction bits and a third group of bits comprising the least significant bits, said method comprising the steps of:
de-interleaving said coded signal to obtain a first series of bits comprising said first and second group of bits and a second series of bits comprising said third group of bits;
convolutionally decoding said first series of bits for recovering said first and second group of bits;
performing a Cyclic Redundancy Code (CRC) check on recovered bits of said first group;
if said CRC check is successful, utilizing said third group of bits and said recovered bits of said first group for speech decoding and performing a maximum likelihood check on said second group of bits;
if said maximum likelihood check is successful, utilizing said recovered bits of said second group for speech decoding; and if said maximum likelihood check is unsuccessful, replicating the pitch lag value and sub-frame gain for each sub-frame of said bad frame, from the last sub-frame of the previously accepted frame.
de-interleaving said coded signal to obtain a first series of bits comprising said first and second group of bits and a second series of bits comprising said third group of bits;
convolutionally decoding said first series of bits for recovering said first and second group of bits;
performing a Cyclic Redundancy Code (CRC) check on recovered bits of said first group;
if said CRC check is successful, utilizing said third group of bits and said recovered bits of said first group for speech decoding and performing a maximum likelihood check on said second group of bits;
if said maximum likelihood check is successful, utilizing said recovered bits of said second group for speech decoding; and if said maximum likelihood check is unsuccessful, replicating the pitch lag value and sub-frame gain for each sub-frame of said bad frame, from the last sub-frame of the previously accepted frame.
2. A method as defined in claim 1, further comprising the steps of:
if said CRC check is not successful, replicating the frame energy and LPC parameters for said first and third group of bits;
replicating the frame energy, LPC parameters, lag value and sub-frame gain for said second group of bits; and utilizing the replicated bits of said first, second and third groups for speech decoding.
if said CRC check is not successful, replicating the frame energy and LPC parameters for said first and third group of bits;
replicating the frame energy, LPC parameters, lag value and sub-frame gain for said second group of bits; and utilizing the replicated bits of said first, second and third groups for speech decoding.
3. A method as defined in claim 1, wherein said convolutional decoding comprises a Viterbi maximum likelihood convolution decoding.
4. A method as defined in claim 3, wherein said maximum likelihood check is successful if a metric assigned to the final surviving path by said Viterbi decoding is less than a predetermined threshold.
5. A method as defined in claim 4, wherein said metric is defined as the Hamming distance.
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US07/904,638 | 1992-06-26 | ||
US07/904,638 US5255343A (en) | 1992-06-26 | 1992-06-26 | Method for detecting and masking bad frames in coded speech signals |
Publications (2)
Publication Number | Publication Date |
---|---|
CA2090284A1 CA2090284A1 (en) | 1993-12-27 |
CA2090284C true CA2090284C (en) | 1998-07-07 |
Family
ID=25419488
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CA002090284A Expired - Fee Related CA2090284C (en) | 1992-06-26 | 1993-02-24 | Method for detecting and masking bad frames in coded speech signals |
Country Status (2)
Country | Link |
---|---|
US (1) | US5255343A (en) |
CA (1) | CA2090284C (en) |
Families Citing this family (41)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5497383A (en) * | 1993-01-22 | 1996-03-05 | Motorola, Inc. | Error detector circuit for receiver operative to receive discretely-encoded signals |
US5491719A (en) * | 1993-07-02 | 1996-02-13 | Telefonaktiebolaget Lm Ericsson | System for handling data errors on a cellular communications system PCM link |
CA2131674A1 (en) * | 1993-09-10 | 1995-03-11 | Kalyan Ganesan | High performance error control coding in channel encoders and decoders |
US6092230A (en) * | 1993-09-15 | 2000-07-18 | Motorola, Inc. | Method and apparatus for detecting bad frames of information in a communication system |
SE504396C2 (en) * | 1994-04-28 | 1997-01-27 | Ericsson Telefon Ab L M | Detection of incorrectly received data frames in a communication system |
FI944345A (en) * | 1994-09-19 | 1996-03-20 | Nokia Telecommunications Oy | A method for identifying erroneous speech frames at a receiver of a communication system transmitting speech, and a receiver of a communication system |
FI97182C (en) * | 1994-12-05 | 1996-10-25 | Nokia Telecommunications Oy | Procedure for replacing received bad speech frames in a digital receiver and receiver for a digital telecommunication system |
FI950917A (en) * | 1995-02-28 | 1996-08-29 | Nokia Telecommunications Oy | Processing of speech coding parameters in a telecommunication system |
GB9520445D0 (en) * | 1995-10-06 | 1995-12-06 | British Telecomm | Convolutional codes |
JP2838994B2 (en) * | 1995-12-27 | 1998-12-16 | 日本電気株式会社 | Data signal receiving device |
US6170073B1 (en) * | 1996-03-29 | 2001-01-02 | Nokia Mobile Phones (Uk) Limited | Method and apparatus for error detection in digital communications |
JP3340618B2 (en) * | 1996-04-19 | 2002-11-05 | 松下電器産業株式会社 | Error detection method |
US5960010A (en) * | 1996-05-03 | 1999-09-28 | Texas Instruments Incorporated | Error detection and error concealment of convolutionally encoded data |
JPH09312620A (en) * | 1996-05-23 | 1997-12-02 | Nec Corp | Voice data interpolation processor |
FR2751813B1 (en) * | 1996-07-29 | 1999-01-08 | Alcatel Mobile Comm France | METHOD AND DEVICE FOR ESTIMATING THE ACCEPTABLE OR NON-ACCEPTABLE NATURE OF INFORMATION BLOCKS RECEIVED VIA A TRANSMISSION SYSTEM USING BLOCK CODING |
FI113600B (en) * | 1996-09-17 | 2004-05-14 | Nokia Corp | Signaling in a digital mobile phone system |
US6463405B1 (en) | 1996-12-20 | 2002-10-08 | Eliot M. Case | Audiophile encoding of digital audio data using 2-bit polarity/magnitude indicator and 8-bit scale factor for each subband |
US5864813A (en) * | 1996-12-20 | 1999-01-26 | U S West, Inc. | Method, system and product for harmonic enhancement of encoded audio signals |
US6782365B1 (en) | 1996-12-20 | 2004-08-24 | Qwest Communications International Inc. | Graphic interface system and product for editing encoded audio data |
US6477496B1 (en) | 1996-12-20 | 2002-11-05 | Eliot M. Case | Signal synthesis by decoding subband scale factors from one audio signal and subband samples from different one |
US5845251A (en) * | 1996-12-20 | 1998-12-01 | U S West, Inc. | Method, system and product for modifying the bandwidth of subband encoded audio data |
US6516299B1 (en) | 1996-12-20 | 2003-02-04 | Qwest Communication International, Inc. | Method, system and product for modifying the dynamic range of encoded audio signals |
US5864820A (en) * | 1996-12-20 | 1999-01-26 | U S West, Inc. | Method, system and product for mixing of encoded audio signals |
EP0976216B1 (en) | 1997-02-27 | 2002-11-27 | Siemens Aktiengesellschaft | Frame-error detection method and device for error masking, specially in gsm transmissions |
JPH1168709A (en) * | 1997-08-13 | 1999-03-09 | Mitsubishi Electric Corp | Error detector for received digital data |
JPH11122120A (en) * | 1997-10-17 | 1999-04-30 | Sony Corp | Coding method and device therefor, and decoding method and device therefor |
DE69936568T2 (en) * | 1998-05-27 | 2008-04-30 | Ntt Mobile Communications Network Inc. | Method and apparatus for interleaving a first bit sequence into a second bit sequence |
US6810377B1 (en) | 1998-06-19 | 2004-10-26 | Comsat Corporation | Lost frame recovery techniques for parametric, LPC-based speech coding systems |
FR2781110B1 (en) * | 1998-07-13 | 2000-08-11 | Alsthom Cge Alcatel | METHOD AND DEVICE FOR TRANSMITTING DATA OVER A SPOKEN CHANNEL |
GB9910002D0 (en) * | 1999-05-01 | 1999-06-30 | King S College London | Audio signal encoders and decoders |
JP4218134B2 (en) * | 1999-06-17 | 2009-02-04 | ソニー株式会社 | Decoding apparatus and method, and program providing medium |
US6636829B1 (en) * | 1999-09-22 | 2003-10-21 | Mindspeed Technologies, Inc. | Speech communication system and method for handling lost frames |
US20010041981A1 (en) * | 2000-02-22 | 2001-11-15 | Erik Ekudden | Partial redundancy encoding of speech |
US6606726B1 (en) | 2000-06-13 | 2003-08-12 | Telefonaktiebolaget L M Ericsson (Publ) | Optimization of acceptance of erroneous codewords and throughput |
EP1367564A4 (en) * | 2001-03-06 | 2005-08-10 | Ntt Docomo Inc | Audio data interpolation apparatus and method, audio data-related information creation apparatus and method, audio data interpolation information transmission apparatus and method, program and recording medium thereof |
EP1311091A1 (en) * | 2001-11-09 | 2003-05-14 | Evolium S.A.S. | Method for transporting real-time data frames comprising at least two bit portions having different relevance; corresponding transmitter and receiver |
EP1313253A1 (en) * | 2001-11-15 | 2003-05-21 | Evolium S.A.S. | Method for detecting errors in a real-time data entity comprising at least two bit portions having different relevance and corresponding receiver |
US6873956B2 (en) * | 2003-06-17 | 2005-03-29 | Mindspeed Technologies, Inc. | Multi-channel speech processor with increased channel density |
US7716565B2 (en) * | 2004-08-20 | 2010-05-11 | Broadcom Corporation | Method and system for decoding video, voice, and speech data using redundancy |
US8046662B2 (en) * | 2004-08-20 | 2011-10-25 | Broadcom Corporation | Method and system for decoding control data in GSM-based systems using inherent redundancy |
US7827030B2 (en) * | 2007-06-15 | 2010-11-02 | Microsoft Corporation | Error management in an audio processing system |
Family Cites Families (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4418409A (en) * | 1980-03-07 | 1983-11-29 | Ibm Corporation | Byte data activity compression |
EP0111612B1 (en) * | 1982-11-26 | 1987-06-24 | International Business Machines Corporation | Speech signal coding method and apparatus |
US4956865A (en) * | 1985-01-30 | 1990-09-11 | Northern Telecom Limited | Speech recognition |
EP0205667B1 (en) * | 1985-06-14 | 1990-02-14 | Koninklijke Philips Electronics N.V. | System for transmitting words that are protected by a combination of a block code and a convolution code, transmitter device for use in such system and receiver for use in such system |
JPS62101128A (en) * | 1985-10-29 | 1987-05-11 | Fujitsu Ltd | Test method for viterbi decoder |
US4802171A (en) * | 1987-06-04 | 1989-01-31 | Motorola, Inc. | Method for error correction in digitally encoded speech |
DE3788874T2 (en) * | 1987-06-12 | 1994-06-23 | Ibm | Method for protecting the integrity of encoded signals. |
AU620384B2 (en) * | 1988-03-28 | 1992-02-20 | Nec Corporation | Linear predictive speech analysis-synthesis apparatus |
JPH0782359B2 (en) * | 1989-04-21 | 1995-09-06 | 三菱電機株式会社 | Speech coding apparatus, speech decoding apparatus, and speech coding / decoding apparatus |
JPH02299324A (en) * | 1989-05-15 | 1990-12-11 | Mitsubishi Electric Corp | Vocoder |
JP2940005B2 (en) * | 1989-07-20 | 1999-08-25 | 日本電気株式会社 | Audio coding device |
US5091945A (en) * | 1989-09-28 | 1992-02-25 | At&T Bell Laboratories | Source dependent channel coding with error protection |
US5073940A (en) * | 1989-11-24 | 1991-12-17 | General Electric Company | Method for protecting multi-pulse coders from fading and random pattern bit errors |
US5097507A (en) * | 1989-12-22 | 1992-03-17 | General Electric Company | Fading bit error protection for digital cellular multi-pulse speech coder |
US5148487A (en) * | 1990-02-26 | 1992-09-15 | Matsushita Electric Industrial Co., Ltd. | Audio subband encoded signal decoder |
US5182753A (en) * | 1990-03-20 | 1993-01-26 | Telefonaktiebolaget L M Ericsson | Method of transmitting signaling messages in a mobile radio communication system |
US5138661A (en) * | 1990-11-13 | 1992-08-11 | General Electric Company | Linear predictive codeword excited speech synthesizer |
US5113400A (en) * | 1990-11-21 | 1992-05-12 | Motorola, Inc. | Error detection system |
-
1992
- 1992-06-26 US US07/904,638 patent/US5255343A/en not_active Expired - Fee Related
-
1993
- 1993-02-24 CA CA002090284A patent/CA2090284C/en not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
US5255343A (en) | 1993-10-19 |
CA2090284A1 (en) | 1993-12-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CA2090284C (en) | Method for detecting and masking bad frames in coded speech signals | |
AU678667B2 (en) | Soft error correction in a TDMA radio system | |
US4802171A (en) | Method for error correction in digitally encoded speech | |
US5923679A (en) | Error correction encoder, error correction decoder, and communication system | |
US5838267A (en) | Method and apparatus for encoding and decoding digital information | |
KR100301100B1 (en) | Bad frame detection method and device | |
US20070089040A1 (en) | Method and apparatus for recovery of particular bits of a frame | |
KR100413097B1 (en) | Data transmission method, data transmission system, transmitter and receiver | |
US5493584A (en) | Method for determining a channel quality metric in a receiver | |
US6519740B1 (en) | Bit detection method in a radio communications system | |
JPH0715353A (en) | Voice decoder | |
JP2002501328A (en) | Method and apparatus for coding, decoding and transmitting information using source control channel decoding | |
CA2298221C (en) | Encoder for multiplexing blocks error protected bits with blocks of unprotected bits | |
JPH07131400A (en) | Transmission method for digital mobile communication | |
JP2002533013A (en) | Method and apparatus for transmission encoding or decoding of information structured in a frame | |
Hindelang et al. | Quality enhancement of coded and corrupted speeches in GSM mobile systems using residual redundancy | |
Su et al. | Improving the speech quality of cellular mobile systems under heavy fading | |
JP2796190B2 (en) | VOX control method | |
AU754735B2 (en) | Error correction with two block codes | |
Hindelang et al. | QUALITY ENHANCEMENT OF CODED AND CORRUPTED SPEECHES IN | |
Shepherd et al. | Digital short range radio: channel coding and synchronisation for speech using the GSM codec |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
EEER | Examination request | ||
MKLA | Lapsed |