Patent Publication Number: US-5299281-A

Title: 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

Description:
This application is a continuation of application Ser. No. 07/580,866, filed Sep. 11, 1990 now abandoned. 
    
    
     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 &#34;search&#34; 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 &#34;search&#34; 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 &#34;search&#34; 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 &#34;search&#34; 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) 
    
    
     BRIEF DESCRIPTION OF THE DRAWINGS 
     FIG. 1 is a functional-block diagram of a transmission system containing a channel which links a coder and transmitter to a receiver and decoder, in which the method of the invention may be put into practice; 
     FIG. 2 is a block circuit diagram of the coder of the system shown in FIG. 1, and 
     FIG. 3 is a block circuit diagram of the decoder of FIG. 1. 
    
    
     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, &#34;Digital Processing of Speech Signals&#34;, 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) -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.