Claims
- 1. A digital lattice filter having n-operational stages for calculating Y-values and b-values for a linear predictive coding voice compression technique in accordance with the following equations:
- Y(n).sub.i=Y (n+1).sub.i -k(n)(Y(n+1).sub.i +b(n).sub.i-1)
- b(n+1).sub.i =b(n).sub.i-1 +k(n)(Y(n+1).sub.i +b(n).sub.i-1)
- wherein:
- n is the operational stage in which the equation is being processed,
- i is the sample time required to process the equations through the n operational stages, and
- k is a multiplier constant, there being n multiplier constants, said digital lattice filter comprising:
- multiplier storage means for storing the k multiplier constants in a predetermined order for output in each of the n-operational stages as a function of the value of n;
- b-delay storage means for receiving generated b-values in the i sample time and decaying the received b-values for output as b(n).sub.i-1 in the next i+1 sample time;
- Y-storage means for receiving the value of Y(n).sub.i for a given n for output as Y(n+1).sub.i in the subsequent n-1 stage of operation;
- processor means having stages each for receiving the value b(n).sub.i-1 from said b-delay storage means, a multiplier constant k(n) for a given n from said mulitplier storage means, and the value Y(n+1).sub.i from said Y-storage means, said processor means generating the sum Y(n+1).sub.i +b(n).sub.i-1 and multiplying the generated sum by k(n) to provide the product k(n)(Y(n+1).sub.i +b(n).sub.i-1, said processor means subtracting said product from Y(n+1).sub.i to provide the value of Y(n).sub.i and adding said product to b(n).sub.i-1 to generate the value of b(n+1).sub.i, said processor means outputting the generated values of Y(n).sub.i and b(n+1).sub.i to said Y storage means and said b-delay storage means, respectively; and
- means for cycling the value of n for a given i sample time form a predetermined maximum value to a predetermined minimum value and controlling said b-delay storage means and said multiplier storage means to output stored data as a function of
- 2. A digital lattice filter as set forth in claim 1, wherein said processor means comprises:
- adder/substractor means for generating the sum or difference of two values;
- multiplier means for generating the product of two values;
- control means for controlling said multiplier means and said adder/subtractor means so as to generate the values Y(n).sub.i =Y(n+1).sub.i -k(n) (Y(n+1).sub.i +b(n).sub.i-1) and b(n+1).sub.i =b(n).sub.i-1 +k(n)(Y(n+1).sub.i +b(n).sub.i-1) by first adding the value of Y(n+1).sub.i to the delayed value of b(n).sub.i-1 with said adder/subtractor means to provide the sum (Y(n+1).sub.i +b(n).sub.i-1) and then multiplying this sum by the multiplier constant k(n) with said multiplier means to provide the generated product k(n)(Y(n+1).sub.i +b(n).sub.i-1);
- said control means controlling said adder/subtractor means to subtract said generated product form Y(n+1).sub.i to generate the value of Y(n).sub.i and add the generated product to b(n).sub.i-1 to generate the b(n+1).sub.i value;
- timing means responsive to the decrementing value of n by said cycling means to process the Y-values and b-values with said control means; and
- output means for storing the value of Y(n).sub.i in said Y-storage means and the vlaue of b(n+1).sub.i in said b-delay storage means for each value of n.
- 3. A digital lattice filter as set forth in claim 1, wherein said processor means comprises:
- means for summing the values of Y(n+1).sub.i +b(n).sub.i-1);
- means for multiplying the intermediate sum with the multiplier constant k(n) stored in said multiplier storage means to generate the product k(n) (Y(n+1).sub.i +b(n).sub.i-1);
- means for storing sadd generated product;
- means for subtracting said stored generated product from the value of Y(n+1).sub.i to generate the value of Y(n).sub.i ;
- means for storing the generated value of Y(n).sub.i in said Y-storage means;
- means for adding said stored generated product with the value of b(n).sub.i-1 to generate the value of b(n+1).sub.i ;
- means for storing the generated value of b(n+1).sub.i in said b-delay storage means for use in subsequent processing as the value b(n).sub.i-1 ; and
- means responsive to the decrementing value of n by said cycling means to process and output the Y-values and b-values.
- 4. A digital lattice filter as set forth in claim 1, wherein said processor means comprises:
- a full adder for receiving two values and generating the sum thereof;
- multiplier means for interfacing with said adder to generate and sum partial products of a multiplier and a multiplicand in accordance with a modified Booth's algorithm for a mulitplication operation to generate a product;
- a sum register for storing the value of Y(n+1).sub.i +b(n).sub.i-1 ;
- a product register for storing a product;
- control means for controlling said adder and said multiplier means such that
- (a) said adder first adds the value of Y(n+1).sub.i +b(n).sub.i-1, with the sum being stored in said sum register;
- (b) said multiplier means then multiplies said sum in said sum register by k(n) to generate the product k(n)(Y(n+1).sub.i +b(n).sub.i-1) with the product being stored in said product register;
- (c) said adder inverts the value stored in said product register and adds the inverted value with the value of Y(n+1).sub.i to generate the value of Y(n).sub.i for storage in said Y-storage means;
- (d) said adder adds said stored product with the value of b(n).sub.i-1 to generate the value of b(n+1).sub.i for storage in said b-delay storage means; and
- means responsive to the decrementing of the value of n by said cycling means after the value of b(n+1).sub.i is calculated to process the Y-values and b-values for the next successive value of n.
- 5. A digital lattice filter having n-operational stages for calculating Y-values and b-values according to a linear predictive coding voice compression technique in accordance with the following equations:
- Y(n).sub.i =Y(n+1).sub.i -k(n)(Y(n+1).sub.i +b(n).sub.i-1)
- b(n+1).sub.i =b(n).sub.i-1 +k(n)(Y(n+1).sub.i +b(n).sub.i-1)
- where:
- n is the operational stage of the lattice filter through which the equation is being processed,
- n+1 is the previous equation that was processed in the previous stage,
- i is the set of equations being processed for values of n ranging from a maximum to a minimum value and representing one cycle of the lattice filter,
- i-1 is a set of equations calculated in a previous cycle for the ith set,
- Y is the forward transfer coefficient,
- b is the reflection coefficient, and
- k is the multiplier constant, said digital lattice filter comprising:
- multiplier storage means for storing the values of k(n) as multiplier constants in a predetermined order as a function of n, said multiplier storage means outputting the value of k(m) corresponding to the n-operational stage being processed;
- a full adder for receiving two digital values and generating the sum thereof;
- multiplier means for selectively interfacing with said full adder for multiplication of a select one of said multiplier constants k(n) stored in said multiplier storage means and a multiplicand by generating and summing partial products in accordance with a predetermined multiplication algorithm to generate a product;
- delay storage means for selectively receiving and storing the output from said adder in the i sample time and delaying the stored value for a predetermined duration for output as b(n).sub.i-1 in the next i sample time;
- product storage means for storing products generated by said multiplier means;
- sum storage means for storing the sum (Y(n+1).sub.i +b(n).sub.i-1) output by said adder;
- register measn for storing Y(n).sub.i for output as Y(n+1).sub.i for each successive value of n;
- processor means for calculating the Y-values and b-values for a given n using the value of b(n).sub.i-1 from said delay storage means, the value of Y(n+1).sub.i from said delay storage means, the value of Y(n+1).sub.i from said register means and the value of k(n) from said multiplier storage means;
- means for selecting Y(n+1).sub.i stored in said register means and adding it with the value of b(n).sub.i-1 output by said delay storage means and storing the sum in said sum storage means; and timing means for cycling the value of n from its maximum value to its mimimum vlaue, said timing means continually recycling the value of n and initiating the operation of said processor means for each new value of n.
- 6. A digital lattice filter as set forth in claim 5, wherien said multiplier storage means comprises a circulating data register controlled by said timing means that outputs data as a function of the value of n.
- 7. A digital lattice filter as set forth in claim 5, wherein said delay storage means comprises:
- a first-in first-out data register stack having a predetermined number of registers contained therein, data stored in said first-in first-out stack incremented in response to the value of n decrementing by said timing means to delay the values of b(n+1).sub.i input thereto for use in calculating subsequent equations.
- 8. A digital lattice filter as set forth in claim 5, further comprising means for selectively altering the value of the multiplier constants k(n) stored in said multiplier storage means.
- 9. A digital lattice filter as set forth in claim 5, wherein said predetermined multiplication algorithm comprises a modified Booth's algorithm and said multiplier means comprising:
- partial product means for generating partial products of the selected multiplier, constant k(n) and multiplicand according to the modified Booth's algorithm;
- a first switch seletively connected to one input of said adder for selecting between either the first generated partial product from said partial product means for input thereto or the summation output of the adder for recycling back to one input of said adder;
- a second switch selectively connected to the other input of said adder for inputting the remaining partial products from said partial product means thereto; and
- said first and second switches operable to first add the first and second partial products to generate an intermediate sum and then add the intermediate sum with the third partial product to generate a second intermediate sum and sequentially add intemreidate sums to the remaining partial products to generate the final product.
- 10. A method for calculating Y-values and b-values in a digital lattice filter operated in accordance with a linear predictive coding voice compression technique and utilizing the following equations:
- Y(n).sub.i =y(n+1)i-k(n)(Y(n+1).sub.i +b(n).sub.i-1)
- b(n+1).sub.i =b(n).sub.i-1 +k(n)(Y(n+1).sub.i +b(n).sub.i-1)
- where:
- n is the stage through which data is being processed,
- n+1 is the previous stage to the nth stage,
- i is the cycle that is being processed,
- i-1 is the previous cycle to the ith cycle,
- Y is the forward transfer coefficient,
- b is the reflection coefficient, and
- k is the multiplier constant that is stored, said method comprising:
- storing the k(n) multiplier constants in a predetermined order in a multiplier storage means and outputting the stored multiplier constants k(n) as a function of n;
- receiving and storing generated values of b(n).sub.i in a given i sample time in a delay storage means and outputting the value of b(n).sub.i- 1 after a predetermined amount of delay in the next i sample time;
- receiving and storing the value of Y(n).sub.i in a register means and outputting the stored value as Y(n+1).sub.i for the next successive value of n;
- summing in an adder the values of Y(n+1).sub.i and b(n).sub.i-1 to provide a multiplicand;
- multiplying in a multiplier the value of k(n) by the multiplicand to generate the product k(n)(Y(n+1).sub.i +b(n).sub.i-1);
- storing the generated product in a register for use in both Y-value and b-value calculation such that only one multiplication step is required for both calculations;
- retrieving the product from the register and summing the product with the value of b(n).sub.i-1 in the adder to generate b(n+1).sub.i ; and
- decrementing the value of n from a maximum to a minimum in a given i sample time.
Parent Case Info
This application is a continuation, of application Ser. No. 06/646,401, filed Aug. 31, 1984, now abandoned.
US Referenced Citations (14)
Foreign Referenced Citations (1)
Number |
Date |
Country |
2103458 |
Feb 1983 |
GBX |
Continuations (1)
|
Number |
Date |
Country |
Parent |
646401 |
Aug 1984 |
|