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:
This application is a continuation of application Ser. No. 07/837,320, filed Feb. 19, 1992, now abandoned. 
    
    
     BACKGROUND OF THE INVENTION 
     1. Field of the Invention 
     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. 
     2. Description of the Prior Art 
     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 U.S. Pat. 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 U.S. 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. ##EQU1## 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: ##EQU2## 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., 11×11 matrix) as indicated below. ##EQU3## 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). ##EQU4## 
     It is understood that: ##EQU5## Each of these three matrices F, C and B is 10×10 square matrix. 
     Following this, the value of j (where j indicates a reflection coefficient loop variable) 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 &#34;NO&#34; 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 × 9.sup.2 =                       243  j = 2       3 × 8.sup.2 =                       192  j = 3       3 × 7.sup.2 =                       147  j = 4       3 × 6.sup.2 =                       108  j = 5       3 × 5.sup.2 =                        75  j = 6       3 × 4.sup.2 =                        48  j = 7       3 × 3.sup.2 =                        27  j = 8       3 × 2.sup.2 =                        12  j = 9       3 × 1.sup.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. 
     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&#39;, C&#39; and B&#39; of said matrices F, C and B, respectively, and retrieving, from said memory, elements to be included in an upper triangular matrix C&#39; 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 (j is a positive integer) reflection coefficient using said array; (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 updating 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&#39;, C&#39; and B&#39; of said matrices F, C and B, respectively, and retrieving, from said memory, elements which are included in an upper triangular matrix portion C&#39; 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 (j is a positive integer) reflection coefficient using said array; and means for updating the element values in said array according to the calculated reflection coefficient. 
    
    
     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 is 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 similar (essentially) to 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×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. 
     FIGS. 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 are 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&#39;, C&#39; and B&#39;, 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&#39; 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&#39;, C&#39;, C&#39; t  and B&#39; 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&#39;, C&#39;, C&#39; t  and B&#39;. 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 of f&#39;, c&#39; c&#39; t  and b&#39;. 
     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&#39;, C&#39;, C&#39; t  and B&#39; 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). ##EQU6## 
     At step 44, the value of j is checked to see if j=Np. In this instance the answer is &#34;NO&#34; 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×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&#39;(i,k) are updated, at 301 c&#39;(i,k) are updated, while at 302 c&#39; t  (i,k) are updated and at 303 b&#39; (i, k) are updated. This program performs a double loop and updates all of the matrix elements f&#39;(k,i), c&#39;(i,k), c&#39; t  (i,k) &amp; b&#39;(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&#39;, C&#39; C&#39; t  and B&#39; whereby: 
     (1) the number of the updating operations for determining LPC coefficients are: 
     
         ______________________________________j = 1             4 × 45 =                       180j = 2             4 × 36 =                       144j = 3             4 × 28 =                       112j = 4             4 × 21 =                        84j = 5             4 × 15 =                        60j = 6             4 × 10 =                        40j = 7             4 × 6 =                        24j = 8             4 × 3 =                        12j = 9             4 × 1 =                        4Total                       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.