Method and apparatus for converting a digital speech signal into linear prediction coding parameters and control code signals and retrieving the digital speech signal therefrom

Analog speech signals are coded as digital signals before transmission over a transmission medium and then are decoded at their destination. The coder is of the linear predictive type (LPC) and includes an LPC analyzer for adjusting an analysis filter, which receives the digital signal and generates a residual signal representative of error content. The parameters by which the filter is adjusted by the analyzer and the residual signal together represent the digital signal. The residual signal is split into segments and, per segment, several first pulse train signals are generated, each having a different starting time position within the segment. The first pulse train signal which is most closely related to the residual signal is selected and compared to second pulse train signals stored in a codebook. A location in the codebook belonging to a second pulse train signal that exhibits the greatest degree of correspondence to the selected first pulse train signal and the starting position of the selected first pulse train signal, together, represent the residual signal and are transmitted into and through the transmission medium in addition to the LPC parameters. At the receiving location a synthesizer filter is controlled by a modified output of a duplicate codebook.

BACKGROUND OF THE INVENTION 
The invention relates to a method for coding an analog signal occurring 
with a certain time interval, said analog signal being converted into 
control codes which can be used for assembling a synthetic signal 
corresponding to said analog signal. The invention also relates to an 
apparatus for carrying out such a method. In particular, the invention 
relates to a method and apparatus for coding speech signals as digital 
signals having a low bit frequency. 
Such a method or apparatus is disclosed by EP-307,122. According to the 
known method, an analog (speech) signal (after linear predictive coding 
(LPC)) is successively converted into a pulse signal composed of pulses at 
equal (time) spacing from one another, the amplitude of said pulses 
corresponding to the respective instantaneous amplitudes of the analog 
signal. A series of p second pulse signals is then generated, all of which 
are composed of only one pulse, of which, however, the position (in the 
time domain) of said pulse successively increases with respect to the 
start of the second pulse signal according to the series based on n times 
the time spacing of the first pulse signal, where n=0 . . . p. Of said 
second pulse signals, that pulse signal is then selected which 
approximates best to the first pulse signal. The first pulse signal is 
then compared with a set of various third pulse signals, all composed of a 
number of pulses at mutually different spacings and having mutually 
different amplitudes, but all of which belong to one and the same class 
and of which the position of the most significant pulse corresponds to the 
position of the selected second pulse signal. From this set, that third 
pulse signal is then selected which corresponds most to the first pulse 
signal. According to the known method, the set of third pulse signals 
forms part of a group of such sets, each set having its own class as 
regards the position of the most significant pulse. By selecting the best 
second (one-) pulse signal, that set (=class) is therefore indicated which 
has to be searched for correspondence to the first pulse signal. After 
selecting the most corresponding third pulse signal, the characteristics 
of said third pulse signal are used as a control code for assembling a 
synthetic signal corresponding to said analog signal. In the proposed 
manner, only a limited set of third pulse signals has to be searched for 
correspondence, instead of all the third pulse signals of all the sets; in 
other words, only a part (characterized by the relevant class) of a large 
set has to be searched instead of said set in its entirety. 
A drawback of the known method is that it does not fit in with the present 
GSM (Grouppe Speciale Mobile) practice. 
SUMMARY OF THE INVENTION 
The object of the invention is to provide an alternative to the known 
method or apparatus which is in fact compatible with the GSM system. 
The invention therefore provides a method for coding an analog signal 
occurring within a certain time interval, said analog signal being 
converted into control codes which can be used for assembling a synthetic 
signal corresponding to said analog signal, which method is characterized 
in that the analog signal is converted into a first pulse signal composed 
of pulses at a mutually equal time interval, the pulse amplitude of said 
pulses corresponding to that of the analog signal at that instant; 
in that the first pulse signal is converted into a series of p second pulse 
signals which are each likewise composed of a fixed number of pulses at a 
mutually equal time spacing which is, however, a multiple of that of the 
first pulse signal, while the pulse amplitude likewise corresponds to that 
of the analog signal at that instant, in which connection, of the 
successive second pulse signals of said series, the position of the first 
pulse of the respective second pulse signal, viewed in the time domain, is 
shifted in time with respect to the start thereof over a spacing equal to 
a multiple n of the said time spacing of the first pulse signal, n 
successively increasing from 0 to p; 
in that that second pulse signal whose correspondence to the first pulse 
signal is the greatest is selected from the various second pulse signals 
and in that a first control code for assembling the synthetic signal 
corresponding to the analog signal is generated in accordance with the 
time spacing between the start and the first pulse of said selected second 
pulse signal; 
in that the said first pulse signal is compared with a set of various third 
pulse signals which are each composed of pulses at a mutually equal time 
spacing equal to that of the second pulse signals, which pulses have 
various pulse amplitudes and in which connection, of all said third pulse 
signals, the position of the first pulse of the respective third pulse 
signal, viewed in the time domain, is shifted in time with respect to the 
start thereof over a spacing which is equal to that of the selected second 
pulse signal; 
in that that third pulse signal whose correspondence to the first pulse 
signal is the greatest is selected from the said set and in that a second 
control code for assembling the synthetic signal corresponding to the 
analog signal is generated in accordance with the order number of said 
selected third pulse signal. 
Instead of the first pulse signal being compared with the various third 
pulse signals of the said set (after which that third pulse signal whose 
correspondence to said first pulse signal is the greatest is selected from 
said set) it is also possible (and preferable), for the (previously) 
selected second pulse signal to be compared with the various third pulse 
signals, after which that third pulse signal whose correspondence to the 
selected second pulse signal is the greatest, is selected. 
In relation to the above measures, it is pointed out that converting the 
first pulse signal into a series of second pulse signals of the specified 
type is disclosed per se in EP-195,487. According to the method and 
apparatus described therein, however, no use is made of a set of third 
pulse signals of the specified type with which the first pulse signal or 
the previously selected second pulse signal is compared and from which a 
corresponding third pulse signal is selected, as is in fact the case 
according to the invention. 
A further development of the invention may provide 
that the said set of third signals forms part of a group of such sets, each 
of said sets, like the set already mentioned, comprising mutually 
different pulse signals which are composed of pulses at a mutually equal 
time spacing which is equal to that of the said second pulse signals and 
having different pulse amplitudes, for each set the position of the first 
pulse of all those pulse signals, viewed in time, being identical with 
respect to the start thereof; 
that, after the previously mentioned selection of the second pulse signal 
which corresponds most to the first pulse signal, that set whose position 
of the first pulse of the pulse signals with respect to the start thereof, 
viewed in time, is identical to that of the selected second pulse signal 
is selected from the said group of sets. In other words, the said set of 
third pulse signals is in fact a part of a greater set, but only that part 
(the most relevant) is searched for correspondence to the first pulse 
signal or the previously selected second pulse signal. 
Preferably, however, a further development of the invention provides 
that the said set of third pulse signals is a virtual set which is 
generated from a basic set of mutually different fourth pulse signals, 
each being composed of pulses at a mutually equal time spacing equal to 
that of the second pulse signals, which pulses have various pulse 
amplitudes and in which connection, of all said fourth pulse signals, the 
position of the first pulse, viewed in the time domain, is identical with 
respect to the position of the start of said fourth pulse signal; 
that after the previously mentioned selection of the second pulse signal 
which corresponds most to the first pulse signal, the said virtual set of 
third pulse signals is generated by shifting each of the said fourth pulse 
signals in time over a spacing which is equal to the difference between, 
on the one hand, the spacing between the start and the first pulse of the 
selected second pulse signal and, on the other hand, the spacing between 
the start and the first pulse of each of the fourth pulse signals. 
According to this further development, only a (limited) basic set of 
(fourth) pulse signals is therefore provided from which (by shifting the 
pulse signals) the required "search" set is derived. 
In particular, the above is provided in 
that the said set of third pulse signals is a virtual set which is 
generated from a basic set of mutually different fourth pulse signals, 
each being composed of pulses at a mutually equal time spacing equal to 
that of the second pulse signals, which pulses have various pulse 
amplitudes and in which connection, of all said fourth pulse signals, the 
position of the first pulse, viewed in the time domain, corresponds to the 
position of the start of said fourth pulse signal; 
that, after the previously mentioned selection of the second pulse signal 
which corresponds most to the first pulse signal, the said virtual set of 
third pulse signals is generated by shifting each of the said fourth pulse 
signals in time over a spacing which is equal to the spacing between the 
start and the first pulse of the selected second pulse signal. The 
shifting of the fourth pulse signals is in this case therefore equal to 
the time difference between the start and the first pulse of the 
previously selected second pulse signal. 
The method according to the invention is moreover preferably characterized 
in that, in the said comparison of the first pulse signal or the selected 
second pulse signal with the various third pulse signals from the said set 
and the selection of the required third pulse signal as mentioned, a 
scaling factor is derived from the respective amplitudes of the pulse 
signals compared with one another and in that a third control code is 
generated for assembling the synthetic signal corresponding to the analog 
signal in accordance with that scaling factor which is associated with the 
selected third pulse signal. 
An apparatus for carrying out the first mentioned method according to the 
invention is characterized by 
a first conversion device for converting the said analog signal into the 
said first pulse signal; 
a second conversion device for converting the first pulse signal into the 
said series of p second pulse signals of which the time spacing between 
the start of the pulse signal and the first pulse is successively 0 to p 
times the mutual pulse spacing of the first pulse signal, 
first selection device for selecting the second pulse signal which exhibits 
the most correspondence to the first pulse signal and for delivering a 
first control code for assembling the synthetic signal corresponding to 
the analog signal in accordance with the time spacing between the start 
and the first pulse of the selected second pulse signal, 
a second selection device for selecting, from the said set of third pulse 
signals, that third pulse signal which exhibits the most correspondence to 
the first pulse signal and for delivering a second control code for 
assembling the synthetic signal corresponding to the analog signal in 
accordance with the order number of said selected third pulse signal. 
If in selecting the required third pulse signal the various third pulse 
signals are compared not with the first pulse signal but with the 
previously selected second pulse signal and examined for correspondence, 
an apparatus for carrying out the method is characterized by 
a first conversion device for converting the said analog signal into the 
said first pulse signal; 
a second conversion device for converting the first pulse signal into the 
said series of p second pulse signals of which the time spacing between 
the start of the pulse signal and the first pulse is successively 0 to p 
times the mutual pulse spacing of the first pulse signal, 
a first selection device for selecting the second pulse signal which 
exhibits most correspondence to the first pulse signal and for delivering 
a first control code for assembling the synthetic signal corresponding to 
the analog signal in accordance with the time spacing between the start 
and the first pulse of the selected second pulse signal, 
a second selection device for selecting, from the said set of third pulse 
signals, that third pulse signal which exhibits the most correspondence to 
the selected second pulse signal and for delivering a second control code 
for assembling the synthetic signal corresponding to the analog signal in 
accordance with the order number of said selected third pulse signal. The 
apparatus in the exemplary embodiment to be dealt with below is equipped 
in this way. 
If the "search" set forms part of a group of sets from which (according to 
an option specified above) a choice has to be made, the apparatus is 
preferably characterized by a third selection device for selecting, from 
the said group of pulse signal sets, that set of which the time spacing 
between the start of the pulse signal and the first pulse of all third 
pulse signals associated with said set is equal to that of the second 
pulse signal selected by the first selection device. 
If (according to a second option) the "search" set is a virtual set which 
is generated from a basic set by shifting the pulse signals from said 
basic set, the apparatus is characterized by a generator for generating 
the said virtual set of third pulse signals from a basic set of fourth 
pulse signals of the said type. The apparatus in the exemplary embodiment 
to be dealt with below is equipped in this way, i.e. it is provided with a 
generator which, from a basic set of (fourth) pulse signals of which the 
position of the first pulse coincides with the signal start, generates, by 
signal displacement, a virtual "search" set composed of (third) pulse 
signals of which the spacing between the start and the first pulse is 
equal to that of the selected second pulse signal. 
An apparatus for carrying out the method according to the invention is 
preferably characterized by a scaling device for deriving, from the 
amplitude of the first pulse signal or the second pulse signal selected by 
the first selection device and the respective amplitudes of the various 
third pulse signals, respective scaling factors and for delivering a third 
control code for assembling the synthetic signal corresponding to the 
analog signal in accordance with that scaling factor which corresponds to 
the selected third pulse signal. 
In particular, an apparatus as specified above is suitable for 
incorporation in an apparatus for converting analog speech signals into 
digital signals with a low bit frequency and vice versa, a so-called 
speech coder/decoder. 
In accordance with the methods for coding an analog signal as disclosed 
above, the invention also includes a method of synthesizing a signal under 
the control of the said first, second and third control code, 
characterized in that the synthesized signal is formed by one from a 
series of fourth pulse signals, being equal to said series of second pulse 
signals, that fourth pulse signal being selected under the control of said 
first control signal, which selected fourth pulse signal is combined with 
one from a set of fifth pulse signals, being equal to said set of third 
pulse signals, that fifth pulse signal being selected under the control of 
said second control signal, which selected and combined fourth and fifth 
pulse signal are scaled up under the control of said third control signal. 
In accordance with the apparatuses for coding an analog signal as disclosed 
above, the invention also includes an apparatus for synthesizing a signal 
under the control of the first, second and third control code, 
characterized by 
a third selecting device for selecting from a series of fourth pulse 
signals, being equal to said series of second pulse signals, one of those 
fourth pulse signals under the control of said first control signal 
a fourth selecting device for selecting from a set of fifth pulse signals, 
being equal to said set of third pulse signals, one of those fifth pulse 
signals under the control of said second control signal, and for combining 
those selected fourth and fifth pulse signal 
a second scaling device for scaling up those selected and combined fourth 
and fifth pulse signal under the control of said third control signal. 
PUBLICATIONS INCORPORATED BY REFERENCE 
EP-307,122 (BRITISH TELECOM) 
EP-195,487 (PHILIPS)

DESCRIPTION OF THE PREFERRED EMBODIMENT 
FIGS. 1, 2 and 3 show a functional block diagram for the application of the 
system described, having a transmitter 19 and a receiver 29 for 
transmitting a digital speech signal over a channel 30 whose transmission 
capacity is much lower than the value of 64 kbit/s of a standard PCM 
channel for telephony. Said digital speech signal represents an analog 
speech signal originating from a source 1 having a microphone or other 
electroacoustical transducer and limited to a speech band ranging from 0 
to 4 kHz with the aid of a low pass filter 2. Said analog speech signal is 
sampled with a sampling frequency of 8 kHz and converted into a digital 
code suitable for use in the transmitter 19 with the aid of an 
analog/digital converter 3 which also subdivides said digital speech 
signals into segments of 20 ms (160 samples) which are replaced every 20 
ms. In transmitter 19, said digital speech signal is processed to form a 
code signal having a bit frequency in the region around 6 kbit/s which is 
transmitted via channel 30 to receiver 29 and is processed therein to form 
a digital synthetic speech signal which, by means of a digital-analog 
converter 24, is converted into an analog speech signal which after being 
limited in a low pass filter 25 is fed to a reproduction circuit 26 having 
a loudspeaker or another electroacoustical transducer. Transmitter 19 
(FIGS. 1 and 2) contains the Restricted Search Code Excited Linear 
Predictive coder (RSCELP coder) 17 which makes use of linear predictive 
coding (LPC) as a method of spectral analysis. Since RSCELP coder 17 
processes a digital speech signal which is representative of the samples 
s(kT) of an analog speech signal s(t) at instants in time t=kT, where k is 
an integer and 1/T=8 kHz, said digital speech signal is denoted by the 
standard notation of the type s(k). The analog/digital converter 3 
subdivides said signal s(k) into segments of 20 ms. Within the qth 
segment, the signal is denoted by s(n), where n=1 . . . 160. A notation of 
this type is likewise used for all the other signals in the RSCELP coder 
17. In the RSCELP coder 17, the segments of the digital speech signal s(n) 
are fed to the first conversion device 7 composed of an LPC analyser 5, an 
analysis assisting inverse filter 4 and a weighting filter 6. The speech 
signal s(n) is fed to the LPC analyser 5 in which the linear predictive 
coder LPC parameters of a 20 ms speech segment are calculated every 20 ms 
in a known manner, for example on the basis of the autocorrelation method 
or the covariance method of linear prediction (cf. L. R. Rabiner and R. W. 
Schafer, "Digital Processing of Speech Signals", Prentice-Hall, Englewood 
Cliffs, 1978, chapter 8, pages 396-421). The digital speech signal s(n) is 
also fed to an adjustable analysing filter 4 having a transfer function 
A(z) which is given in z-transform notation by: 
##EQU1## 
in which the coefficients a(i), where 1=&lt;i=&lt;p, are the LPC parameters 
calculated in the LPC analyser 5, the LPC order p normally having a value 
between 8 and 16. The LPC parameter a(i) is determined in a manner such 
that, at the output of filter 4, a prediction residual signal rp(n) 
appears having as flat as possible a segment period (20 ms) of the 
spectral envelope. Filter 4 is therefore known as an inverse filter or a 
compensating filter. The LPC parameters are transmitted via channel 30 to 
the receiver 29. Furthermore, the prediction residual signal rp(n) is 
filtered by the weighting filter 6. The object of said weighting filter is 
to perceptually weight the prediction residual signal rp(n). Backgrounds 
and examples are given in EP-195,487. This results in the weighted 
prediction residual signal rpw(n) denoted above as first pulse signal. The 
weighted prediction residual signal rpw(n) is fed to the second conversion 
device 8. Said device 8 splits up the weighted prediction residual signal 
rpw(n) into four adjoining subsegment signals ss(i,m) for which it holds 
true that: 
ss(i,m)=rpw(m+i*160/4), where i denotes the subsegment number, i=0 . . . 3 
and m=1 . . . 40. Each subsegment signal therefore has a duration of 20 
ms/4=5 ms. Furthermore, said device 8 splits up each subsegment signal 
ss(i,m) into 4 subpulse signals dp(j,i,r) (denoted above as second pulse 
signals) for which it holds true that: 
dp(j,i,m)=ss(i,m) for m=j,j+4,j+8,j+12 . . . j+36 and dp(j,i,m)=0 for all 
other possible values of m, where j denotes the subsignal number j, j=1 . 
. . 4 and m=1 . . . 40. 
All the subsequent components of the transmitter 19 work on a subsegment (5 
ms) basis so that the subpulse signal dp(j,i,m) can be abbreviated to 
dp(j,m). The first selector 9 selects 1 of the 4 subpulse signals dp(j,m) 
on the basis of the segmental energy. The following applies for the 
segmental energy Eseg(j) of the subpulse signal dp(j,m): 
##EQU2## 
In this connection, the selected subpulse signal dps(m) is set equal to 
dp(j,m) and the selection value J (denoted above as first control code) is 
set equal to j for that value of j for which it holds true that the 
segmental energy Eseg(j) is greatest. Said method is also described in the 
CEPT/CCH/GSM recommendation 06.10. The selection value J is transmitted 
via channel 30 to the receiver 29. The transmitter 19 has a codebook 13. 
Said codebook 13 is made up of 256 codebook rows. Each codebook row is 
filled with 10 arbitrary numbers, of which the probability distribution of 
the values of the numbers is distributed in a Gaussian manner. The second 
selector 10 selects sequential codebook row 1 to row 256 inclusive from 
the codebook 13. Every time a codebook row is selected from the codebook 
13, this row of 10 numbers will be delivered to the excitation generator 
14. The excitation generator 14 generates 10 pulses p(r), where r=1 . . . 
10 and where the amplitudes of the 10 pulses assume the value of the row 
of 10 numbers just received from the codebook 13. On the basis of the 
selection value J originating from the first selector 9, pulses having 
amplitude zero (i.e. pulse intervals each of amplitude zero) are added to 
the 10 pulses p(r). For the new excitation generator pulse series eg(m) 
(denoted above as set of third pulse signals) it holds true that: 
eg(J+(r-1)*4)=p(r), where r=1 . . . 10, J=1 or 2 or 3 or 4 and eg(m)=0 for 
all other cases, where m=1 . . . 40. 
The amplifier 12 has an initial gain factor of V=1. The excitation 
generator signal eg(m) is presented together with the selected subpulse 
signal dps(m) to the scaling device 11 via the amplifier 12. The scaling 
device 11 now adjusts the gain factor V of the amplifier 12 in a manner 
such that the degree of error fm is a minimum, it holding true for fm 
that: 
##EQU3## 
The minimum degree of error is denoted by fmmin. The gain factor occurring 
at the same time is denoted by the optimum gain factor Vopt (denoted above 
as the scaling factor (=third control code), so that it holds true for the 
minimum degree of error fmmin that: 
##EQU4## 
The values of the minimum degree of error fmmin are transmitted to the 
second selector 10. The above process is carried out for every codebook 
row (r=1 . . . 256), with the result that 256 minimum degrees of error 
fmmin(R) are calculated. From these 256 minimum degrees of error fmmin(R), 
the smallest value is sought. The associated value of the codebook row R, 
denoted by selected codbook row Rs (denoted above as second control code), 
and the optimum gain factor Vopt are transmitted to the receiver via 
channel 30. These values are transmitted for every 5 ms subsegment. This 
method attempts to make the amplified excitation generator signal 
Vopt*eg(m) match the subpulse signal dps(m) as well as possible. 
The receiver 29 (FIGS. 1 and 3) contains a Restricted Search Code Excited 
Linear Predictive decoder (RSCELP decoder) 27. The receiver 29 comprises, 
inter alia, a codebook 20, excitation generator 21 and amplifier 22 which 
are exactly identical to codebook 13, excitation generator 12 and 
amplifier 11 of the transmitter 19. With the aid of the values, received 
by the receiver 29, of the selected codebook row Rs, the optimum gain 
factor Vopt and selection value J, the value, which may be called a 
further residual signal calculated in the transmitter 19, for the 
amplified excitation generator signal Vopt*eg(m) can be calculated in the 
receiver 29 with the aid of the codebook 20 and excitation generator 21 
and amplifier 22. This further residual signal may also be referred to as 
a deconversion output pulse signal po(m). The deconversion output pulse 
signal po(m) therefore matches the selected subpulse signal dps(m) in the 
transmitter 19 as well as possible. The deconversion output pulse signal 
po(m) is presented to the LPC synthesizing filter 23. The LPC synthesizing 
filter 23 is the inverse filter of the LPC analysing filter 4 in the 
transmitter 19. The transfer function, noted in the z-transform notation, 
of the LPC synthesizing filter 23 is therefore equal to: 
A(z).sup.-1. 
The synthesizing filter 23 is adjusted for each segment (20 ms) with the 
aid of the LPC parameter received. The receiver pulse signal po(m) is 
calculated every 5 ms, with the result that after every fourth receiver 
pulse signal po(m) which is presented to the synthesizing filter 23, the 
LPC filter parameters are readjusted. The synthesizing filter output 
signal is converted, by means of a digital/analog converter 24 and a low 
pass filter 25 into an analog speech signal which can be made audible by 
means of an electroacoustic transducer. 
To transmit the diverse signals between transmitter 19 and receiver 29 via 
channel 30 in this exemplary embodiment, 5300 bits per second are 
necessary. This can be calculated as follows: 
The following are transmitted every 5 ms: 
______________________________________ 
optimum gain factor Vopt, requirement 
6 bits 
selected codebook row Rs, requirement 
8 bits 
selection value J, requirement 
2 bits 
Total requirement every 5 ms 
16 bits 
(=3200 bits/s) 
______________________________________ 
The following is transmitted every 20 ms: 
______________________________________ 
LPC parameters, requirement 
42 bits 
(=2100 bits/s) 
______________________________________ 
3200+2100=5300 bits are therefore transmitted every second.