Method and device for converting an analog input signal into control codes and for synthesizing a corresponding output signal under the control of those control codes

Abstract: The invention relates to a method and apparatus for coding speech signals as digital signals having a low bit frequency. The invention 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 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 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 comparing the first pulse signal with the various third pulse signals from the said set (after which said third pulse signal whose correspondence to said first pulse signal is 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 said selected second pulse signal is the greatest is selected.

Description: The invention relates to a speech encoder for coding a digitised signal, comprising filter means for compensating a received digitised signal and for generating a residual signal, analyse means for controlling the filter means and for generating at least one signal parameter, and conversion means comprising segmentation means for splitting the residual signal into segments and for generating per segment several first pulse train signals each one of them comprising a fixed number of pulses and each one of them within the segment starting at a different starting position, and comprising selection means for selecting a first pulse train signal most related to the residual signal. Such an encoder, which for example is disclosed in US 4,932,061 (Kroon et al), is not efficient enough. B. SUMMARY OF THE INVENTION It is an object of the invention to provide an encoder which is more efficient. The encoder according to the invention is characterised in that the conversion means comprise first memory means for storing several second pulse train signals and comprise comparing means for comparing a selected first pulse train signal with second pulse train signals and selecting a certain second pulse train signal that exhibits the most correspondence to the selected first pulse train signal, whereby the at least one signal parameter, the starting position of the selected first pulse train signal and a location of the certain second pulse train signal are transmittable from the encoder. With the encoder according to the invention only the starting position of the selected first pulse train signal and a location of the certain second pulse train signal that exhibits most correspondence to the selected first pulse train signal are transmitted, together with the parameter from the encoder to a decoder. The encoder according to the invention requires only about 5300 bits/second, and therefore, with respect to known encoders, the encoder according to the invention is very efficient. A first embodiment of the encoder according to the invention is characterised in that the conversion means comprise scale means for calculating per segment a scaling factor for the certain second pulse train signal, whereby the scaling factor is transmittable from the encoder to a decoder. A second embodiment of the encoder according to the invention is characterised in that the encoder comprises an analogue to digital converter for converting an analogue signal into the digitised signal. The invention further relates to a system for coding digitised signals comprising equidistant pulses and for decoding coded digital signals, comprising at least one speech encoder according to the invention for coding a digitised signal and at least one speech decoder for decoding a coded digital signal. The system according to the invention is characterised in that the decoder comprises deconversion means for generating a further residual signal, and further filter means for receiving the further residual signal and the at least one signal parameter and for generating a further digital signal, which deconversion means comprise second memory means for storing the same second pulse train signals and selecting the certain second pulse train signal, whereby the at least one signal parameter, the starting position of the selected first pulse train signal and a location of the certain second pulse train signal are transmittable from the encoder to the decoder. A first embodiment of the system according to the invention is characterised in that the conversion means comprise scale means for calculating per segment a scaling factor for the certain second pulse train signal, and in that the deconversion means comprise amplify means for amplifying the certain second pulse train signal with the scaling factor, whereby the scaling factor is transmittable from the encoder to the decoder. A second embodiment of the system according to the invention is characterised in that the encoder comprises an analogue to digital converter for converting an analogue signal into the digitised signal, and in that the decoder comprises a digital to analogue converter for converting the digital signal into an analogue signal. In relation to the above measures, it is pointed out that from US 4,932,061 (Kroon et al) it is known to encode and transmit the selected first pulse train signal which is most related to the residual signal, together with the parameter(s). This requires about 11000 bits/second. According to the method and apparatus described therein, however, no use is made of comparing means for comparing an already selected first pulse train signal with second pulse train signals and selecting a certain second pulse train signal that exhibits the most correspondence to the selected first pulse train signal, as is in fact the case according to the invention, whereby with an encoder according to the invention only the starting position of the selected first pulse train signal and a location of the certain second pulse train signal that exhibits most correspondence to the selected first pulse train signal are transmitted, together with the parameter. This requires about 5300 bits/second, which is very advantageous. C. REFERENCES EP-307,122 (BRITISH TELECOM) EP-195,487 (PHILIPS) D. EXEMPLARY EMBODIMENT Figures 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 (Figures 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= B 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 analysing filter 4 and a weighting filter 6. The speech signal s(n) is fed to an LPC analyser 5 in which the 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 likewise fed to an adjustable analysing filter 4 having a transfer function A(z) which is given in z-transform notation by: in which the coefficients a(i), where 1 = < i = < 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. 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 the weighted prediction residual signal rpw(n) up 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): 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 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: 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: 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 codebook 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 (Figures 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, 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 signal is denoted by receiver pulse signal po(m). The receiver pulse signal po(m) therefore matches the selected subpulse signal dps(m) in the transmitter 19 as well as possible. The receiver 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 receiver 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.

Claims: Speech encoder for coding a digitised signal, comprising filter means for compensating a received digitised signal and for generating a residual signal, analyse means for controlling the filter means and for generating at least one signal parameter, and conversion means comprising segmentation means for splitting the residual signal into segments and for generating per segment several first pulse train signals each one of them comprising a fixed number of pulses and each one of them within the segment starting at a different starting position, and comprising selection means for selecting a first pulse train signal most related to the residual signal, characterised in that the conversion means comprise first memory means for storing several second pulse train signals and comprise comparing means for comparing a selected first pulse train signal with second pulse train signals and selecting a certain second pulse train signal that exhibits the most correspondence to the selected first pulse train signal, whereby the at least one signal parameter, the starting position of the selected first pulse train signal and a location of the certain second pulse train signal are transmittable from the encoder. Speech encoder as claimed in claim 1, characterised in that the conversion means comprise scale means for calculating per segment a scaling factor for the certain second pulse train signal, whereby the scaling factor is transmittable from the encoder. Speech encoder as claimed in claim 2, characterised in that the encoder comprises an analogue to digital converter for converting an analogue signal into the digitised signal. System for coding digitised signals comprising equidistant pulses and for decoding coded digital signals, comprising at least one speech encoder as claimed in claim 1 for coding a digitised signal and at least one speech decoder for decoding a coded digital signal, characterised in that the decoder comprises deconversion means for generating a further residual signal, and further filter means for receiving the further residual signal and the at least one signal parameter and for generating a further digital signal, which deconversion means comprise second memory means for storing the same second pulse train signals and selecting the certain second pulse train signal, whereby the at least one signal parameter, the starting position of the selected first pulse train signal and a location of the certain second pulse train signal are transmittable from the encoder to the decoder. System as claimed in claim 4, characterised in that the conversion means comprise scale means for calculating per segment a scaling factor for the certain second pulse train signal, and in that the deconversion means comprise amplify means for amplifying the certain second pulse train signal with the scaling factor, whereby the scaling factor is transmittable from the encoder to the decoder. System as claimed in claim 5, characterised in that the encoder comprises an analogue to digital converter for converting an analogue signal into the digitised signal, and in that the decoder comprises a digital to analogue converter for converting the digital signal into an analogue signal.

Inventors: COOLEGEM KAREL GERARD, COOLEGEM, KAREL GERARD
Applicants: NEDERLAND PTT, KONINKLIJKE PTT NEDERLAND N.V.
Application year: 1990
Main classification: G10L9
IPC codes: G10L19, H03M5, H04B14, H03M1