Method and arrangement of determining coefficients for linear predictive coding

Abstract: In order to reduce the number of update operations for determining LPC (viz., reflection) data from an incoming sampled data, a plurality of matrices representative of autocorrelation functions are set in memory. Subsequently, data representative of the upper triangular portions of the matrices (virtual upper triangular matrices) are extracted from the memory and arranged into an array. This array is then updated using a j-th reflection coefficient, after which the value of j is incremented and the updating is repeated until a predetermined number of updating is completed.

Description: The present invention relates generally to a method and arrangement for determining coefficients for linear predictive coding (LPC), and more specifically to such an arrangement and method by which the number of calculations for deriving LPC coefficients can be markedly reduced. As is well known in the art, LPC is a method of analyzing a speech signal and characterizing that signal in terms of coefficients which can be encoded, received and decoded to reproduce a close approximation to the original signal. As one of the methods of analyzing a speech signal using the LPC, a covariance method has been disclosed in United States Patent No. 4,544,919. Before turning to the present invention it is deemed advantageous to briefly discuss the method for determining LPC coefficients which has been disclosed in the above-mentioned United States Patent. Reference is made to Fig. 1, wherein there is shown a flowchart which characterizes the sequence of operations of the aforesaid prior art. In Fig. 1, it is assumed that an original speech signal to be treated has been sampled or discreted. After start 10, autocorrelation coefficients are calculated from the sampled speech signal using the following autocorrelation function g(i,k) at step 12. The determination of the autocorrelation coefficients is well known in the art. where s(n), 0≤n≤N-1 are samples of the speech signal during a frame, and Np is the order of reflection coefficients. Merely for the sake of simplifying the discussions, it is assumed that the number of the samples within a frame is 160 (viz., s(0), s(1), s(2), ..., s(159)) and Np equals 10. Accordingly, equation (1) is given by: Thus, g(0,0) = S(10)s(10)+s(11)s(11)+ .... +s(159)s(159) g(0,1) = s(10)s(9) +s(11)s(10)+ .... +s(159)s(158) ..... g(0,10) = s(10)s(0) +s(11)s(1) + .... +s(159)s(149) ..... g(10,10) = s(0)s(0) +s(1)s(1) + .... +s(149)s(149) In this instance, the number of elements (viz., g(i,k)) totals 121. The elements g(i,k) are represented in the form of matrix with 11-row and 11-column (viz., 11x11 matrix) as indicated below. At step 14, three types of arrays f, c and b are derived from the autocorrelation function g(i,k) using the following equations (3), (4) and (5). f(i,k) = g(i,k) for 0≤i≤9(=Np-1) and 0≤k≤9(=Np-1) c(i,k) = g(i,k+1) for 0≤i≤9(=Np-1) and 0≤k≤9(=Np-1) b(i,k) = g(i+1,k+1) for 0≤i≤9(=Np-1) and 0≤k≤9(=Np-1) It is understood that: Each of these three matrices F, C and B is 10x10 square matrix. Following this, the value of j is set to 1 (step 16) and, the j-th reflection coefficient r[j] is determined using conventional techniques. At step 20, the value of j is checked to see if j=Np. In this instance the answer is "NO" and hence control goes to step 22 wherein the arrays f, c and b are updated. The value of j is incremented at step 24 and, control goes back to step 18. These operations at steps 18, 20, 22 and 24 are repeated until j=Np. Since it has been assumed that Np=10, the number of the loop (steps 18→20→22→24→18) amounts to 9. Consequently, the number of the updating operations for determining LPC coefficients are: j=1 3 x 9 2 = 243 j=2 3 x 8 2 = 192 j=3 3 x 7 2 = 147 j=4 3 x 6 2 = 108 j=5 3 x 5 2 = 75 j=6 3 x 4 2 = 48 j=7 3 x 3 2 = 27 j=8 3 x 2 2 = 12 j=9 3 x 1 2 = 3 Total 855 As discussed above, the above-mentioned known technique has encountered the drawback that a relatively large number of the update operations is required for determining the LPC coefficients. This means that such a large number of addressing operations must be carried out and results in the operation speed being undesirably slowed down. SUMMARY OF THE INVENTION It is therefore an object of the present invention to provide a method by which the number of update operations for determining LPC (viz., reflection) coefficients is markedly reduced. Another object of the present invention is to provide an arrangement by which the number of update operations for determining LPC (viz., reflection) coefficients is markedly reduced. One aspect of the present invention comes in a method of determining reflection coefficients using linear predictive coding wherein a plurality of autocorrelation coefficients are derived from an incoming sampled speech signal, the autocorrelation coefficients being utilized to produce elements of three types of matrices F, C and B which are memorized in a memory and by which said reflection coefficients are calculated, said method comprising the steps of: (a) selectively retrieving, from said memory, elements to be included in three upper triangular matrices F', C' and B' of said matrices F, C and B, respectively, and retrieving, from said memory, elements to be included in an upper triangular matrix C' t of a transposed matrix C t of said matrix C; (b) arranging the elements retrieved in step (a) into an array; (c) calculating a j-th reflection coefficient using said array, wherein j is a positive integer with an initial value of 1; (d) updating the element values in said array according to the reflection coefficient calculated in step (c); and (e) incrementing the value of j and repeating steps (c) and (d) until a predetermined number of updatings is completed. Another aspect of the present invention comes in an apparatus for determining reflection coefficients using linear predictive coding wherein a plurality of autocorrelation coefficients are derived from an incoming sampled speech signal, the autocorrelation coefficients being utilized to produce elements of three types of matrices F, C and B which are memorized in a memory and by which said reflection coefficients are calculated, said apparatus comprising: means for selectively retrieving, from said memory, elements which are included in three upper triangular matrix portions F', C' and B' of said matrices F, C and B, respectively, and retrieving, from said memory, elements which are included in an upper triangular matrix portion C' t of a transposed matrix C t of said matrix C; means for arranging the retrieved elements into an array; means for calculating a j-th reflection coefficient using said array, wherein j is a positive integer with an initial value of 1; means for updating the element values in said array according to the calculated reflection coefficient; and means for incrementing the value of j until a predetermined number of updatings is completed. BRIEF DESCRIPTION OF THE DRAWINGS The features and advantages of the present invention will become more clearly appreciated from the following description taken in conjunction with the accompanying drawings in which like elements are denoted by like reference numerals and in which: Fig. 1 in a flowchart which characterizes the operations of the known technique discussed in the opening paragraphs of the instant disclosure; Fig. 2 is a flowchart which characterizes the operations of an embodiment of the present invention; Fig. 3 is a block diagram showing an arrangement for implementing the operations discussed with the Fig. 2 flowchart; Figs. 4A-4D, 5A-5D and 6 depict the matrices which are involved in the implementation of the instant invention; Fig. 7 depicts the amount of matrix elements which are set in memory in accordance with the technique which characterizes the present invention.; and Fig. 8 depicts a C language program which can be used implementing the updating operation depicted in Fig. 2. DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS One embodiment of the present invention will be discussed with reference to Figs. 2-8. The flowchart shown in Fig. 2 includes additional steps 36, 38 as compared with that of Fig. 1. Further, operations at steps 42, 46 in Fig. 2 differ from the corresponding operations at steps 18, 22 of Fig. 1. The operations at the remaining steps 30, 32, 34, 40, 44, 48 and 49 of Fig. 2 are respectively identical (essentially) with steps 10, 12, 14, 16, 20, 24 and 26 of Fig. 1. Fig. 3 is a highly schematic illustration of an arrangement via which the invention can be implemented. In this figure, a controller 50 is provided to manage the overall operations of the arrangement illustrated via a bus 51. A sampled or descreted speech signal S(n) is applied to a memory 52 via an input interface 54. As in the discussion in the opening paragraphs, it is assumed that the number of samples within one frame is 160 (viz., S(0), s(1), S(2), ...., s(158) and s(159)). These sampled values s(0)-s(159) are stored in suitable storage locations of the memory 52. Following this, the autocorrelation coefficients are calculated using the function g(i,k) given by equation (2), at a calculator block 56 of Fig. 3 (step 32 of Fig. 2). The autocorrelation coefficients thus determined, are stored in the memory 52. Subsequently, a square matrix generator 58 determines the elements of the above-mentioned Np x Np square matrices F, C and B using the autocorrelation coefficients stored in the memory 52 (step 34 of Fig. 2). The operations at steps 32, 34 have been described in connection with the prior art. Fig. 4A, 4B and 4D show the above-mentioned matrices F, C and B for the convenience of description. It will be noted that Fig. 4C shows a transposed matrix C t of the matrix C. The elements of the matrix is also stored in memory 52 in this instance. In accordance with the present invention, data each of which is included in the upper portion of the virtual upper triangular matrices F', C' and B', is extracted from the matrices F, C and B, respectively. In addition, the elements or data, which correspond to the upper portion of another upper triangular matrix C' t , is extracted from the transposed matrix C t . It is understood that this extraction can actually be executed by determining if i ≤ k for the data of the matrices F, C, C t and B. The extracted data is depicted as the element which is included in the upper portion (enclosed by solid line) of each of the virtual upper triangular matrices F', C', C' t and B' in Figs. 5A-5D. As will be fully appreciated these matrices are not actually compiled in the illustrated manner and are illustrated merely for the sake of easy comprehension. An array t sequencer 62 groups the elemental data which correspond to the upper portion elements of the four virtual upper triangular matrices F', C', C' t and B'. This grouping is depicted in Fig. 6. Viz., this process groups matrix elements with i row indicator having the same value and arranges the same according to ascending value of k column indicator. In the case wherein i and k are both the same, the grouping is made in the order f', c' c' t and b'. The results of this grouping are then set in the memory 52 in the manner that the above-mentioned data corresponding to the elements of the upper triangular matrices F', C', C' t and B' are respectively assigned to or specified by t[0] - t[219] as shown in Fig. 7. Following this, the value of j is set to 1 (step 40 of Fig. 2) and then the j-th reflection coefficient r[j] is determined using the following equation (9) at a reflection coefficient calculator 64 (step 42 of Fig. 2). r(j) = {-2{t[1]+t[J+1]}} {t[0]+t[3]+t[J]+t[J+3]} where J = 0 (j=Np) At step 44, the value of j is checked to see if j=Np. In this instance the answer is "NO" and hence control goes to step 46 wherein the array f, c and b are updated. More specifically, the update operation (step 46) in this embodiment is executed at an array t updater 66. Merely by way of example, Fig. 8 shows the program for the update operations written by the C language wherein i and k denote the row/column indicators (i,k) of the Np x Np upper triangular matrix, j is the reflection coefficient loop variable, kk is the suffix of the current array t, and ii is the suffix of new array t. At stage 300 of this program the f'(i,k) are updated, at 301 c'(i,k) are updated, while at 302 c' t (i,k) are updated and at 303 b' (i, k) are updated. This program performs a double loop and updates all of the matrix elements f'(k,i), c'(i,k), c' t (i,k) & b'(i,k). The updating itself is not directly concerned with the present invention and hence the further discussions thereof will be omitted. Following the completion of the instant updating operation, j is incremented at step 48 whereafter the routine loops back to step 42. Upon j becoming equal to Np the routine goes to end (step 49) Following the end of the routine illustrated in Fig. 2, the updated data is set in memory ready to be retrieved under the control of the controller 50 and is outputted via an output interface 68. The effect of the above is such that, as different from the above discussed prior art arrangement wherein the update is executed directly from the square matrices F, C, B, the array t is updated based on data representative of the upper elements of the four types of upper triangular matrices F', C' C' t and B' whereby: (1) the number of the updating operations for determining LPC coefficients are: j=1 4 x 45 = 180 j=2 4 x 36 = 144 j=3 4 x 28 = 112 j=4 4 x 21 = 84 j=5 4 x 15 = 60 j=6 4 x 10 = 40 j=7 4 x 6 = 24 j=8 4 x 3 = 12 j=9 4 x 1 = 4 Total 660 As will be appreciated this amounts to a marked reduction in the number of updating operations which are performed to produce the reflection coefficients. A further advantage comes in that the data arranged along with the array t are updated sequentially and thus simplifies the memory addressing as compared with the above discussed prior art. While the foregoing description describes one preferred embodiment of present invention, the various alternatives and modifications possible without departing from the scope of the present invention, which is limited only by the appended claims, will be apparent to those skilled in the art.

Claims: A method of determining reflection coefficients using linear predictive coding wherein a plurality of autocorrelation coefficients are derived from an incoming sampled speech signal, the autocorrelation coefficients being utilized to produce elements of three types of matrices F, C and B which are memorized in a memory and by which said reflection coefficients are calculated, said method comprising the steps of: (a) selectively retrieving, from said memory, elements to be included in three upper triangular matrices F', C' and B' of said matrices F, C and B, respectively, and retrieving, from said memory, elements to be included in an upper triangular matrix C' t of a transposed matrix C t of said matrix C; (b) arranging the elements retrieved in step (a) into an array t; (c) calculating a j-th reflection coefficient using said array t, wherein J is a positive integer with an initial value of 1; (d) updating the element values in said array t according to the reflection coefficient calculated in step (c); and (e) incrementing the value of j and repeating steps (c) and (d) until a predetermined number of updatings is completed. A method as claimed in claim 1, wherein the process in step (b) includes grouping of the matrix elements with row indicators having the same value into a plurality of sub-groups, each of said sub-groups being arranged according to ascending order of column indicator values, and the matrix elements having identical row and column indicator values in each sub-group are arranged in a predetermined order. An apparatus for determining reflection coefficients using linear predictive coding wherein a plurality of autocorrelation coefficients are derived from an incoming sampled speech signal, the autocorrelation coefficients being utilized to produce elements of three types of matrices F, C and B which are memorized in a memory (52) and by which said reflection coefficients are calculated, said apparatus comprising: means for selectively retrieving, from said memory, elements which are included in three upper triangular matrix portions F', C' and B' of said matrices F, C and B, respectively, and retrieving, from said memory (52), elements which are included in an upper triangular matrix portion C' t of a transposed matrix C t of said matrix C; means (62) for arranging the retrieved elements into an means array t; means (64) for calculating a j-th reflection coefficient using said array t, wherein J is a positive integer with an initial value of 1; means (66) for updating the element values in said array t according to the calculated reflection coefficient; and means for incrementing the value of J until a predetermined number of updatings is completed. An apparatus as claimed in claim 3, further including means for grouping of the matrix elements with row indicators having the same value into a plurality of sub-groups, arranging each of said sub-groups according to ascending order of column indicator values, and arranging the matrix elements so that identical row and column indicator values in each sub-group are arranged in a predetermined order.

Inventors: NAGASAKI MAYUMI, NAGASAKI, MAYUMI, Nagasaki, Mayumi, c/o NEC Corporation
Applicants: NIPPON ELECTRIC CO, NEC CORPORATION
Application year: 1992
Main classification: G10L9
IPC codes: G06F17, G10L11