# Patent

## Title
Half-rate vocoder

## Abstract

Encoding a sequence of digital speech samples into a bit stream includes dividing the digital speech samples into one or more frames, computing model parameters for a frame, and quantizing the model parameters to produce pitch bits conveying pitch information, voicing bits conveying voicing information, and gain bits conveying signal level information. One or more of the pitch bits are combined with one or more of the voicing bits and one or more of the gain bits to create a first parameter codeword that is encoded with an error control code to produce a first FEC codeword that is included in a bit stream for the frame. The process may be reversed to decode the bit stream.

## Background
TECHNICAL FIELD
This description relates generally to the encoding and/or decoding of speech, tone and other audio signals.
BACKGROUND
Speech encoding and decoding have a large number of applications and have been studied extensively. In general, speech coding, which is also known as speech compression, seeks to reduce the data rate needed to represent a speech signal without substantially reducing the quality or intelligibility of the speech. Speech compression techniques may be implemented by a speech coder, which also may be referred to as a voice coder or vocoder.
A speech coder is generally viewed as including an encoder and a decoder. The encoder produces a compressed stream of bits from a digital representation of speech, such as may be generated at the output of an analog-to-digital converter having as an input an analog signal produced by a microphone. The decoder converts the compressed bit stream into a digital representation of speech that is suitable for playback through a digital-to-analog converter and a speaker. In many applications, the encoder and the decoder are physically separated, and the bit stream is transmitted between them using a communication channel.
A key parameter of a speech coder is the amount of compression the coder achieves, which is measured by the bit rate of the stream of bits produced by the encoder. The bit rate of the encoder is generally a function of the desired fidelity (i.e., speech quality) and the type of speech coder employed. Different types of speech coders have been designed to operate at different bit rates. Recently, low to medium rate speech coders operating below 10 kbps have received attention with respect to a wide range of mobile communication applications (e.g., cellular telephony, satellite telephony, land mobile radio, and in-flight telephony). These applications typically require high quality speech and robustness to artifacts caused by acoustic noise and channel noise (e.g., bit errors).
Speech is generally considered to be a non-stationary signal having signal properties that change over time. This change in signal properties is generally linked to changes made in the properties of a person's vocal tract to produce different sounds. A sound is typically sustained for some short period, typically 10-100 ms, and then the vocal tract is changed again to produce the next sound. The transition between sounds may be slow and continuous or it may be rapid as in the case of a speech “onset.” This change in signal properties increases the difficulty of encoding speech at lower bit rates since some sounds are inherently more difficult to encode than others and the speech coder must be able to encode all sounds with reasonable fidelity while preserving the ability to adapt to a transition in the characteristics of the speech signals. Performance of a low to medium bit rate speech coder can be improved by allowing the bit rate to vary. In variable-bit-rate speech coders, the bit rate for each segment of speech is allowed to vary between two or more options depending on various factors, such as user input, system loading, terminal design or signal characteristics.
There have been several main approaches for coding speech at low to medium data rates. For example, an approach based around linear predictive coding (LPC) attempts to predict each new frame of speech from previous samples using short and long term predictors. The prediction error is typically quantized using one of several approaches of which CELP and/or multi-pulse are two examples. The advantage of the linear prediction method is that it has good time resolution, which is helpful for the coding of unvoiced sounds. In particular, plosives and transients benefit from this in that they are not overly smeared in time. However, linear prediction typically has difficulty for voiced sounds in that the coded speech tends to sound rough or hoarse due to insufficient periodicity in the coded signal. This problem may be more significant at lower data rates that typically require a longer frame size and for which the long-term predictor is less effective at restoring periodicity.
Another leading approach for low to medium rate speech coding is a model-based speech coder or vocoder. A vocoder models speech as the response of a system to excitation over short time intervals. Examples of vocoder systems include linear prediction vocoders such as MELP, homomorphic vocoders, channel vocoders, sinusoidal transform coders (“STC”), harmonic vocoders and multiband excitation (“MBE”) vocoders. In these vocoders, speech is divided into short segments (typically 10-40 ms), with each segment being characterized by a set of model parameters. These parameters typically represent a few basic elements of each speech segment, such as the segment's pitch, voicing state, and spectral envelope. A vocoder may use one of a number of known representations for each of these parameters. For example, the pitch may be represented as a pitch period, a fundamental frequency or pitch frequency (which is the inverse of the pitch period), or a long-term prediction delay. Similarly, the voicing state may be represented by one or more voicing metrics, by a voicing probability measure, or by a set of voicing decisions. The spectral envelope is often represented by an all-pole filter response, but also may be represented by a set of spectral magnitudes or other spectral measurements. Since they permit a speech segment to be represented using only a small number of parameters, model-based speech coders, such as vocoders, typically are able to operate at medium to low data rates. However, the quality of a model-based system is dependent on the accuracy of the underlying model. Accordingly, a high fidelity model must be used if these speech coders are to achieve high speech quality.
The MBE vocoder is a harmonic vocoder based on the MBE speech model that has been shown to work well in many applications. The MBE vocoder combines a harmonic representation for voiced speech with a flexible, frequency-dependent voicing structure based on the MBE speech model. This allows the MBE vocoder to produce natural sounding unvoiced speech and makes the MBE vocoder more robust to the presence of acoustic background noise. These properties allow the MBE vocoder to produce higher quality speech at low to medium data rates and have led to its use in a number of commercial mobile communication applications.
The MBE speech model represents segments of speech using a fundamental frequency corresponding to the pitch, a set of voicing metrics or decisions, and a set of spectral magnitudes corresponding to the frequency response of the vocal tract. The MBE model generalizes the traditional single V/UV decision per segment into a set of decisions that each represent the voicing state within a particular frequency band or region. Each frame is thereby divided into at least voiced and unvoiced frequency regions. This added flexibility in the voicing model allows the MBE model to better accommodate mixed voicing sounds, such as some voiced fricatives, allows a more accurate representation of speech that has been corrupted by acoustic background noise, and reduces the sensitivity to an error in any one decision. Extensive testing has shown that this generalization results in improved voice quality and intelligibility.
MBE-based vocoders include the IMBETM speech coder which has been used in a number of wireless communications systems including the APCO Project 25 (“P25”) mobile radio standard. This P25 vocoder standard consists of a 7200 bps IMBETM vocoder that combines 4400 bps of compressed voice data with 2800 bps of Forward Error Control (FEC) data. It is documented in Telecommunications Industry Association (TIA) document TIA-102BABA, entitled “APCO Project 25 Vocoder Description,” which is incorporated by reference.
The encoder of a MBE-based speech coder estimates a set of model parameters for each speech segment or frame. The MBE model parameters include a fundamental frequency (the reciprocal of the pitch period); a set of V/UV metrics or decisions that characterize the voicing state; and a set of spectral magnitudes that characterize the spectral envelope. After estimating the MBE model parameters for each segment, the encoder quantizes the parameters to produce a frame of bits. The encoder optionally may protect these bits with error correction/detection codes (FEC) before interleaving and transmitting the resulting bit stream to a corresponding decoder.
The decoder in a MBE-based vocoder reconstructs the MBE model parameters (fundamental frequency, voicing information and spectral magnitudes) for each segment of speech from the received bit stream. As part of this reconstruction, the decoder may perform deinterleaving and error control decoding to correct and/or detect bit errors. In addition, the decoder typically performs phase regeneration to compute synthetic phase information. For example, in a method specified in the APCO Project 25 Vocoder Description and described in U.S. Pat. Nos. 5,081,681 and 5,664,051, random phase regeneration is used, with the amount of randomness depending on the voicing decisions.
The decoder uses the reconstructed MBE model parameters to synthesize a speech signal that perceptually resembles the original speech to a high degree. Normally, separate signal components, corresponding to voiced, unvoiced, and optionally pulsed speech, are synthesized for each segment, and the resulting components are then added together to form the synthetic speech signal. This process is repeated for each segment of speech to reproduce the complete speech signal, which can then be output through a D-to-A converter and a loudspeaker. The unvoiced signal component may be synthesized using a windowed overlap-add method to filter a white noise signal. The time-varying spectral envelope of the filter is determined from the sequence of reconstructed spectral magnitudes in frequency regions designated as unvoiced, with other frequency regions being set to zero.
The decoder may synthesize the voiced signal component using one of several methods. In one method, specified in the APCO Project 25 Vocoder Description, a bank of harmonic oscillators is used, with one oscillator assigned to each harmonic of the fundamental frequency, and the contributions from all of the oscillators is summed to form the voiced signal component.
The 7200 bps IMBETM vocoder, standardized for the APCO Project 25 mobile radio communication system, uses 144 bits to represent each 20 ms frame. These bits are divided into 56 redundant FEC bits (applied as a combination of Golay and Hamming codes), 1 synchronization bit and 87 MBE parameter bits. The 87 MBE parameter bits consist of 8 bits to quantize the fundamental frequency, 3-12 bits to quantize the binary voiced/unvoiced decisions, and 67-76 bits to quantize the spectral magnitudes. The resulting 144 bit frame is transmitted from the encoder to the decoder. The decoder performs error correction decoding before reconstructing the MBE model parameters from the error-decoded bits. The decoder then uses the reconstructed model parameters to synthesize voiced and unvoiced signal components which are added together to form the decoded speech signal.
SUMMARY
In one general aspect, encoding a sequence of digital speech samples into a bit stream includes dividing the digital speech samples into one or more frames, computing model parameters for a frame, and quantizing the model parameters to produce pitch bits conveying pitch information, voicing bits conveying voicing information, and gain bits conveying signal level information. One or more of the pitch bits are combined with one or more of the voicing bits and one or more of the gain bits to create a first parameter codeword that is encoded with an error control code to produce a first FEC codeword. The first FEC codeword is included in a bit stream for the frame.
Implementations may include one or more of the following features. For example, computing the model parameters for the frame may include computing a fundamental frequency parameter, one or more of voicing decisions, and a set of spectral parameters. The parameters may be computed using the Multi-Band Excitation speech model.
Quantizing the model parameters may include producing the pitch bits by applying a logarithmic function to the fundamental frequency parameter, and producing the voicing bits by jointly quantizing voicing decisions for the frame. The voicing bits may represent an index into a voicing codebook, and the value of the voicing codebook may be the same for two or more different values of the index.
The first parameter codeword may include twelve bits. For example, the first parameter codeword may be formed by combining four of the pitch bits, four of the voicing bits, and four of the gain bits. The first parameter codeword may be encoded with a Golay error control code.
The spectral parameters may include a set of logarithmic spectral magnitudes, and the gain bits may be produced at least in part by computing the mean of the logarithmic spectral magnitudes. The logarithmic spectral magnitudes may be quantized into spectral bits; and at least some of the spectral bits may be combined to create a second parameter codeword that is encoded with a second error control code to produce a second FEC codeword that may be included in the bit stream for the frame.
The pitch bits, voicing bits, gain bits and spectral bits are each divided into more important bits and less important bits. The more important pitch bits, voicing bits, gain bits, and spectral bits are included in the first parameter codeword and the second parameter codeword and encoded with error control codes. The less important pitch bits, voicing bits, gain bits, and spectral bits are included in the bit stream for the frame without encoding with error control codes. In one implementation, there are 7 pitch bits divided into 4 more important pitch bits and 3 less important pitch bits, there are 5 voicing bits divided into 4 more important voicing bits and 1 less important voicing bit, and there are 5 gain bits divided into 4 more important gain bits and 1 less important gain bit. The second parameter code may include twelve more important spectral bits which are encoded with a Golay error control code to produce the second FEC codeword.
A modulation key may be computed from the first parameter codeword, and a scrambling sequence may be generated from the modulation key. The scrambling sequence may be combined with the second FEC codeword to produce a scrambled second FEC codeword to be included in the bit stream for the frame.
Certain tone signals may be detected. If a tone signal is detected for a frame, tone identifier bits and tone amplitude bits are included in the first parameter codeword. The tone identifier bits allow the bits for the frame to be identified as corresponding to a tone signal. If a tone signal is detected for a frame, additional tone index bits that determine frequency information for the tone signal may be included in the bit stream for the frame. The tone identifier bits may correspond to a disallowed set of pitch bits to permit the bits for the frame to be identified as corresponding to a tone signal. In certain implementations, the first parameter codeword includes six tone identifier bits and six tone amplitude bits if a tone signal is detected for a frame.
In another general aspect, decoding digital speech samples from a bit stream includes dividing the bit stream into one or more frames of bits, extracting a first FEC codeword from a frame of bits, and error control decoding the first FEC codeword to produce a first parameter codeword. Pitch bits, voicing bits and gain bits are extracted from the first parameter codeword. The extracted pitch bits are used to at least in part reconstruct pitch information for the frame, the extracted voicing bits are used to at least in part reconstruct voicing information for the frame, and the extracted gain bits are used to at least in part reconstruct signal level information for the frame. The reconstructed pitch information, voicing information and signal level information for one or more frames are used to compute digital speech samples.
Implementations may include one or more of the features noted above and one or more of the following features. For example, the pitch information for a frame may include a fundamental frequency parameter, and the voicing information for a frame may include one or more voicing decisions. The voicing decisions for the frame may be reconstructed by using the voicing bits as an index into a voicing codebook. The value of the voicing codebook may be the same for two or more different indices.
Spectral information for a frame also may be reconstructed. The spectral information for a frame may include at least in part a set of logarithmic spectral magnitude parameters. The signal level information may be used to determine the mean value of the logarithmic spectral magnitude parameters. The first FEC codeword may be decoded with a Golay decoder. Four pitch bits, four voicing bits, and four gain bits may be extracted from the first parameter codeword. A modulation key may be generated from the first parameter codeword, a scrambling sequence may be computed from the modulation key, and a second FEC codeword may be extracted from the frame of bits. The scrambling sequence may be applied to the second FEC codeword to produce a descrambled second FEC codeword that may be error control decoded to produce a second parameter codeword. The spectral information for a frame may be reconstructed at least in part from the second parameter codeword.
An error metric may be computed from the error control decoding of the first FEC codeword and from the error control decoding of the descrambled second FEC codeword, and frame error processing may be applied if the error metric exceeds a threshold value. The frame error processing may include repeating the reconstructed model parameter from a previous frame for the current frame. The error metric may use the sum of the number of errors corrected by error control decoding the first FEC codeword and by error control decoding the descrambled second FEC codeword.
In another general aspect, decoding digital signal samples from a bit stream includes dividing the bit stream into one or more frames of bits, extracting a first FEC codeword from a frame of bits, error control decoding the first FEC codeword to produce a first parameter codeword, and using the first parameter codeword to determine whether the frame of bits corresponds to a tone signal. If the frame of bits is determined to correspond to a tone signal, tone amplitude bits are extracted from the first parameter codeword. Otherwise, pitch bits, voicing bits, and gain bits are extracted from the first codeword if the frame of bits is determined to not correspond to a tone signal. Either the tone amplitude bits or the pitch bits, voicing bits and gain bits are used to compute digital signal samples.
Implementations may include one or more of the features noted above and one or more of the following features. For example, a modulation key may be generated from the first parameter codeword and a scrambling sequence may be computed from the modulation key. The scrambling sequence may be applied to a second FEC codeword extracted from the frame of bits to produce a descrambled second FEC codeword that may be error control decoded to produce a second parameter codeword. Digital signal samples may be computed using the second parameter codeword.
The number of errors corrected by the error control decoding of the first FEC codeword and by the error control decoding of the descrambled second FEC codeword may be summed to compute an error metric. Frame error processing may be applied if the error metric exceeds a threshold. The frame error processing may include repeating the reconstructed model parameter from a previous frame.
Additional spectral bits may be extracted from the second parameter codeword and used to reconstruct the digital signal samples. The spectral bits include tone index bits if the frame of bits is determined to correspond to a tone signal. The frame of bits may be determined to correspond to a tone signal if some of the bits in the first parameter codeword equal a known tone identifier value which corresponds to a disallowed value of the pitch bits. The tone index bits may be used to identify whether the frame of bits corresponds to a signal frequency tone, a DTMF tone, a Knox tone or a call progress tone.
The spectral bits may be used to reconstruct a set of logarithmic spectral magnitude parameters for the frame, and the gain bits may be used to determine the mean value of the logarithmic spectral magnitude parameters.
The first FEC codeword may be decoded with a Golay decoder. Four pitch bits, plus four voicing bits, plus four gain bits may be extracted from the first parameter codeword. The voicing bits may be used as an index into a voicing codebook to reconstruct voicing decisions for the frame.
In another general aspect, decoding a frame of bits into speech samples includes determining the number of bits in the frame of bits, extracting spectral bits from the frame of bits, and using one or more of the spectral bits to form a spectral codebook index, where the index is determined at least in part by the number of bits in the frame of bits. Spectral information is reconstructed using the spectral codebook index, and speech samples are computed using the reconstructed spectral information.
Implementations may include one or more of the features noted above and one or more of the following features. For example, pitch bits, voicing bits and gain bits may also be extracted from the frame of bits. The voicing bits may be used as an index into a voicing codebook to reconstruct voicing information which is also used to compute the speech samples. The frame of bits may be determined to correspond to a tone signal if some of the pitch bits and some of the voicing bits equal a known tone identifier value. The spectral information may include a set of logarithmic spectral magnitude parameters, and the gain bits may be used to determine the mean value of the logarithmic spectral magnitude parameters. The logarithmic spectral magnitude parameters for a frame may be reconstructed using the extracted spectral bits for the frame combined with the reconstructed logarithmic spectral magnitude parameters from a previous frame. The mean value of the logarithmic spectral magnitude parameters for a frame may be determined from the extracted gain bits for the frame and from the mean value of the logarithmic spectral magnitude parameters of a previous frame. In certain implementations, the frame of bits may include 7 pitch bits representing the fundamental frequency, 5 voicing bits representing voicing decisions, and 5 gain bits representing the signal level.
The techniques may be used to provide a “half-rate” MBE vocoder operating at 3600 bps can provide substantially the same or better performance than the standard “full-rate” 7200 bps APCO Project 25 vocoder even though the new vocoder operates at half the data rate. The much lower data rate for the half-rate vocoder can provide much better communications efficiency (i.e., the amount of RF spectrum required for transmission) compared to the standard full-rate vocoder.
In related application Ser. No. 10/353,974, filed Jan. 30, 2003, titled “Voice Transcoder”, and incorporated by reference, a method is disclosed for providing interoperability between different MBE vocoders. This method can be applied to provide interoperability between current equipment using the full-rate vocoder and newer equipment using the half-rate vocoder described herein. Implementations of the techniques discussed above may include a method or process, a system or apparatus, or computer software on a computer-accessible medium. Other features will be apparent from the following description, including the drawings, and the claims.



DESCRIPTION OF DRAWINGS
FIG. 1 is a block diagram of an application of a MBE vocoder.
FIG. 2 is a block diagram of an implementation of a half-rate MBE vocoder including an encoder and a decoder.
FIG. 3 is a block diagram of a MBE parameter estimator such as may be used in the half-rate MBE encoder of FIG. 2.
FIG. 4 is a block diagram of an implementation of a MBE parameter quantizer such as may be used in the half-rate MBE encoder of FIG. 2.
FIG. 5 is a block diagram of one implementation of a half-rate MBE log spectral magnitude quantizer of the half-rate MBE encoder of FIG. 2.
FIG. 6 is a block diagram of a spectral magnitude prediction residual quantizer of the half-rate MBE encoder of FIG. 2.



DETAILED DESCRIPTION
FIG. 1 shows a speech coder or vocoder system 100 that samples analog speech or some other signal from a microphone 105. An analog-to-digital (“A-to-D”) converter 110 digitizes the sampled speech to produce a digital speech signal. The digital speech is processed by a MBE speech encoder unit 115 to produce a digital bit stream 120 suitable for transmission or storage. Typically, the speech encoder processes the digital speech signal in short frames. Each frame of digital speech samples produces a corresponding frame of bits in the bit stream output of the encoder. In one implementation, the frame size is 20 ms in duration and consists of 160 samples at a 8 kHz sampling rate. Performance may be increased in some applications by dividing each frame into two 10 ms subframes.
FIG. 1 also depicts a received bit stream 125 entering a MBE speech decoder unit 130 that processes each frame of bits to produce a corresponding frame of synthesized speech samples. A digital-to-analog (“D-to-A”) converter unit 135 then converts the digital speech samples to an analog signal that can be passed to a speaker unit 140 for conversion into an acoustic signal suitable for human listening.
FIG. 2 shows a MBE vocoder that includes a MBE encoder unit 200 that employs a parameter estimation unit 205 to estimate generalized MBE model parameters for each frame. Parameter estimation unit 205 also detects certain tone signals and outputs tone data including a voice/tone flag. The outputs for a frame are then processed by either MBE parameter quantization unit 210 to produce voice bits, or by a tone quantization unit 215 to produce tone bits, depending on whether a tone signal was detected for the frame. Selector unit 220 selects the appropriate bits (tone bits if a tone signal is detected or voice bits if no tone signal is detected), and the selected bits are output to FEC encoding unit 225, which combines the quantizer bits with redundant forward error correction (“FEC”) data to form the transmitted bit for the frame. The addition of redundant FEC data enables the decoder to correct and/or detect bit errors caused by degradation in the transmission channel. In certain implementations, parameter estimation unit 205 does not detect tone signals and tone quantization unit 215 and selector unit 220 are not provided.
In one implementation, a 3600 bps MBE vocoder that is well suited for use in next generation radio equipment has been developed. This half-rate implementation uses a 20 ms frame containing 72 bits, where the bits are divided into 23 FEC bits and 49 voice or tone bits. The 23 FEC bits are formed from one [24,12] extended Golay code and one [23,12] Golay code. The FEC bits protect the 24 most sensitive bits of the frame and can correct and/or detect certain bit error patterns in these protected bits. The remaining 25 bits are less sensitive to bit errors and are not protected. The voice bits are divided into 7 bits to quantize the fundamental frequency, 5 bits to vector quantize the voicing decisions over 8 frequency bands, and 37 bits to quantize the spectral magnitudes. To increase the ability to detect bit errors in the most sensitive bits, data dependent scrambling is applied to the [23,12] Golay code within FEC encoding unit 225. A pseudo-random scrambling sequence is generated from a modulation key based on the 12 input bits to the [24,12] Golay code. An exclusive-OR then is used to combine this scrambling sequence with the 23 output bits from the [23,12] Golay encoder. Data dependent scrambling is described in U.S. Pat. Nos. 5,870,405 and 5,517,511, which are incorporated by reference. A [4×18] row-column interleaver is also applied to reduce the effect of burst errors.
FIG. 2 also shows a block diagram of a MBE decoder unit 230 that processes a frame of bits obtained from a received bit stream to produce an output digital speech signal. The MBE decoder includes FEC decoding unit 235 that corrects and/or detects bit errors in the received bit stream to produce voice or tone quantizer bits. The FEC decoding unit typically includes data dependent descrambling and deinterleaving as necessary to reverse the steps performed by the FEC encoder. The FEC decoder unit 235 may optionally use soft-decision bits, where each received bit is represented using more than two possible levels, in order to improve error control decoding performance. The quantizer bits for the frame are output by the FEC decoding unit 235 and processed by a parameter reconstruction unit 240 to reconstruct the MBE model parameters or tone parameters for the frame by inverting the quantization steps applied by the encoder. The resulting MBE or tone parameters then are used by a speech synthesis unit 245 to produce a synthetic digital speech signal or tone signal that is the output of the decoder.
In the described implementation, the FEC decoder unit 235 inverts the data dependent scrambling operation by first decoding the [24, 12] Golay code, to which no scrambling is applied, and then using the 12 output bits from the [24,12] Golay decoder to compute a modulation key. This modulation key is then used to compute a scrambling sequence which is applied to the 23 input bits prior to decoding the [23, 12] Golay code. Assuming the [24, 12] Golay code (containing the most important data) is decoded correctly, then the scrambling sequence applied by the encoder is completely removed. However if the [24, 12] Golay code is not decoded correctly, then the scrambling sequence applied by the encoder cannot be removed, causing many errors to be reported by the [23, 12] Golay decoder. This property is used by the FEC decoder to detect frames where the first 12 bits may have been decoded incorrectly.
The FEC decoder sums the number of corrected errors reported by both Golay decoders. If this sum is greater than or equal to 6, then the frame is declared invalid and the current frame of bits is not used during synthesis. Instead, the MBE synthesis unit 235 performs a frame repeat or a muting operation after three consecutive frame repeats. During a frame repeat, decoded parameters from a previous frame are used for the current frame. A low level “comfort noise” signal is output during a mute operation.
In one implementation of the half-rate vocoder shown in FIG. 2, the MBE parameter estimation unit 205 and the MBE synthesis unit 235 are generally the same as the corresponding units in the 7200 bps full-rate APCO P25 vocoder described in the APCO Project 25 Vocoder Description (TIA-102BABA). The sharing of these elements between the full-rate vocoder and the half-rate vocoder reduces the memory required to implement both vocoders, and thereby reduces the cost of implementing both vocoders in the same equipment. In addition, interoperability can be enhanced in this implementation by using the MBE transcoder methods disclosed in copending U.S. application Ser. No. 10/353,974, which was filed Jan. 30, 2003, is titled “Voice Transcoder,” and is incorporated by reference. Alternate implementations may include different analysis and synthesis techniques in order to improve quality while remaining interoperable with the half-rate bit stream described herein. For example a three-state voicing model (voiced, unvoiced or pulsed) may be used to reduce distortion for plosive and other transient sounds while remaining interoperable using the method described in copending U.S. application Ser. No. 10/292,460, which was filed Nov. 13, 2002, is titled “Interoperable Vocoder,” and is incorporated by reference. Similarly, a Voice Activity Detector (VAD) may be added to distinguish speech from background noise and/or noise suppression may be added to reduce the perceived amount of background noise. Another alternate implementation substitutes improved pitch and voicing estimation methods such as those described in U.S. Pat. Nos. 5,826,222 and 5,715,365 to improve voice quality.
FIG. 3 shows a MBE parameter estimator 300 that represents one implementation of the MBE parameter estimation unit 205 of FIG. 2. A high pass filter 305 filters a digital speech signal to remove any DC level from the signal. Next, the filtered signal is processed by a pitch estimation unit 310 to determine an initial pitch estimate for each 20 ms frame. The filtered speech is also provided to a windowing and FFT unit 315 that multiplies the filtered speech by a window function, such as a 221 point Hamming window, and uses an FFT to compute the spectrum of the windowed speech.
The initial pitch estimate and the spectrum are then processed further by a fundamental frequency estimator 320 to compute the fundamental frequency, f0, and the associated number of harmonics (L=0.4627/f0) for the frame, where 0.4627 represents the typical vocoder bandwidth normalized by the sampling rate. These parameters are then further processed with the spectrum by a voicing decision generator 325 that computes the voicing measures, V1 and a spectral magnitude generator 330 that computes the spectral magnitudes, M1, for each harmonic 1≦l≦L.
The spectrum optionally may be further processed by a tone detection unit 335 that detects certain tone signals, such as, for example, single frequency tones, DTMF tones, and call progress tones. Tone detection techniques are well known and may be performed by searching for peaks in the spectrum and determining that a tone signal is present if the energy around one or more located peaks exceeds some threshold (for example 99%) of the total energy in the spectrum. The tone data output from the tone detection element typically includes a voice/tone flag, a tone index to identify the tone if the voice/tone flag indicates a tone signal has been detected, and the estimated tone amplitude, ATONE.
The output 340 of the MBE parameter estimation includes the MBE parameters combined with any tone data.
The MBE parameter estimation technique shown in FIG. 3 closely follows the method described in the APCO Project 25 Vocoder Description. Differences include having voicing decision generator 325 compute a separate voicing decision for each harmonic in the half-rate vocoder, rather than for each group of three or more harmonics, and having spectral magnitude generator 330 compute each spectral magnitude independent of the voicing decisions as described, for example, in U.S. Pat. No. 5,754,974, which is incorporated by reference. In addition, the optional tone detection unit 335 may be included in the half-rate vocoder to detect tone signals for transmission through the vocoder using special tone frames of bits which are recognized by the decoder.
FIG. 4 illustrates a MBE parameter quantization technique 400 that constitutes one implementation of the quantization performed by the MBE parameter quantization unit 210 of FIG. 2. Additional details regarding quantization can be found in U.S. Pat. No. 6,199,037 B1 and in the APCO Project 25 Vocoder Description, both of which are incorporated by reference. The described MBE parameter quantization method is typically only applied to voice signals, while detected tone signals are quantized using a separate tone quantizer. MBE parameters 405 are the input to the MBE parameter quantization technique. The MBE parameters 405 may be estimated using the techniques illustrated by FIG. 3. In one implementation, 42-49 bits per frame are used to quantize the MBE model parameters as shown in Table 1, where the number of bits can be independently selected for each frame in the range of 42-49 using an optional control parameter.







TABLE 1







MBE Parameter Bits










Parameter
Bits per Frame







Fundamental Frequency
7



Voicing Decisions
5



Gain
5



Spectral Magnitudes
25–32



Total Bits
42–49










In this implementation the fundamental frequency, f0, is typically quantized first using a fundamental frequency quantizer unit 410 that outputs 7 fundamental frequency bits, bfund, which may be computed according to Equation [1] as follows:

bfund=0, if f0>0.0503

bfund=119, if f0<0.00811

bfund=└−195.626−45.368*log2(f0)┘, otherwise.  [1]

The harmonic voicing measures, D1, and spectral magnitudes, M1, for 1≦l≦L, are next mapped from harmonics to voicing bands using a frequency mapping unit 415. In one implementation, 8 voicing bands are used where the first voicing band covers frequencies [0, 500 Hz], the second voicing band covers [500, 1000 Hz], . . . , and the last voicing band covers frequencies [3500, 4000 Hz]. The output of frequency mapping unit 415 is the voicing band energy metric venerk and the voicing band error metric lvk, for each voicing band k in the range 0≦k<8. Each voicing band's energy metric, venerk, is computed by summing |M1|2 over all harmonics in the k'th voicing band, i.e. for bk<l≦bk+1, where bk is given by:

bk=(k−0.25)/(16f0)┘  [2]

The voicing band metric verrk is computed by summing D1·|M1|2 over bk<l≦bk+1, and the voicing band error metric lvk is then computed from verrk and venerk as shown in Equation [3] below:

lvk=max[0.0, min[1.0, 0.5·(1.0−log2(verrk/(Tk·venerk)))]]  [3]

    
    
        where max[x, y] returns the maximum of x or y and min[x, y] computes the minimum of x or y. The threshold value Tk is computed according to Tk=Θ(k, 0.1309) from the threshold function Θ(k, ω0) defined in Equation [37] of the APCO Project 25 Vocoder Description.
    
    


Once the voicing band energy metrics venerk and the voicing band error metrics lvk for each voicing band have been computed, the voicing decisions for the frame are jointly quantized using a 5-bit voicing band weighted vector quantizer unit 420 that, in one implementation, uses the voicing band subvector quantizer described in U.S. Pat. No. 6,199,037 B1, which is incorporated by reference. The voicing band weighted vector quantizer unit 420 outputs the voicing decision bits bvuv, where bvuv denotes the index of the selected candidate vector xj(i) from a voicing band codebook. A 5-bit (32 element) voicing band codebook used in one implementation is shown in Table 2.







TABLE 2







5 Bit Voicing Band Codebook












Index:
Candidate Vector:
Index:
Candidate Vector:



i
xj(i)
i
xj(i)
















0
0xFF
1
0xFF



2
0xFE
3
0xFE



4
0xFC
5
0xDF



6
0xEF
7
0xFB



8
0xF0
9
0xF8



10
0xE0
11
0xE1



12
0xC0
13
0xC0



14
0x80
15
0x80



16
0x00
17
0x00



18
0x00
19
0x00



20
0x00
21
0x00



22
0x00
23
0x00



24
0x00
25
0x00



26
0x00
27
0x00



28
0x00
29
0x00



30
0x00
31
0x00










Note that each candidate vector xj(i) shown in Table 2 is represented as an 8-bit hexadecimal number where each bit represents a single element of an 8 element codebook vector and xj(i)=1.0 if the bit corresponding to 27−j is a 1 and xj(i)=0.0 if the bit corresponding to 27−j is a 0. This notation is used to be consistent with the voicing band subvector quantizer described in U.S. Pat. No. 6,199,037 B1.

One feature of the half-rate vocoder is that it includes multiple candidate vectors that each correspond to the same voicing state. For example, indices 16-31 in Table 2 all correspond to the all unvoiced state and indices 0 and 1 both correspond to the all voiced state. This feature provides an interoperable upgrade path for the vocoder that allows alternate implementations that could include pulsed or other improved voicing states. Initially, an encoder may only use the lowest valued index wherever two or more indices equate to the same voicing state. However, an upgraded encoder may use the higher valued indices to represent alternate related voicing states. The initial decoder would decode either the lowest or higher indices to the same voicing state (for example, indices 16-31 would all be decoded as all unvoiced), but upgraded decoders may decode these indices into related but different voicing states for improved performance.
FIG. 4 also depicts the processing of the spectral magnitudes by a logarithm computation unit 425 that computes the log spectral magnitudes, log2(M1) for 1≦l≦L. The output log spectral magnitudes are then quantized by a log spectral magnitude quantizer unit 430 to produce output log spectral magnitude output bits.
FIG. 5 shows a log spectral magnitude quantization technique 500 that constitutes one implementation of the quantization performed by the quantization unit 430 of FIG. 4. The shaded section of FIG. 5, including elements 525-550, shows a corresponding implementation of a log spectral magnitude reconstruction technique 555 that may be implemented within parameter reconstruction unit 240 of FIG. 2 to reconstruct the log spectral magnitudes from the quantizer bits output by FEC decoding unit 235.
Referring to FIG. 5, log spectral magnitudes for a frame (i.e., log2(M1) for 1≦l≦L) are processed by mean computation unit 505 to compute and remove the mean from the log spectral magnitudes. The mean is output to the a gain quantizer unit 515 that computes the gain, G(0), for the current frame from the mean as shown in Equation [4]:

G(0)=mean {log2(M1)}+0.5·log2(L)  [4]

The differential gain, ΔG, is then computed as:

ΔG=G(0)−0.5·G(−1)  [5]

where G(−1) is the gain term from the prior frame after quantization and reconstruction. The differential gain, ΔG, is then quantized using a 5-bit non-uniform quantizer such as that shown in Table 3. The gain bits output by the quantizer are denoted as bgain.








TABLE 3







5 Bit Differential Gain Codebook












Index:
Differential Gain:
Index:
Candidate Vector:



i
ΔG(i)
i
ΔG(i)
















0
−2.0
1
−0.67



2
0.2979
3
0.6637



4
1.0368
5
1.4381



6
1.8901
7
2.2280



8
2.4783
9
2.6676



10
2.7936
11
2.8933



12
3.0206
13
3.1386



14
3.2376
15
3.3226



16
3.4324
17
3.5719



18
3.6967
19
3.8149



20
3.9209
21
4.0225



22
4.1236
23
4.2283



24
4.3706
25
4.5437



26
4.7077
27
4.8489



28
5.0568
29
5.3265



30
5.7776
31
6.8745










The mean computation unit 505 outputs zero-mean log spectral magnitudes to a subtraction unit 510 that subtracts predicted magnitudes to produce a set of magnitude prediction residuals. The magnitude prediction residuals are input to a quantization unit 520 that produces magnitude prediction residual parameter bits.
These magnitude prediction residual parameter bits are also fed to the reconstruction technique 555 depicted in the shaded region of FIG. 5. In particular, inverse magnitude prediction residual quantization unit 525 computes reconstructed magnitude prediction residuals using the input bits, and provides the reconstructed magnitude prediction residuals to a summation unit 530 that adds them to the predicted magnitudes to form reconstructed zero-mean log spectral magnitudes that are stored in a frame storage element 535.
The zero-mean log spectral magnitudes stored from a prior frame are processed in conjunction with reconstructed fundamental frequencies for the current and prior frames by predicted magnitude computation unit 540 and then scaled by a scaling unit 545 to form predicted magnitudes that are applied to difference unit 510 and summation unit 530. Predicted magnitude computation unit 540 typically interpolates the reconstructed log spectral magnitudes from a prior frame based on the ratio of the reconstructed fundamental frequency from the current frame to the reconstructed fundamental frequency of the prior frame. This interpolation is followed by application by the scaling unit 545 of a scale factor ρ that normally is less than 1.0 (ρ=0.65 is typical, and in some implementations ρ may be varied depending on the number of spectral magnitudes in the frame).
In addition, the mean is then reconstructed from the gain bits and from the stored value of G(−1) in a mean reconstruction unit 550 that also adds the reconstructed mean to the reconstructed magnitude prediction residuals to produce reconstructed log spectral magnitudes 560.
In the implementation shown in FIG. 5, quantization unit 520 and inverse quantization unit 525 accept an optional control parameter that allows the number of bits per frame to be selected within some allowable range of bits (for example 25-32 bits per frame). Typically, the bits per frame are varied by using only a subset of the allowable quantization vectors in quantization unit 510 and inverse quantization unit 515 as further described below. This same control parameter can be used in several ways to vary the number of bits per frame over a wider range if necessary. For example, this may be done by also reducing the number of bits from the gain quantizer by searching only the even indices 0, 2, 4, 6, . . . 32 in Table 3. This method can also be applied to the fundamental frequency or voicing quantizer. FIG. 6 shows a magnitude prediction residual quantization technique 600 that constitutes one implementation of the quantization performed by the quantization unit 520 of FIG. 5. First, a block divider 605 divides magnitude prediction residuals into four blocks, with the length of each block typically being determined by the number of harmonics, L, as shown in Table 4. Lower frequency blocks are generally equal or smaller in size compared to higher frequency blocks to improve performance by placing more emphasis on the perceptually more important low frequency regions. Each block is then transformed with a separate Discrete Cosine Transform (DCT) unit 610 and the DCT coefficients are divided into an eight element PRBA vector (using the first two DCT coefficients of each block) and four HOC vectors (one for each block consisting of all but the first two DCT coefficients) by a PRBA and HOC vector formation unit 615. The formation of the PRBA vector uses the first two DCT coefficients for each block transformed and arranged as follows:

PRBA(0)=Block0(0)+1.414·Block0(1)

PRBA(1)=Block0(0)−1.414·Block0(1)

PRBA(2)=Block1(0)+1.414·Block1(1)

PRBA(3)=Block1(0)−1.414·Block1(1)

PRBA(4)=Block2(0)+1.414·Block2(1)

PRBA(5)=Block2(0)−1.414·Block2(1)

PRBA(6)=Block3(0)+1.414·Block3(1)

PRBA(7)=Block3(0)−1.414·Block3(1)  [6]

where PRBA(n) is the n'th element of the PRBA vector and Blockj(k) is the k'th element of the j'th block.








TABLE 4







Magnitude Prediction Residual Block Size











L
Block0
Block1
Block2
Block3














9
2
2
2
3


10
2
2
3
3


11
2
3
3
3


12
2
3
3
4


13
3
3
3
4


14
3
3
4
4


15
3
3
4
5


16
3
4
4
5


17
3
4
5
5


18
4
4
5
5


19
4
4
5
6


20
4
4
6
6


21
4
5
6
6


22
4
5
6
7


23
5
5
6
7


24
5
5
7
7


25
5
6
7
7


26
5
6
7
8


27
5
6
8
8


28
6
6
8
8


29
6
6
8
9


30
6
7
8
9


31
6
7
9
9


32
6
7
9
10


33
7
7
9
10


34
7
8
9
10


35
7
8
10
10


36
7
8
10
11


37
8
8
10
11


38
8
9
10
11


39
8
9
11
11


40
8
9
11
12


41
8
9
11
13


42
8
9
12
13


43
8
10
12
13


44
9
10
12
13


45
9
10
12
14


46
9
10
13
14


47
9
11
13
14


48
10
11
13
14


49
10
11
13
15


50
10
11
14
15


51
10
12
14
15


52
10
12
14
16


53
11
12
14
16


54
11
12
15
16


55
11
12
15
17


56
11
13
15
17









The PRBA vector is processed further using an eight-point DCT followed by a split vector quantizer unit 620 to produce PRBA bits. In one implementation, the first PRBA DCT coefficient (designated R0) is ignored since it is redundant with the Gain value quantized separately. Alternately, this first PRBA DCT coefficient can be quantized in place of the gain as described in the APCO Project 25 Vocoder Description. The final seven PRBA DCT coefficients [R1-R7] are then quantized with a split vector quantizer that uses a nine-bit codebook to quantize the three elements [R1-R3] to produce PRBA quantizer bits bPRBA13 and a seven-bit codebook is used to quantize the four elements [R4-R7] to produce PRBA quantizer bits bPRBA47. These 16 PRBA quantizer bits (bPRBA13 and bPRBA47) are then output from the quantizer. Typical split VQ codebooks used to quantize the PRBA vector are given in Appendix A.
The four HOC vectors, designated HOC0, HOC1, HOC2 and HOC3, are then quantized using four separate codebooks 625. In one implementation, a five-bit codebook is used for HOC0 to produce HOC0 quantizer bits bHOC0; four-bit codebooks are used for HOC1 and HOC2 to produce HOC1 quantizer bits bHOC1 and HOC2 quantizer bits bHOC2; and a 3 bit codebook is used for HOC3 to produce HOC3 quantizer bits bHOC3. Typical codebooks used to quantize the HOC vectors in this implementation are shown in Appendix B. Note that each HOC vector can vary in length between 0 and 15 elements. However, the codebooks are designed for a maximum of four elements per vector. If a HOC vector has less than four elements, then only the first elements of each codebook vector are used by the quantizer. Alternately, if the HOC vector has more than four elements, then only the first four elements are used and all other elements in that HOC vector are set equal to zero. Once all the HOC vectors are quantized, the 16 HOC quantizer bits (bHOC0, bHOC1, bHOC2, and bHOC3) are output by the quantizer
In the implementation shown in FIG. 6, the vector quantizer units 620 and/or 625 accept an optional control parameter that allows the number of bits per frame used to quantize the PRBA and HOC vectors to be selected within some allowable range of bits. Typically, the bits per frame are reduced from the nominal value of 32 by using only a subset of the allowable quantization vectors in one or more of the codebooks used by the quantizer. For example, if only the even candidate vectors in a codebook are used, then the last bit of the codebook index is known to be a zero, allowing the number of bits to be reduced by one. This can be extended to every fourth vector to allow the number of bits to be reduced by two.
At the decoder, the codebook index is reconstructed by appending the appropriate number of ‘0’ bits in place of any missing bits to allow the quantized codebook vector to be determined. This approach is applied to one or more of the HOC and/or PRBA codebooks to obtain the selected number of bits for the frame as shown in Table 5, where the number of magnitude prediction residual quantizer bits is typically determined as an offset from the number of voice bits in the frame (i.e., the number of voice bits minus 17).







TABLE 5







Magnitude Prediction Residual Quantizer Bits per Frame













Magnitude








Prediction


Residual


Quantizer


Bits per
PRBA
PRBA


Frame
[R–R3]
[R4–R7]
HOC0
HOC1
HOC2
HOC3





32
9
7
5
4
4
3


31
9
7
5
4
4
2


30
9
7
5
4
4
1


29
9
7
5
4
3
1


28
9
7
5
3
3
1


27
9
7
4
3
3
1


26
9
6
4
3
3
1


25
8
6
4
3
3
1









Referring to FIG. 4, combining unit 435 receives fundamental frequency or pitch bits bfund, voicing bits bvuv, gain bits bgain, and spectral bits bPRBA13, bPRBA47, bHOC0, bHOC1, bHOC2, and bHOC, from quantizer units 410, 420 and 430. Typically, combining unit 435 prioritizes these input bits to produce output voice bits such that the first voice bits in the frame are more sensitive to bit errors, while the later voice bits in the frame are less sensitive to bit errors. This prioritization allows FEC to be applied efficiently to the most sensitive voice bits, resulting in improved voice quality and robustness in degraded communication channels. In one such implementation, the first 12 voice bits in a frame output by combining unit 435 consist of the four most significant fundamental frequency bits, followed by the first four voicing decision bits and the four most significant gain bits. The resulting voice frame format (i.e., the ordering of the output voice bits after prioritization by combining unit 435) is shown in Table 6.







TABLE 6







Voice Frame Format








Bit Position in



Voice Frame
Voice Bits





0–3
4 most significant bits of bfund


4–7
4 most significant bits of bvuv


 8–11
4 most significant bits of bgain


12–19
8 most significant bits of bPBBA13


20–23
4 most significant bits of bPBBA47


24–27
4 most significant bits of bHOC0


28–30
3 most significant bits of bHOC1


31–33
3 most significant bits of bHOC2


34
1 most significant bit of bHOC3


35
1 least significant bit ofbvuv


36
1 least significant bit of bgain


37–39
3 least significant bits of bfund


40
1 least significant bit of bPBBA13


41–43
3 least significant bits of bPBBA47


44
1 least significant bits of bHOC0


45
1 least significant bits of bHOC1


46
1 least significant bits of bHOC2


47–48
2 least significant bits of bHOC3









Referring again to FIG. 2, the encoder may include a tone quantization unit 215 that outputs a frame of tone bits (i.e., a tone frame) if certain tone signals (such as a single frequency tone, Knox tones, a DTMF tone and/or a call progress tone) are detected in the encoder input signal. In one implementation, tone bits are generated as shown in Table 7, where the first 6 bits are all ones (hexadecimal value 0x3F) to allow the decoder to uniquely identify a tone frame from other frames containing voice bits (i.e., voice frames). This unique differentiation is possible because of limits on the value of bfund imposed by Equation [1], which prevent the tone frame identifier value (0x3F) from ever occurring for voice frames and because the tone frame identifier overlaps the same position in the frame as the four most significant pitch bits, bfund, as shown in Table 6. The seven tone amplitude bits bTONEAMP are computed from the estimated tone amplitude, ATONE, as follows:

bTONEAMP=max[0, min[127, 8.467·(log2(ATONE)+1)]]  [4]

while the 8-bit tone index, bTONE used to represent a given tone signal is shown in Appendix C. Typically, the tone index bTONE is repeated several times within a tone frame in order to increase robustness to channel errors. This is depicted in Table 7, where the tone index is repeated four times within the frame of 49 bits.








TABLE 7







Tone Frame Format








Bit Position in



Frame
Tone Bits





0–5
0x3F


 6–11
first 6 most significant bits of bTONEAMP


12–19
bTONE


20–27
bTONE


28–35
bTONE


36–43
bTONE


44
7'th least significant bit of bTONEAMP


45–48
0









While the techniques are described largely in the context of a new half-rate MBE vocoder, the described techniques may be readily applied to other systems and/or vocoders. For example, other MBE type vocoders may also benefit from the techniques regardless of the bit rate or frame size. In addition, the techniques described may be applicable to many other speech coding systems that use a different speech model with alternative parameters (such as STC, MELP, MB-HTC, CELP, HVXC or others) or which use different methods for analysis, quantization and/or synthesis. Other implementations are within the scope of the following claims.
APPENDIX A
PRBA Codebooks







TABLE A.1







PRBA13 Codebook












Codebook






Index
PRBA13(0)
PRBA13(1)
PRBA13(2)
















0
0.526055
−0.328567
−0.304727



1
0.441044
−0.303127
−0.201114



2
1.030896
−0.324730
−0.397204



3
0.839696
−0.351933
−0.224909



4
0.272958
−0.176118
−0.098893



5
0.221466
−0.160045
−0.061026



6
0.496555
−0.211499
0.047305



7
0.424376
−0.223752
0.069911



8
0.264531
−0.353355
−0.330505



9
0.273650
−0.253004
−0.250241



10
0.484531
−0.297627
−0.071051



11
0.410814
−0.224961
−0.084998



12
0.039519
−0.252904
−0.115128



13
0.017423
−0.296519
−0.045921



14
0.225113
−0.224371
0.037882



15
0.183424
−0.260492
0.050491



16
0.308704
−0.073205
−0.405880



17
0.213125
−0.101632
−0.333208



18
0.617735
−0.137299
−0.213670



19
0.514382
−0.126485
−0.170204



20
0.130009
−0.076955
−0.229303



21
0.061740
−0.108259
−0.203887



22
0.244473
−0.110094
−0.051689



23
0.230452
−0.076147
−0.028190



24
0.059837
−0.254595
−0.562704



25
0.011630
−0.135223
−0.432791



26
0.207077
−0.152248
−0.148391



27
0.158078
−0.128800
−0.122150



28
−0.265982
−0.144742
−0.199894



29
−0.356479
−0.204740
−0.156465



30
0.000324
−0.139549
−0.066471



31
0.001888
−0.170557
−0.025025



32
0.402913
−0.581478
−0.274626



33
0.191289
−0.540335
−0.193040



34
0.632914
−0.401410
−0.006636



35
0.471086
−0.463144
0.061489



36
0.044829
−0.438487
0.033433



37
0.015513
−0.539475
−0.006719



38
0.336218
−0.351311
0.214087



39
0.239967
−0.380836
0.157681



40
0.347609
−0.901619
−0.688432



41
0.064067
−0.826753
−0.492089



42
0.303089
−0.396757
−0.108446



43
0.235590
−0.446122
0.006437



44
−0.236964
−0.652532
−0.135520



45
−0.418285
−0.793014
−0.034730



46
−0.038262
−0.516984
0.273681



47
−0.037419
−0.958198
0.214749



48
0.061624
−0.238233
−0.237184



49
−0.013944
−0.235704
−0.204811



50
0.286428
−0.210542
−0.029587



51
0.257656
−0.261837
−0.056566



52
−0.235852
−0.310760
−0.165147



53
−0.334949
−0.385870
−0.197362



54
0.094870
−0.241144
0.059122



55
0.060177
−0.225884
0.031140



56
−0.301184
−0.306545
−0.446189



57
−0.293528
−0.504 146
−0.429844



58
−0.055084
−0.379015
−0.125887



59
−0.115434
−0.375008
−0.059939



60
−0.777425
−0.592163
−0.107585



61
−0.950500
−0.893847
−0.181762



62
−0.259402
−0.396726
0.010357



63
−0.368905
−0.449026
0.038299



64
0.279719
−0.063196
−0.184628



65
0.255265
−0.067248
−0.121124



66
0.458433
−0.103777
0.010074



67
0.437231
−0.092496
−0.031028



68
0.082265
−0.028050
−0.041262



69
0.045920
−0.051719
−0.030155



70
0.271149
−0.043613
0.112085



71
0.246881
−0.065274
0.105436



72
0.056590
−0.117773
−0.142283



73
0.058824
−0.104418
−0.099608



74
0.213781
−0.111974
0.031269



75
0.187554
−0.070340
0.011834



76
−0.185701
−0.081106
−0.073803



77
−0.266112
−0.074133
−0.085370



78
−0.029368
−0.046490
0.124679



79
−0.017378
−0.102882
0.140482



80
0.114700
0.092738
−0.244271



81
0.072922
0.007863
−0.231476



82
0.270022
0.031819
−0.094208



83
0.254403
0.024805
−0.050389



84
−0.182905
0.021629
−0.168481



85
−0.225864
−0.010109
−0.130374



86
0.040089
0.013969
0.016028



87
0.001442
0.010551
0.032942



88
−0.287472
−0.036130
−0.296798



89
−0.332344
−0.108862
−0.342196



90
0.012700
0.022917
−0.052501



91
−0.040681
−0.001805
−0.050548



92
−0.718522
−0.061234
−0.278820



93
−0.879205
−0.213588
−0.303508



94
−0.234102
−0.065407
0.013686



95
−0.281223
−0.076139
0.046830



96
0.141967
−0.193679
−0.055697



97
0.100318
−0.161222
−0.063062



98
0.265859
−0.132747
0.078209



99
0.244805
−0.139776
0.122123



100
−0.121802
−0.179976
0.031732



101
−0.185318
−0.214011
0.018117



102
0.047014
−0.153961
0.218068



103
0.047305
−0.187402
0.282114



104
−0.027533
−0.415868
−0.333841



105
−0.125886
−0.334492
−0.290317



106
−0.030602
−0.190918
0.097454



107
−0.054936
−0.209948
0.158977



108
−0.507223
−0.295876
−0.217183



109
−0.581733
−0.403194
−0.208936



110
−0.299719
−0.289679
0.297101



111
−0.363169
−0.362718
0.436529



112
−0.124627
−0.042100
−0.157011



113
−0.161571
−0.092846
−0.183636



114
0.084520
−0.100217
−0.000901



115
0.055655
−0.136381
0.032764



116
−0.545087
−0.197713
−0.026888



117
−0.662772
−0.179815
0.026419



118
−0.165583
−0.148913
0.090382



119
−0.240772
−0.182830
0.105474



120
−0.576315
−0.359473
−0.456844



121
−0.713430
−0.554156
−0.476739



122
−0.275628
−0.223640
−0.051584



123
−0.359501
−0.230758
−0.027006



124
−1.282559
−0.284807
−0.233743



125
−1.060476
−0.399911
−0.562698



126
−0.871952
−0.272197
0.016126



127
−0.747922
−0.329404
0.276696



128
0.643086
0.046175
−0.660078



129
0.738204
−0.127844
−0.433708



130
1.158072
0.025571
−0.177856



131
0.974840
−0.009417
−0.112337



132
0.418014
0.032741
−0.124545



133
0.381422
−0.001557
−0.085504



134
0.768280
0.056085
0.095375



135
0.680004
0.052035
0.152318



136
0.473182
0.012560
−0.264221



137
0.345 153
0.036627
−0.248756



138
0.746238
−0.025880
−0.106050



139
0.644319
−0.058256
−0.095133



140
0.185924
−0.022230
−0.070540



141
0.146068
−0.009550
−0.057871



142
0.338488
0.013022
0.069961



143
0.298969
0.047403
0.052598



144
0.346002
0.256253
−0.380261



145
0.313092
0.163821
−0.314004



146
0.719154
0.103108
−0.252648



147
0.621429
0.172423
−0.265180



148
0.240461
0.104684
−0.202582



149
0.206946
0.139642
−0.138016



150
0.359915
0.101273
−0.052997



151
0.318117
0.125888
−0.003486



152
0.150452
0.050219
−0.409155



153
0.188753
0.091894
−0.325733



154
0.334922
0.029098
−0.098587



155
0.324508
0.015809
−0.135408



156
−0.042506
0.038667
−0.208535



157
−0.083003
0.094758
−0.174054



158
0.094773
0.102653
−0.025701



159
0.063284
0.118703
−0.000071



160
0.355965
−0.139239
−0.191705



161
0.392742
−0.105496
−0.132103



162
0.663678
−0.204627
−0.031242



163
0.609381
−0.146914
0.079610



164
0.151855
−0.132843
−0.007125



165
0.146404
−0.161917
0.024842



166
0.400524
−0.135221
0.232289



167
0.324931
−0.116605
0.253458



168
0.169066
−0.215132
−0.185604



169
0.128681
−0.189394
−0.160279



170
0.356194
−0.116992
−0.038381



171
0.342866
−0.144687
0.020265



172
−0.065545
−0.202593
−0.043688



173
−0.124296
−0.260225
−0.035370



174
0.083224
−0.235149
0.153301



175
0.046256
−0.309608
0.190944



176
0.187385
−0.008168
−0.198575



177
0.190401
−0.018699
−0.136858



178
0.398009
−0.025700
−0.007458



179
0.346948
−0.022258
−0.020905



180
−0.047064
−0.085629
−0.080677



181
−0.067523
−0.128972
−0.119538



182
0.186086
−0.016828
0.070014



183
0.187364
0.017133
0.075949



184
−0.112669
−0.037433
−0.298944



185
−0.068276
−0.114504
−0.265795



186
0.147510
−0.040616
−0.013687



187
0.133084
−0.062849
−0.032637



188
−0.416571
−0.041544
−0.125088



i89
−0.505337
−0.044193
−0.157651



190
−0.154132
−0.075106
0.050466



191
−0.148036
−0.059719
0.121516



192
0.490555
0.157659
−0.222208



193
0.436700
0.120500
−0.205869



194
0.754525
0.269323
0.045810



195
0.645077
0.271923
0.013942



196
0.237023
0.115337
−0.026429



197
0.204895
0.121020
−0.008541



198
0.383999
0.153963
0.171763



199
0.385026
0.222074
0.239731



200
0.198232
0.072972
−0.108179



201
0.147882
0.074743
−0.123341



202
0.390929
0.075205
0.081828



203
0.341623
0.089405
0.069389



204
−0.003381
0.159694
−0.016026



205
−0.043653
0.206860
−0.040729



206
0.135515
0.107824
0.179310



207
0.081086
0.119673
0.174282



208
0.192637
0.400335
−0.341906



209
0.171196
0.284921
−0.221516



210
0.377807
0.359087
−0.151523



211
0.411052
0.297925
−0.099774



212
−0.010060
0.261887
−0.149567



213
−0.107877
0.287756
−0.116982



214
0.158003
0.209727
0.077988



215
0.109710
0.232272
0.088135



216
0.000698
0.209353
−0.395208



217
−0.094015
0.230322
−0.279928



218
0.137355
0.230881
−0.124115



219
0.103058
0.166855
−0.100386



220
−0.305058
0.305422
−0.176026



221
−0.422049
0.337137
−0.293297



222
−0.121744
0.185124
0.048115



223
−0.171052
0.200312
0.052812



224
0.224091
−0.010673
−0.019727



225
0.200266
−0.020167
0.001798



226
0.382742
0.032362
0.161665



227
0.345631
−0.019705
0.164451



228
0.029431
0.045010
0.071518



229
0.031940
0.010876
0.087037



230
0.181935
0.039112
0.202316



231
0.181810
0.033189
0.253435



232
−0.008677
−0.066679
−0.144737



233
−0.021768
−0.021288
−0.125903



234
0.136766
0.000100
0.059449



235
0.135405
−0.020446
0.103793



236
−0.289115
0.039747
−0.012256



237
−0.338683
0.025909
−0.034058



238
−0.016515
0.048584
0.197981



239
−0.046790
0.011816
0.199964



240
0.094214
0.127422
−0.169936



241
0.048279
0.096189
−0.148153



242
0.217391
0.081732
0.013677



243
0.179656
0.084671
0.031434



244
−0.227367
0.118176
−0.039803



245
−0.327096
0.159747
−0.018931



246
0.000834
0.113118
0.125325



247
−0.014617
0.128924
0.163776



248
−0.254570
0.154329
−0.232018



249
−0.353068
0.124341
−0.174409



250
−0.061004
0.107744
0.037257



251
−0.100991
0.080302
0.062701



252
−0.927022
0.285660
−0.240549



253
−1.153224
0.277232
−0.322538



254
−0.569012
0.108135
0.172634



255
−0.555273
0.131461
0.325930



256
0.518847
0.065683
−0.132877



257
0.501324
−0.006585
−0.094884



258
1.066190
−0.150380
0.201791



259
0.858377
−0.166415
0.081686



260
0.320584
−0.03 1499
0.039534



261
0.311442
−0.075120
0.026013



262
0.625829
−0.019856
0.346041



263
0.52527 1
−0.003948
0.284868



264
0.3 12594
−0.075673
−0.066642



265
0.295732
−0.057895
−0.042207



266
0.550446
−0.029110
0.046850



267
0.465467
−0.068987
0.096167



268
0.122669
−0.051786
0.044283



269
0.079669
−0.044145
0.045805



270
0.238778
−0.031835
0.171694



271
0.200734
−0.072619
0.178726



272
0.342512
0.131270
−0.163021



273
0.294028
0.111759
−0.125793



274
0.589523
0.121808
−0.049372



275
0.550506
0.132318
0.017485



276
0.164280
0.047560
−0.058383



277
0.120110
0.049242
−0.052403



278
0.269181
0.035000
0.103494



279
0.297466
0.038517
0.139289



280
0.094549
−0.030880
−0.153376



281
0.080363
0.024359
−0.127578



282
0.281351
0.055178
0.000155



283
0.234900
0.039477
0.013957



284
−0.118161
0.011976
−0.034270



285
−0.157654
0.027765
−0.005010



286
0.102631
0.027283
0.099723



287
0.077285
0.052532
0.115583



288
0.329398
−0.278552
0.016316



289
0.305993
−0.267896
0.094952



290
0.775270
−0.394995
0.290748



291
0.583180
−0.252159
0.285391



292
0.192226
−0.182242
0.126859



293
0.185908
−0.245779
0.159940



294
0.346293
−0.250404
0.355682



295
0.354160
−0.364521
0.472337



296
0.134942
−0.313666
−0.115181



297
0.126077
−0.286568
−0.039927



298
0.405618
−0.211792
0.199095



299
0.312099
−0.213642
0.190972



300
−0.071392
−0.297366
0.081426



301
−0.165839
−0.301986
0.160640



302
0.147808
−0.290712
0.298198



303
0.063302
−0.310149
0.396302



304
0.141444
−0.081377
−0.076621



305
0.115936
−0.104440
−0.039885



306
0.367023
−0.087281
0.096390



307
0.330038
−0.117958
0.127050



308
0.002897
−0.062454
0.025151



309
−0.052404
−0.082200
0.041975



310
0.181553
−0.137004
0.230489



311
0.140768
−0.094604
0.265928



312
−0.101763
−0.209566
−0.135964



313
−0.159056
−0.191005
−0.095509



314
0.045016
−0.081562
0.075942



315
0.016808
−0.112482
0.068593



316
−0.408578
−0.132377
0.079163



317
−0.431534
−0.214646
0.157714



318
−0.096931
−0.101938
0.200304



319
−0.167867
−0.114851
0.262964



320
0.393882
0.086002
0.008961



321
0.338747
0.048405
−0.004187



322
0.877844
0.374373
0.171008



323
0.740790
0.324525
0.242248



324
0.200218
0.070150
0.085891



325
0.171760
0.090531
0.102579



326
0.314263
0.126417
0.322833



327
0.313523
0.065445
0.403855



328
0.164261
0.057745
−0.005490



329
0.122141
0.024122
0.009190



330
0.308248
0.078401
0.180577



331
0.251222
0.073868
0.160457



332
−0.047526
0.023725
0.086336



333
−0.091643
0.005539
0.093179



334
0.079339
0.044135
0.206697



335
0.104213
0.011277
0.240060



336
0.226607
0.186234
−0.056881



337
0.173281
0.158131
−0.059413



338
0.339400
0.214501
0.052905



339
0.309166
0.188181
0.058028



340
0.014442
0.194715
0.048945



341
−0.028793
0.194766
0.089078



342
0.069564
0.206743
0.193568



343
0.09 1532
0.202786
0.269680



344
−0.071196
0.135604
−0.103744



345
−0.118288
0.152837
−0.060151



346
0.146856
0.143174
0.061789



347
0.104379
0.143672
0.056797



348
−0.541832
0.250034
−0.017602



349
−0.641583
0.278411
−0.111909



350
−0.094447
0.159393
0.164848



351
−0.113612
0.120702
0.221656



352
0.204918
−0.078894
0.075524



353
0.161232
−0.090256
0.088701



354
0.378460
−0.033687
0.309964



355
0.311701
−0.049984
0.316881



356
0.019311
−0.050048
0.212387



357
0.002473
−0.062855
0.278462



358
0.151448
−0.090652
0.410031



359
0.162778
−0.071291
0.531252



360
−0.083704
−0.076839
−0.020798



361
−0.092832
−0.043492
0.029202



362
0.136844
−0.077791
0.186493



363
0.089536
−0.086826
0.184711



364
−0.270255
−0.058858
0.173048



365
−0.350416
−0.009219
0.273260



366
−0.105248
−0.205534
0.425159



367
−0.135030
−0.197464
0.623550



368
−0.051717
0.069756
−0.043829



369
−0.081050
0.056947
−0.000205



370
0.190388
0.016366
0.145922



371
0.142662
0.002575
0.159182



372
−0.352890
0.011117
0.091040



373
−0.367374
0.056547
0.147209



374
−0.003179
0.026570
0.282541



375
−0.069934
−0.005171
0.337678



376
−0.496181
0.026464
0.019432



377
−0.690384
0.069313
−0.004175



378
−0.146138
0.046372
0.161839



379
−0.197581
0.034093
0.241003



380
−0.989567
0.040993
0.049384



381
−1.151075
0.210556
0.237374



382
−0.335366
−0.058208
0.480168



383
−0.502419
−0.093761
0.675240



384
0.862548
0.264137
−0.294905



385
0.782668
0.251324
−0.122108



386
1.597797
0.463818
−0.133153



387
1.615756
0.060653
0.084764



388
0.435588
0.209832
0.095050



389
0.431013
0.165328
0.047909



390
1.248164
0.265923
0.488086



391
1.009933
0.345440
0.473702



392
0.477017
0.194237
−0.058012



393
0.401362
0.186915
−0.054137



394
1.202158
0.284782
−0.066531



395
1.064907
0.203766
0.046383



396
0.255848
0.133398
0.046049



397
0.218680
0.128833
0.065326



398
0.490817
0.182041
0.286583



399
0.440714
0.106576
0.301120



400
0.604263
0.522925
−0.238629



401
0.526329
0.377577
−0.198100



402
1.038632
0.606242
−0.121253



403
0.995283
0.552202
0.110700



404
0.262232
0.313664
−0.086909



405
0.230835
0.273385
−0.054268



406
0.548466
0.490721
0.278201



407
0.466984
0.355859
0.289160



408
0.367137
0.236160
−0.228114



409
0.309359
0.233843
−0.171325



410
0.465268
0.276569
0.010951



411
0.378124
0.250237
0.011131



412
0.061885
0.296810
−0.011420



413
0.000125
0.350029
−0.011277



414
0.163815
0.261191
0.175863



415
0.165132
0.308797
0.227800



416
0.461418
0.052075
−0.016543



417
0.472372
0.046962
0.045746



418
0.856406
0.136415
0.245074



419
0.834616
0.003254
0.372643



420
0.337869
0.036994
0.232513



421
0.267414
0.027593
0.252779



422
0.584983
0.113046
0.583119



423
0.475406
−0.024234
0.655070



424
0.264823
−0.029292
0.004270



425
0.246071
−0.019109
0.030048



426
0.477401
0.021039
0.155448



427
0.458453
−0.043959
0.187850



428
0.067059
−0.061227
0.126904



429
0.044608
−0.034575
0.150205



430
0.191304
−0.003810
0.316776



431
0.153078
0.029915
0.361303



432
0.320704
0.178950
−0.088835



433
0.300866
0.137645
−0.056893



434
0.553442
0.162339
0.131987



435
0.490083
0.123682
0.146163



436
0.118950
0.083109
0.034052



437
0.099344
0.066212
0.054329



438
0.228325
0.122445
0.309219



439
0.172093
0.135754
0.323361



440
0.0642 13
0.063405
−0.058243



441
0.011906
0.088795
−0.069678



442
0.194232
0.129185
0.125708



443
0.155182
0.174013
0.144099



444
−0.217068
0.112731
0.093497



445
−0.307590
0.171146
0.110735



446
−0.014897
0.138094
0.232455



447
−0.036936
0.170135
0.279166



448
0.681886
0.437121
0.078458



449
0.548559
0.376914
0.092485



450
1.259194
0.901494
0.256085



451
1.296139
0.607949
0.302184



452
0.319619
0.307231
0.099647



453
0.287232
0.359355
0.186844



454
0.751306
0.676688
0.499386



455
0.479609
0.553030
0.560447



456
0.276377
0.214032
−0.003661



457
0.238146
0.223595
0.028806



458
0.542688
0.266205
0.171393



459
0.460188
0.283979
0.158288



460
0.057385
0.309853
0.144517



461
−0.006881
0.348152
0.097310



462
0.244434
0.247298
0.322601



463
0.253992
0.335420
0.402241



464
0.354006
0.579776
−0.130176



465
0.267043
0.461976
−0.058178



466
0.534049
0.626549
0.046747



467
0.441835
0.468260
0.057556



468
0.110477
0.628795
0.102950



469
0.031409
0.489068
0.090605



470
0.229564
0.525640
0.325454



471
0.105570
0.582151
0.509738



472
0.005690
0.521474
−0.157885



473
0.104463
0.424022
−0.080647



474
0.223784
0.389860
0.060904



475
0.159806
0.340571
0.062061



476
−0.173976
0.573425
0.027383



477
−0.376008
0.587868
0.133042



478
−0.051773
0.348339
0.231923



479
−0.122571
0.473049
0.251159



480
0.324321
0.148510
0.116006



481
0.282263
0.121730
0.114016



482
0.690108
0.256346
0.418128



483
0.542523
0.294427
0.461973



484
0.056944
0.107667
0.281797



485
0.027844
0.106858
0.355071



486
0.160456
0.177656
0.528819



487
0.227537
0.177976
0.689465



488
0.111585
0.097896
0.109244



489
0.083994
0.133245
0.115789



490
0.208740
0.142084
0.208953



491
0.156072
0.143303
0.231368



492
−0.185830
0.214347
0.309774



493
−0.311053
0.240517
0.328512



494
−0.041749
0.090901
0.511373



495
−0.156164
0.098486
0.478020



496
0.151543
0.263073
−0.033471



497
0.126322
0.213004
−0.007014



498
0.245313
0.217564
0.120210



499
0.259136
0.225542
0.176601



500
−0.190632
0.260214
0.141755



501
−0.189271
0.331768
0.170606



502
0.054763
0.294766
0.357775



503
−0.033724
0.257645
0.365069



504
−0.184971
0.396532
0.057728



505
−0.293313
0.400259
0.001123



506
−0.015219
0.232287
0.177913



507
−0.022524
0.244724
0.240753



508
−0.520342
0.347950
0.249265



509
−0.671997
0.410782
0.153434



510
−0.253089
0.412356
0.489854



511
−0.410922
0.562454
0.543891

















TABLE A.2







PRBA47 Codebook











Codebook






Index
PRBA47(0)
PRBA47(1)
PRBA47(2)
PRBA47(3)














0
−0.103660
0.094597
−0.013149
0.081501


1
−0.170709
0.129958
−0.057316
0.112324


2
−0.095113
0.080892
−0.027554
0.003371


3
−0.154153
0.113437
−0.074522
0.003446


4
−0.109553
0.153519
0.006858
0.040930


5
−0.181931
0.217882
−0.019042
0.040049


6
−0.096246
0.144191
−0.024147
−0.035120


7
−0.174811
0.193357
−0.054261
−0.071700


8
−0.183241
−0.052840
0.117923
0.030960


9
−0.242634
0.009075
0.098007
0.091643


10
−0.143847
−0.028529
0.040171
−0.002812


11
−0.198809
0.006990
0.020668
0.026641


12
−0.233172
−0.028793
0.140130
−0.071927


13
−0.309313
0.056873
0.108262
−0.018930


14
−0.172782
−0.002037
0.048755
−0.087065


15
−0.242901
0.036076
0.015064
−0.064366


16
0.077107
0.172685
0.159939
0.097456


17
0.024820
0.209676
0.087347
0.105204


18
0.085113
0.151639
0.084272
0.022747


19
0.047975
0.196695
0.038770
0.029953


20
0.113925
0.236813
0.176121
0.016635


21
0.009708
0.267969
0.127660
0.015872


22
0.114044
0.202311
0.096892
−0.043071


23
0.047219
0.260395
0.050952
−0.046996


24
−0.055095
0.034041
0.200464
0.039050


25
−0.061582
0.069566
0.113048
0.027511


26
−0.025469
0.040440
0.132777
−0.039098


27
−0.031388
0.064010
0.067559
−0.017117


28
−0.074386
0.086579
0.228232
−0.055461


29
−0.107352
0.120874
0.137364
−0.030252


30
−0.036897
0.089972
0.155831
−0.128475


31
−0.059070
0.097879
0.084489
−0.075821


32
−0.050865
−0.025167
−0.086636
0.011256


33
−0.051426
0.013301
−0.144665
0.038541


34
−0.073831
−0.028917
−0.142416
−0.025268


35
−0.083910
0.015004
−0.227113
−0.002808


36
−0.030840
−0.009326
−0.070517
−0.041304


37
−0.022018
0.029381
−0.124961
−0.031624


38
−0.064222
−0.014640
−0.108798
−0.092342


39
−0.038801
0.038133
−0.188992
−0.094221


40
−0.154059
−0.183932
−0.019894
0.082105


41
−0.188022
−0.113072
−0.117380
0.090911


42
−0.243301
−0.207086
−0.053735
−0.001975


43
−0.275931
−0.121035
−0.161261
0.004231


44
−0.118142
−0.157537
−0.036594
−0.008679


45
−0.153627
−0.111372
−0.103095
−0.009460


46
−0.173458
−0.180158
−0.057130
−0.103198


47
−0.208509
−0.127679
−0.149336
−0.109289


48
0.096310
0.047927
−0.024094
−0.057018


49
0.044289
0.075486
−0.008505
−0.067635


50
0.076751
0.025560
−0.066428
−0.102991


51
0.025215
0.090417
−0.058616
−0.114284


52
0.125980
0.070078
0.016282
−0.112355


53
0.070859
0.118988
0.001180
−0.116359


54
0.097520
0.059219
−0.026821
−0.172850


55
0.048226
0.145459
−0.050093
−0.188853


56
0.007242
−0.135796
0.147832
−0.034080


57
0.012843
−0.069616
0.077139
−0.047909


58
−0.050911
−0.116323
0.082521
−0.056362


59
−0.039630
−0.055678
0.036066
−0.067992


60
0.042694
−0.091527
0.150940
−0.124225


61
0.029225
−0.039401
0.071664
−0.113665


62
−0.025085
−0.099013
0.074622
−0.138674


63
−0.031220
−0.035717
0.020870
−0.143376


64
0.040638
0.087903
−0.049500
0.094607


65
0.026860
0.125924
−0.103449
0.140882


66
0.075166
0.110186
−0.115173
0.067330


67
0.036642
0.163193
−0.188762
0.103724


68
0.028179
0.095124
−0.053258
0.028900


69
0.002307
0.148211
−0.096037
0.046189


70
0.072227
0.137595
−0.095629
0.001339


71
0.033308
0.221480
−0.152201
0.012125


72
0.003458
−0.085112
0.041850
0.113836


73
−0.040610
−0.044880
0.029732
0.177011


74
0.011404
−0.054324
−0.012426
0.077815


75
−0.042413
−0.030930
−0.034844
0.122946


76
−0.002206
−0.045698
0.050651
0.054886


77
−0.041729
−0.016110
0.048005
0.102125


78
0.013963
−0.022204
0.001613
0.028997


79
−0.030218
−0.002052
−0.004365
0.065343


80
0.299049
0.046260
0.076320
0.070784


81
0.250160
0.098440
0.012590
0.137479


82
0.254170
0.095310
0.018749
0.004288


83
0.218892
0.145554
−0.035161
0.069784


84
0.303486
0.101424
0.135996
−0.013096


85
0.262919
0.165133
0.077237
0.071721


86
0.319358
0.170283
0.054554
−0.072210


87
0.272983
0.231181
−0.014471
0.011689


88
0.134116
−0.026693
0.161400
0.110292


89
0.100379
0.026517
0.086236
0.130478


90
0.144718
−0.000895
0.093767
0.044514


91
0.114943
0.022145
0.035871
0.069193


92
0.122051
0.011043
0.192803
0.022796


93
0.079482
0.026156
0.117725
0.056565


94
0.124641
0.027387
0.122956
−0.025369


95
0.090708
0.027357
0.064450
0.013058


96
0.159781
−0.055202
−0.090597
0.151598


97
0.084577
−0.037203
−0.126698
0.119739


98
0.192484
−0.100195
−0.162066
0.104148


99
0.114579
−0.046270
−0.219547
0.100067


100
0.153083
−0.010127
−0.086266
0.068648


101
0.088202
−0.010515
−0.102196
0.046281


102
0.164494
−0.057325
−0.132860
0.024093


103
0.109419
−0.013999
−0.169596
0.020412


104
0.039180
−0.209168
−0.035872
0.087949


105
0.012790
−0.177723
−0.129986
0.073364


106
0.045261
−0.256694
−0.088186
0.004212


107
−0.005314
−0.231202
−0.191671
−0.002628


108
0.037963
−0.153227
−0.045364
0.003322


109
0.030800
−0.126452
−0.114266
−0.010414


110
0.044125
−0.184146
−0.081400
−0.077341


111
0.029204
−0.157393
−0.172017
−0.089814


112
0.393519
−0.043228
−0.111365
−0.000740


113
0.289581
0.018928
−0.123140
0.000713


114
0.311229
−0.059735
−0.198982
−0.081664


115
0.258659
0.052505
−0.211913
−0.034928


116
0.300693
0.011381
−0.083545
−0.086683


117
0.214523
0.053878
−0.101199
−0.061018


118
0.253422
0.028496
−0.156752
−0.163342


119
0.199123
0.113877
−0.166220
−0.102584


120
0.249134
−0.165135
0.028917
0.051838


121
0.156434
−0.123708
0.017053
0.043043


122
0.214763
−0.101243
−0.005581
−0.020703


123
0.140554
−0.072067
−0.015063
−0.011165


124
0.241791
−0.152048
0.106403
−0.046857


125
0.142316
−0.131899
0.054076
−0.026485


126
0.206535
−0.086116
0.046640
−0.097615


127
0.129759
−0.081874
0.004693
−0.073169









APPENDIX B
HOC Codebooks







TABLE B.1







HOC0 Codebook











Codebook






Index
HOC0(0)
HOC0(1)
HOC0(2)
HOC0(3)














0
0.264108
0.045976
−0.200999
−0.122344


1
0.479006
0.227924
−0.016114
−0.006835


2
0.077297
0.080775
−0.068936
0.041733


3
0.185486
0.231840
0.182410
0.101613


4
−0.012442
0.223718
−0.277803
−0.034370


5
−0.059507
0.139621
−0.024708
−0.104205


6
−0.248676
0.255502
−0.134894
−0.058338


7
−0.055122
0.427253
0.025059
−0.045051


8
−0.058898
−0.061945
0.028030
−0.022242


9
0.084153
0.025327
0.066780
−0.180839


10
−0.193125
−0.082632
0.140899
−0.089559


11
0.000000
0.033758
0.276623
0.002493


12
−0.396582
−0.049543
−0.118100
−0.208305


13
−0.287112
0.096620
0.049650
−0.079312


14
−0.543760
0.171107
−0.062173
−0.010483


15
−0.353572
0.227440
0.230128
−0.032089


16
0.248579
−0.279824
−0.209589
0.070903


17
0.377604
−0.119639
0.008463
−0.005589


18
0.102127
−0.093666
−0.061325
0.052082


19
0.154134
−0.105724
0.099317
0.187972


20
−0.139232
−0.091146
−0.275479
−0.038435


21
−0.144169
0.034314
−0.030840
0.022207


22
−0.143985
0.079414
−0.194701
0.175312


23
−0.195329
0.087467
0.067711
0.186783


24
−0.123515
−0.377873
−0.209929
−0.212677


25
0.068698
−0.255933
0.120463
−0.095629


26
−0.106810
−0.319964
−0.089322
0.106947


27
−0.158605
−0.309606
0.190900
0.089340


28
−0.489162
−0.432784
−0.151215
−0.005786


29
−0.370883
−0.154342
−0.022545
0.114054


30
−0.742866
−0.204364
−0.123865
−0.038888


31
−0.573077
−0.115287
0.208879
−0.027698
















TABLE B.2







HOC1 Codebook











Codebook






Index
HOC1(0)
HOC1(1)
HOC1(2)
HOC1(3)














0
−0.143886
0.235528
−0.116707
0.025541


1
−0.170182
−0.063822
−0.096934
0.109704


2
0.232915
0.269793
0.047064
−0.032761


3
0.153458
0.068130
−0.033513
0.126553


4
−0.440712
0.132952
0.081378
−0.013210


5
−0.480433
−0.249687
−0.012280
0.007112


6
−0.088001
0.167609
0.148323
−0.119892


7
−0.104628
0.102639
0.183560
0.121674


8
0.047408
−0.000908
−0.214196
−0.109372


9
0.113418
−0.240340
−0.121420
0.041117


10
0.385609
0.042913
−0.184584
−0.017851


11
0.453830
−0.180745
0.050455
0.030984


12
−0.155984
−0.144212
0.018226
−0.146356


13
−0.104028
−0.260377
0.146472
0.101389


14
0.012376
−0.000267
0.006657
−0.013941


15
0.165852
−0.103467
0.119713
−0.075455
















TABLE B.3







HOC2 Codebook











Codebook






Index
HOC2(0)
HOC2(1)
HOC2(2)
HOC2(3)














0
0.182478
0.271794
−0.057639
0.026115


1
0.110795
0.092854
0.078125
−0.082726


2
0.057964
0.000833
0.176048
0.135404


3
−0.027315
0.098668
−0.065801
0.116421


4
−0.222796
0.062967
0.201740
−0.089975


5
−0.193571
0.309225
−0.014101
−0.034574


6
−0.389053
−0.181476
0.107682
0.050169


7
−0.345604
0.064900
−0.065014
0.065642


8
0.319393
−0.055491
−0.220727
−0.067499


9
0.460572
0.084686
0.048453
−0.011050


10
0.201623
−0.068994
−0.067101
0.108320


11
0.227528
−0.173900
0.092417
−0.066515


12
−0.016927
0.047757
−0.177686
−0.102163


13
−0.052553
−0.065689
0.019328
−0.033060


14
−0.144910
−0.238617
−0.195206
−0.063917


15
−0.024159
−0.338822
0.003581
0.060995
















TABLE B.4







HOC3 Codebook











Codebook






Index
HOC3(0)
HOC3(1)
HOC3(2)
HOC3(3)














0
0.323968
0.008964
−0.063117
0.027909


1
0.010900
−0.004030
−0.125016
−0.080818


2
0.109969
0.256272
0.042470
0.000749


3
−0.135446
0.201769
−0.083426
0.093888


4
−0.441995
0.038159
0.022784
0.003943


5
−0.155951
0.032467
0.145309
−0.041725


6
−0.149182
−0.223356
−0.065793
0.075016


7
0.096949
−0.096400
0.083194
0.049306









APPENDIX C
MBE Tone Parameters














Frequency
MBE Model Parameters












Components
Tone
Fundamental
Non-zero


Tone Type
(Hz)
Index
(Hz)
Harmonics














Single Tone
156.25
5
156.25
1


Single Tone
187.5
6
187.5
1


.
.
.
.
.


.
.
.
.
.


.
.
.
.
.


Single Tone
375.0
12
375.0
1


Single Tone
406.3
13
203.13
2


.
.
.
.
.


.
.
.
.
.


.
.
.
.
.


Single Tone
781.25
25
390.63
2


Single Tone
812.50
26
270.83
3


.
.
.
.
.


.
.
.
.
.


.
.
.
.
.


Single Tone
1187.5
38
395.83
3


Single Tone
1218.75
39
304.69
4


.
.
.
.
.


.
.
.
.
.


.
.
.
.
.


Single Tone
1593.75
51
398.44
4


Single Tone
1625.0
52
325.0
5


.
.
.
.
.


.
.
.
.
.


.
.
.
.
.


Single Tone
2000.0
64
400.0
5


Single Tone
2031.25
65
338.54
6


.
.
.
.
.


.
.
.
.
.


.
.
.
.
.


Single Tone
2375.0
76
395.83
6


Single Tone
2406.25
77
343.75
7


.
.
.
.
.


.
.
.
.
.


.
.
.
.
.


Single Tone
2781.25
89
397.32
7


Single Tone
2812.5
90
351.56
8


.
.
.
.
.


.
.
.
.
.


.
.
.
.
.


Single Tone
3187.5
102
398.44
8


Single Tone
3218.75
103
357.64
9


.
.
.
.
.


.
.
.
.
.


.
.
.
.
.


Single Tone
3593.75
115
399.31
9


Single Tone
3625.0
116
362.5
10


.
.
.
.
.


.
.
.
.
.


.
.
.
.
.


Single Tone
3812.5
122
381.25
10


DTMF Tone
941, 1336
128
78.50
12, 17


DTMF Tone
697, 1209
129
173.48
4, 7


DTMF Tone
697, 1336
130
70.0
10, 19


DTMF Tone
697, 1477
131
87.0
 8, 17


DTMF Tone
770, 1209
132
109.95
 7, 11


DTMF Tone
770, 1336
133
191.68
4, 7


DTMF Tone
770, 1477
134
70.17
11, 21


DTMF Tone
852, 1209
135
71.06
12, 17


DTMF Tone
852, 1336
136
121.58
 7, 11


DTMF Tone
852, 1477
137
212.0
4, 7


DTMF Tone
697, 1633
138
116.41
 6, 14


DTMF Tone
770, 1633
139
96.15
 8, 17


DTMF Tone
852, 1633
140
71.0
12, 23


DTMF Tone
941, 1633
141
234.26
4, 7


DTMF Tone
941, 1209
142
134.38
7, 9


DTMF Tone
941, 1477
143
134.35
 7, 11


Knox Tone
820, 1162
144
68.33
12, 17


Knox Tone
606, 1052
145
150.89
 4, 7


Knox Tone
606, 1162
146
67.82
 9, 17


Knox Tone
606, 1297
147
86.50
 7, 15


Knox Tone
672, 1052
148
95.79
 7, 11


Knox Tone
672, 1162
149
166.92
4, 7


Knox Tone
672, 1297
150
67.70
10, 19


Knox Tone
743, 1052
151
74.74
10, 14


Knox Tone
743, 1162
152
105.90
 7, 11


Knox Tone
743, 1297
153
92.78
 8, 14


Knox Tone
606, 1430
154
101.55
 6, 14


Knox Tone
672, 1430
155
84.02
 8, 17


Knox Tone
743, 1430
156
67.83
11, 21


Knox Tone
820, 1430
157
102.30
 8, 14


Knox Tone
820, 1052
158
117.0
7, 9


Knox Tone
820, 1297
159
117.49
 7, 11


Call Progress
350, 440 
160
87.78
4, 5


Call Progress
440, 480 
161
70.83
6, 7


Call Progress
480, 630 
162
122.0
4, 5


Call Progress
350, 490 
163
70.0
5, 7

## Claims

1. A method of encoding a sequence of digital speech samples into a bit stream, the method comprising:
dividing the digital speech samples into one or more frames;
computing model parameters for a frame;
quantizing the model parameters to produce pitch bits conveying pitch information, voicing bits conveying voicing information, and gain bits conveying signal level information, wherein the pitch bits, the voicing bits and the gain bits are included in quantizer bits for the frame;
combining one or more of the pitch bits with one or more of the voicing bits and one or more of the gain bits to create a first parameter codeword that includes less than all of the quantizer bits for the frame;
encoding the first parameter codeword with an error control code to produce a first FEC (“forward error control”) codeword; and
including the first FEC codeword in a bit stream for the frame.

2. The method of claim 1, wherein computing the model parameters for the frame include computing a fundamental frequency parameter, one or more of voicing decisions, and a set of spectral parameters.

3. The method of claim 2, wherein computing the model parameters for a frame includes using the Multi-Band Excitation speech model.

4. The method of claim 2, wherein quantizing the model parameters comprises producing the pitch bits by applying a logarithmic function to the fundamental frequency parameter.

5. The method of claim 3, wherein quantizing the model parameters comprises producing the voicing bits by jointly quantizing voicing decisions for the frame.

6. The method of claim 5, wherein:
the voicing bits represent an index into a voicing codebook, and
the value of the voicing codebook is the same for two or more different values of the index.

7. The method of claim 1, wherein the first parameter codeword comprises twelve bits.

8. The method of claim 7, wherein the first parameter codeword is formed by combining four of the pitch bits, plus four of the voicing bits, plus four of the gain bits.

9. The method of claim 8, wherein the first parameter codeword is encoded with a Golay error control code.

10. The method of claim 8, wherein:
the spectral parameters include a set of logarithmic spectral magnitudes, and
the gain bits are produced at least in part by computing the mean of the logarithmic spectral magnitudes.

11. The method of claim 10, further comprising:
quantizing the logarithmic spectral magnitudes into spectral bits; and
combining a plurality of the spectral bits to create a second parameter codeword; and
encoding the second parameter codeword with a second error control code to produce a second FEC codeword,
wherein the second FEC codeword is also included in the bit stream for the frame.

12. The method of claim 11, wherein:
the pitch bits, voicing bits, gain bits and spectral bits are each divided into more important bits and less important bits,
the more important pitch bits, voicing bits, gain bits, and spectral bits are included in the first parameter codeword and the second parameter codeword and encoded with error control codes, and
the less important pitch bits, voicing bits, gain bits, and spectral bits are included in the bit stream for the frame without encoding with error control codes.

13. The method of claim 12, wherein:
there are 7 pitch bits divided into 4 more important pitch bits and 3 less important pitch bits,
there are 5 voicing bits divided into 4 more important voicing bits and 1 less important voicing bit, and
there are 5 gain bits divided into 4 more important gain bits and 1 less important gain bit.

14. The method of claim 13, wherein the second parameter code comprises twelve more important spectral bits which are encoded with a Golay error control code to produce the second FEC codeword.

15. The method of claim 14, further comprising:
computing a modulation key from the first parameter codeword;
generating a scrambling sequence from the modulation key;
combining the scrambling sequence with the second FEC codeword to produce a scrambled second FEC codeword; and
including the scrambled second FEC codeword in the bit stream for the frame.

16. The method of claim 8, further comprising:
detecting certain tone signals; and
if a tone signal is detected for a frame, then including tone identifier bits and tone amplitude bits in the first parameter codeword, wherein the tone identifier bits allow the bits for the frame to be identified as corresponding to a tone signal.

17. The method of claim 16, wherein:
if a tone signal is detected for a frame then additional tone index bits are included in the bit stream for the frame, and
the tone index bits determine frequency information for the tone signal.

18. The method of claim 17, wherein the tone identifier bits correspond to a disallowed set of pitch bits to permit the bits for the frame to be identified as corresponding to a tone signal.

19. The method of claim 18, wherein the first parameter codeword comprises six tone identifier bits and six tone amplitude bits if a tone signal is detected for a frame.

20. The method of claim 7, wherein the first parameter codeword is encoded with a Golay error control code.

21. The method of claim 7, further comprising:
detecting certain tone signals; and
if a tone signal is detected for a frame, then including tone identifier bits and tone amplitude bits in the first parameter codeword, wherein the tone identifier bits allow the bits for the frame to be identified as corresponding to a tone signal.

22. The method of claim 21, wherein:
if a tone signal is detected for a frame then additional tone index bits are included in the bit stream for the frame, and
the tone index bits determine frequency information for the tone signal.

23. The method of claim 22, wherein the tone identifier bits correspond to a disallowed set of pitch bits to permit the bits for the frame can be identified as corresponding to a tone signal.

24. The method of claim 23, wherein the first parameter codeword comprises six tone identifier bits and six tone amplitude bits if a tone signal is detected for a frame.

25. The method of claim 6, wherein:
the spectral parameters include a set of logarithmic spectral magnitudes, and
the gain bits are produced at least in part by computing the mean of the logarithmic spectral magnitudes.

26. The method of claim 25, further comprising:
quantizing the logarithmic spectral magnitudes into spectral bits; and
combining a plurality of the spectral bits to create a second parameter codeword; and
encoding the second parameter codeword with a second error control code to produce a second FEC codeword,
wherein the second FEC codeword is also included in the bit stream for the frame.

27. The method of claim 26, wherein:
the pitch bits, voicing bits, gain bits and spectral bits are each divided into more important bits and less important bits,
the more important pitch bits, voicing bits, gain bits, and spectral bits are included in the first parameter codeword and the second parameter codeword and encoded with error control codes, and
the less important pitch bits, voicing bits, gain bits, and spectral bits are included in the bit stream for the frame without encoding with error control codes.

28. The method of claim 27, wherein:
there are 7 pitch bits divided into 4 more important pitch bits and 3 less important pitch bits,
there are 5 voicing bits divided into 4 more important voicing bits and 1 less important voicing bit, and
there are 5 gain bits divided into 4 more important gain bits and 1 less important gain bit.

29. The method of claim 28, wherein the second parameter code comprises twelve more important spectral bits which are encoded with a Golay error control code to produce the second FEC codeword.

30. The method of claim 29, further comprising:
computing a modulation key from the first parameter codeword;
generating a scrambling sequence from the modulation key;
combining the scrambling sequence with the second FEC codeword to produce a scrambled second FEC codeword; and
including the scrambled second FEC codeword in the bit stream for the frame.

31. The method of claim 2, wherein:
the spectral parameters include a set of logarithmic spectral magnitudes, and
the gain bits are produced at least in part by computing the mean of the logarithmic spectral magnitudes.

32. The method of claim 31, further comprising:
quantizing the logarithmic spectral magnitudes into spectral bits; and
combining a plurality of the spectral bits to create a second parameter codeword; and
encoding the second parameter codeword with a second error control code to produce a second FEC codeword,
wherein the second FEC codeword is also included in the bit stream for the frame.

33. The method of claim 32, wherein:
the pitch bits, voicing bits, gain bits and spectral bits are each divided into more important bits and less important bits,
the more important pitch bits, voicing bits, gain bits, and spectral bits are included in the first parameter codeword and the second parameter codeword and encoded with error control codes, and
the less important pitch bits, voicing bits, gain bits, and spectral bits are included in the bit stream for the frame without encoding with error control codes.

34. The method of claim 33, wherein:
there are 7 pitch bits divided into 4 more important pitch bits and 3 less important pitch bits,
there are 5 voicing bits divided into 4 more important voicing bits and 1 less important voicing bit, and
there are 5 gain bits divided into 4 more important gain bits and 1 less important gain bit.

35. The method of claim 34, wherein the second parameter code comprises twelve more important spectral bits which are encoded with a Golay error control code to produce the second FEC codeword.

36. The method of claim 35, further comprising:
computing a modulation key from the first parameter codeword;
generating a scrambling sequence from the modulation key;
combining the scrambling sequence with the second FEC codeword to produce a scrambled second FEC codeword; and
including the scrambled second FEC codeword in the bit stream for the frame.

37. The method of claim 1, wherein the first parameter codeword is encoded with a Golay error control code.

38. The method of claim 1, further comprising:
detecting certain tone signals; and
if a tone signal is detected for a frame, then including tone identifier bits and tone amplitude bits in the first parameter codeword, wherein the tone identifier bits allow the bits for the frame to be identified as corresponding to a tone signal.

39. The method of claim 38, wherein:
if a tone signal is detected for a frame then additional tone index bits are included in the bit stream for the frame, and
the tone index bits determine frequency information for the tone signal.

40. The method of claim 39, wherein the tone identifier bits correspond to a disallowed set of pitch bits to permit the bits for the frame can be identified as corresponding to a tone signal.

41. The method of claim 40, wherein the first parameter codeword comprises six tone identifier bits and six tone amplitude bits if a tone signal is detected for a frame.

42. A method for decoding digital speech samples from a bit stream, the method comprising:
dividing the bit stream into one or more frames of bits;
extracting a first FEC (“forward error control”) codeword from a frame of bits;
error control decoding the first FEC codeword to produce a first parameter codeword;
extracting pitch bits, voicing bits and gain bits from the first parameter codeword, the extracted pitch bits, voicing bits and gain bits including less than all of a set of quantizer bits for the frame;
using the extracted pitch bits to at least in part reconstruct pitch information for the frame;
using the extracted voicing bits to at least in part reconstruct voicing information for the frame;
using the extracted gain bits to at least in part reconstruct signal level information for the frame; and
using the reconstructed pitch information, voicing information and signal level information for one or more frames to compute digital speech samples.

43. The method of claim 42, wherein the pitch information for a frame includes a fundamental frequency parameter, and the voicing information for a frame includes one or more voicing decisions.

44. The method of claim 43, wherein the voicing decisions for the frame are reconstructed by using the voicing bits as an index into a voicing codebook.

45. The method of claim 44, wherein the value of the voicing codebook is the same for two or more different indices.

46. The method of claim 44, further comprising reconstructing spectral information for a frame.

47. The method of claim 46, wherein:
the spectral information for a frame comprises at least in part a set of logarithmic spectral magnitude parameters, and
the signal level information is used to determine the mean value of the logarithmic spectral magnitude parameters.

48. The method of claim 47, wherein:
the first FEC codeword is decoded with a Golay decoder, and
four pitch bits, plus four voicing bits, plus four gain bits are extracted from the first parameter codeword.

49. The method of claim 47, further comprising:
generating a modulation key from the first parameter codeword;
computing a scrambling sequence from the modulation key;
extracting a second FEC codeword from the frame of bits;
applying the scrambling sequence to the second FEC codeword to produce a descrambled second FEC codeword;
error control decoding the descrambled second FEC codeword to produce a second parameter codeword;
computing an error metric from the error control decoding of the first FEC codeword and from the error control decoding of the descrambled second FEC codeword; and
applying frame error processing if the error metric exceeds a threshold value.

50. The method of claim 49, wherein the frame error processing includes repeating the reconstructed model parameter from a previous frame for the current frame.

51. The method of claim 50, wherein the error metric uses the sum of the number of errors corrected by error control decoding the first FEC codeword and by error control decoding the descrambled second FEC codeword.

52. The method of claim 50, wherein the spectral information for a frame is reconstructed at least in part from the second parameter codeword.

53. The method of claim 43, further comprising reconstructing spectral information for a frame.

54. The method of claim 53, wherein:
the spectral information for a frame comprises at least in part a set of logarithmic spectral magnitude parameters, and
the signal level information is used to determine the mean value of the logarithmic spectral magnitude parameters.

55. The method of claim 54, wherein:
the first FEC codeword is decoded with a Golay decoder, and
four pitch bits, plus four voicing bits, plus four gain bits are extracted from the first parameter codeword.

56. The method of claim 54, further comprising:
generating a modulation key from the first parameter codeword;
computing a scrambling sequence from the modulation key;
extracting a second FEC codeword from the frame of bits;
applying the scrambling sequence to the second FEC codeword to produce a descrambled second FEC codeword;
error control decoding the descrambled second FEC codeword to produce a second parameter codeword;
computing an error metric from the error control decoding of the first FEC codeword and from the error control decoding of the descrambled second FEC codeword; and
applying frame error processing if the error metric exceeds a threshold value.

57. The method of claim 56, wherein the frame error processing includes repeating the reconstructed model parameter from a previous frame for the current frame.

58. The method of claim 57, wherein the error metric uses the sum of the number of errors corrected by error control decoding the first FEC codeword and by error control decoding the descrambled second FEC codeword.

59. The method of claim 57, wherein the spectral information for a frame is reconstructed at least in part from the second parameter codeword.

60. A method for decoding digital signal samples from a bit stream, the method comprising:
dividing the bit stream into one or more frames of bits;
extracting a first FEC (“forward error control”) codeword from a frame of bits;
error control decoding the first FEC codeword to produce a first parameter codeword;
using the first parameter codeword to determine whether the frame of bits corresponds to a tone signal;
extracting tone amplitude bits from the first parameter codeword if the frame of bits is determined to correspond to a tone signal, otherwise extracting pitch bits, voicing bits, and gain bits from the first codeword if the frame of bits is determined to not correspond to a tone signal, the extracted pitch bits, voicing bits and gain bits including less than all of a set of quantizer bits for the frame; and
using either the tone amplitude bits or the pitch bits, voicing bits and gain bits to compute digital signal samples.

61. The method of claim 60, further comprising:
generating a modulation key from the first parameter codeword;
computing a scrambling sequence from the modulation key;
extracting a second FEC codeword from the frame of bits;
applying the scrambling sequence to the second FEC codeword to produce a descrambled second FEC codeword;
error control decoding the descrambled second FEC codeword to produce a second parameter codeword; and
computing digital signal samples using the second parameter codeword.

62. The method of claim 61, further comprising:
summing the number of errors corrected by the error control decoding of the first FEC codeword and by the error control decoding of the descrambled second FEC codeword to compute an error metric; and
applying frame error processing if the error metric exceeds a threshold, wherein the frame error processing includes repeating the reconstructed model parameter from a previous frame.

63. The method of claim 61, wherein additional spectral bits are extracted from the second parameter codeword and used to reconstruct the digital signal samples.

64. The method of claim 63, wherein the spectral bits include tone index bits if the frame of bits is determined to correspond to a tone signal.

65. The method of claim 64, wherein the frame of bits is determined to correspond to a tone signal if some of the bits in the first parameter codeword equal a known tone identifier value which corresponds to a disallowed value of the pitch bits.

66. The method of claim 64, wherein the tone index bits are used to identify whether the frame of bits corresponds to a signal frequency tone, a DTMF tone, a Knox tone or a call progress tone.

67. The method of claim 64, wherein:
the spectral bits are used to reconstruct a set of logarithmic spectral magnitude parameters for the frame, and
the gain bits are used to determine the mean value of the logarithmic spectral magnitude parameters.

68. The method of claim 67, wherein the voicing bits are used as an index into a voicing codebook to reconstruct voicing decisions for the frame.

69. The method of claim 67, wherein:
the first FEC codeword is decoded with a Golay decoder, and
four pitch bits, plus four voicing bits, plus four gain bits are extracted from the first parameter codeword.

70. The method of claim 63, wherein the voicing bits are used as an index into a voicing codebook to reconstruct voicing decisions for the frame.

71. The method of claim 60, wherein the voicing bits are used as an index into a voicing codebook to reconstruct voicing decisions for the frame.

72. A method for decoding a frame of bits into speech samples, the method comprising:
determining the number of bits in the frame of bits;
extracting spectral bits from the frame of bits;
using one or more of the spectral bits to form a spectral codebook index, wherein the index is determined at least in part by the number of bits in the frame of bits;
reconstructing spectral information using the spectral codebook index; and
computing speech samples using the reconstructed spectral information.

73. The method of claim 72, wherein pitch bits, voicing bits and gain bits are also extracted from the frame of bits.

74. The method of claim 73, wherein the voicing bits are used as an index into a voicing codebook to reconstruct voicing information which is also used to compute the speech samples.

75. The method of claim 74, wherein the frame of bits is determined to correspond to a tone signal if some of the pitch bits and some of the voicing bits equal a known tone identifier value.

76. The method of claim 75, wherein:
the spectral information includes a set of logarithmic spectral magnitude parameters, and
the gain bits are used to determine the mean value of the logarithmic spectral magnitude parameters.

77. The method of claim 76, wherein the logarithmic spectral magnitude parameters for a frame are reconstructed using the extracted spectral bits for the frame combined with the reconstructed logarithmic spectral magnitude parameters from a previous frame.

78. The method of claim 76, wherein the mean value of the logarithmic spectral magnitude parameters for a frame is determined from the extracted gain bits for the frame and from the mean value of the logarithmic spectral magnitude parameters of a previous frame.

79. The method of claim 76, wherein the frame of bits includes 7 pitch bits representing the fundamental frequency, 5 voicing bits representing voicing decisions, and 5 gain bits representing the signal level.

80. The method of claim 74, wherein:
the spectral information includes a set of logarithmic spectral magnitude parameters, and
the gain bits are used to determine the mean value of the logarithmic spectral magnitude parameters.

81. The method of claim 80, wherein the logarithmic spectral magnitude parameters for a frame are reconstructed using the extracted spectral bits for the frame combined with the reconstructed logarithmic spectral magnitude parameters from a previous frame.

82. The method of claim 80, wherein the mean value of the logarithmic spectral magnitude parameters for a frame is determined from the extracted gain bits for the frame and from the mean value of the logarithmic spectral magnitude parameters of a previous frame.

83. The method of claim 80, wherein the frame of bits includes 7 pitch bits representing the fundamental frequency, 5 voicing bits representing voicing decisions, and 5 gain bits representing the signal level.

84. The method of claim 73, wherein:
the spectral information includes a set of logarithmic spectral magnitude parameters, and
the gain bits are used to determine the mean value of the logarithmic spectral magnitude parameters.

85. The method of claim 84, wherein the logarithmic spectral magnitude parameters for a frame are reconstructed using the extracted spectral bits for the frame combined with the reconstructed logarithmic spectral magnitude parameters from a previous frame.

86. The method of claim 84, wherein the mean value of the logarithmic spectral magnitude parameters for a frame is determined from the extracted gain bits for the frame and from the mean value of the logarithmic spectral magnitude parameters of a previous frame.

87. The method of claim 84 wherein the frame of bits includes 7 pitch bits representing the fundamental frequency, 5 voicing bits representing voicing decisions, and 5 gain bits representing the signal level.