Abstract:
A forward impulse response, linear-phase matched filter, receiving as an input a sampled digital representation of an input signal, x(n), having n samples, and providing a filtered output, y a (n), having K stages, stage 0, stage 1, . . . stage k, . . . stage K−2, stage K−1. The implementation of the filter includes a block in stage 0 for multiplying the values x(n) by the value            1   -     b   2           1   -     bz     -   1                                 
     to generate values v 0 (n). Blocks are provided in stages 1 though K−1 for generating the values v k (n) for k=1→K−1, where 
     v k (n)=bv k (n−1)+v k−1 (n−1)−bv k (n). Further blocks are provided in stages 0 through K−1 for multiplying v k (n) by a respective constant value, c k , for generating a series of intermediate values i k . A final block sums the intermediate values to produce said filtered output, y a (n). In the implementation the value b is a Laguerre parameter, and the value z is a z-transform of the filter behavior. A predetermined limiting function is applied in determining the value v k (n) to reduce the number of multiplications necessary to implement the filter function, while avoiding instabilities in the filter so implemented. Discrete-time Laguerre sequences are effective for representing sequences in the form of orthogonal expansions. Taking advantage of the network realization of a Laguerre expansion, it is shown that approximating linear-phase matched filters by means of Laguerre expansion provides considerable savings in hardware implementations without adding significant distortion.

Description:
This amendment claims priority under 35 U.S.C. § 119(e)(1) of provisional application No. 60/054,776 filed Aug. 5, 1997. 
    
    
     FIELD OF THE INVENTION 
     The present invention relates to digital communications, and more particularly relates to digital filtering of signals used in such communications, specifically, FIR linear-phase matched filters. 
     BACKGROUND OF THE INVENTION 
     Forward impulse response “FIR” digital filters are, in general, well known in the art of digital communications. FIR linear-phase matched filters are desirable in such art. FIR linear-phase matched filters can be designed to have both constant phase delay and constant group delay, which results in excellent distortion characteristics of such filters. 
     However, the design of FIR linear-phase matched filters to meet specific performance objectives is generally more difficult than the design of infinite impulse response filters for similar applications. In addition, such FIR filters implemented with recursive techniques can be subject to instability problems, such as limit-cycle oscillations. 
     Thus, it would be desirable to have a filter, and a design technique for such a filter, which is relatively simple, and which will approximate FIR linear-phase matched filters with little degradation in performance and freedom from distortion, while still providing significant savings in hardware. 
     SUMMARY OF THE INVENTION 
     According to the present invention, there is provided a forward impulse response, linear-phase matched filter, receiving as an input a sampled digital representation of an input signal, x(n), having n samples, and providing a filtered output, y a (n), having K stages, stage 0, stage 1, . . . stage k . . . stage K−2, stage K−1. The implementation of the filter includes a block in stage 0 for multiplying the values x(n) by the value            1   -     b   2           1   -     bz     -   1                                
     to generate values v 0 (n). Blocks are provided in stages 1 through K−1 for generating the values v k (n) for k=1→K−1, where v k (n)=bv k (n−1)+v k−1 (n−1)−bv k (n). Alternately, v k (n)=v k−1 (n−1)(z −1 −b)/(1−bz −1 ), expressed in terms of z-transform. Further blocks are provided in stages 0 through K−1 for multiplying v k (n) by a respective constant value, c k , for generating a series of intermediate values i k . A final block sums the intermediate values to produce said filtered output, y a (n). In the implementation the value b is a Laguerre parameter, and the value z is a z-transform of the filter behavior. A predetermined limiting function is applied in determining the value v k (n) to reduce the number of multiplications necessary to implement the filter function, while avoiding instabilities in the filter so implemented Discrete-time Laguerre sequences are effective for representing sequences in the form of orthogonal expansions. Taking advantage of the network realization of a Laguerre expansion, it is shown that approximating linear-phase matched filters by means of Laguerre expansion provides considerable savings in hardware implementations without adding significant distortion. 
     These and other features of the invention will be apparent to those skilled in the art from the following detailed description of the invention, taken together with the accompanying drawings. 
    
    
     BRIEF DESCRIPTION OF THE DRAWINGS 
     FIG. 1 is a schematic representation of a Laguerre filter in accordance with the preferred embodiment of the present invention; 
     FIG. 2 is a diagram of the behavior of a linear-phase matched filter given in the IS-95-A spread spectrum mobile communications standard; and 
     FIG. 3 is a diagram of the Laguerre reconstructions for several approximations in accordance with the preferred embodiment of the present invention. 
     FIGS. 4-9 depict further electrical characteristics of the Laguerre Filter in accordance with the preferred embodiment of the present invention shown in FIG. 1, depicting the behavior of the filter as a function of the number of samples. 
    
    
     DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS 
     Discrete orthogonal Laguerre expansions are known in the electronics arts. For example, see Arnold, C. R., “Laguerre Functions and the Laguerre Network—Their Properties and Digital Simulation.” Massachusetts Institute of Technology, Lincoln Laboratory, Technical Note, 1966-28, May, 1988. Such expansions have found applications in areas such as electromagnetic pulse compression and filtering, and speech coding. For example, see Mandyam. Giridhar. Nasir Ahmed and Bruce Armstrong, “Electromagnetic Pulse Signal Representation Using Orthonormal Laguerre Sequences,”  IEEE Transactions on Electromagnetic Compatibility , Vol. 37, No. 4, pp. 592-595, November, 1995, and “Al-Jabri, A. and S. A. Alshbelli, “Laguerre Transform for Speech Compression,”  IEEE Instrumentation and Measurement Technology Conference , Hamamatsu, Japan, 1994. 
     I have discovered a technique, using the Laguerre expansion, for filter implementation which will approximate FIR linear-phase matched filters with little degradation in performance and still provide significant savings in hardware. The preferred embodiments of this technique will now be described. 
     The Laguerre expansion of a discrete sequence can be represented as a network, which can lead to an efficient hardware implementation. The Laguerre expansion involves the well-known z-transform, hence the also well-known complex number value z that appears in the expressions that follow. Given a sequence y(n), its Laguerre expansion is defined as:                y        (   n   )       =       ∑     k   =   0     ∞              c   k          (   b   )              l   k          (     n   ,   b     )                   (   1   )                                
     where 0&lt;b&lt;1, c k  is the k-th Laguerre coefficient, and l k  (n, b) is a Laguerre sequence given by:                    l   k          (     n   ,   b     )       =       Z     -   1            {         1   -     b   2                  (       z     -   1       -   b     )     k         (     1   -     bz     -   1         )       k   +   1           }         ,     0   &lt;   b   &lt;   1             (   2   )                                
     The parameter b is also called the Laguerre parameter. It can be varied between 0 and 1 so as to better represent y(n). Since Laguerre sequences l k (n,b) are orthonormal, it follows that the coefficients c k  can be evaluated using the relation:                c   k     =       ∑     n   =   0     ∞            y        (   n   )                         l   k          (     n   ,   b     )                   (   3   )                                
     To approximate y(n), I evaluate a finite number of Laguerre coefficients c k . If the number of coefficients is L+1, then there is an L-stage expansion. 
     The approximation problem becomes easier in the case of finite-length sequences. If y(n) is of finite length N+1, then an appropriate L must be determined to achieve an acceptable signal reconstruction y a (n); unfortunately, there are no analytic methods to accomplish this. However, if the Laguerre expansion is viewed in terms of an FIR filter, then one needs to simply feed an impulse sequence x(n) to this filter to obtain y a (n) at the output, as illustrated in FIG. 1, which shows a schematic representation of this Laguerre expansion. Note that for this FIR filter, the series n represents a series of samples of digitized signal, which is the case in practical application of the principles of the present invention. 
     As can be seen, the impulse sequence x(n) is provided to the input of a first computational block 10. The output of block 10, v 0  (explained below), is provided to the input of a second computational block 12, and to a step 18 of multiplication by c 0 . The output of block 12, v(explained below), is provided to the input of a third computational block 14, and to a step 20 of multiplication by c 1 , and so forth. Finally, the output of block 16, v L  (explained below), is provided to a step 22 of multiplication by c L . The output of steps 18, 20, . . . 22, are provided to the input of a summation step 24. The output of summation step 24 is the value y a (n). 
     The representation in FIG. 1 leads to an efficient means of realizing the expansion in software or hardware. In this way, if y(n) represents an FIR filter, then y a (n) models the impulse response of this filter. The output of the first-order ARMA (ARMA stands for “Autoregressive Moving Average,” and is a well-known technique in this art) processes {v k } in the delay line in FIG. 1 can also be calculated using the recursive relationship: 
     
       
         v 0 (n)=bv 0 (n−1)+{square root over (1+L −b 2 +L )}x(n)  (4) 
       
     
     
       
         v k+1 (n)=bv k+1 (n−1)+v k (n−1)−bv k (n)  (5) 
       
     
     Yet another problem arises with finding an optimal value for b. Noting that y a (n) is defined as:                  y   a          (   n   )       =       ∑     k   =   0     L              c   k          (   b   )              l   k          (     n   ,   b     )                   (   6   )                                
     the corresponding squared error is:                ɛ        (   b   )       =       ∑     n   =   0     ∞            (       x        (   n   )       -       y   a          (   n   )         )     2               (   7   )                                
     Since the basis sequences are orthonormal, Equation (7) simplifies to:                ɛ        (   b   )       =         ∑     n   =   0     ∞            x        (   n   )       2       -       ∑     k   =   0     L              c   k          (   b   )       2                 (   8   )                                
     Thus an optimal value of b can be found by differentiating Equation (8) with respect to b, and setting the resulting expression equal to zero; this leads to:                  ∑     k   =   0     L              c   k          (   b   )                    b              c   k          (   b   )           =   0           (   9   )                                
     Equation (9) simplifies to yield:                    ∑     k   =   0     L              c   k          (   b   )                    b              c   k          (   b   )           =         L   +   1       1   -     b   2                c   L          (   b   )              c     L   +   1            (   b   )           ,     0   &lt;   b   &lt;   1             (   10   )                                
     Since the coefficients c k  can be represented as polynomials of b, it is necessary to find the roots of Equation (10), and for those roots, find the root for which the squared error in Equation (8) is a minimum. To that end, first the c k (b) coefficients are found. 
     Knowing the Z-transform relationships of x(n) and l k (n,b), it can be seen that:                  c   k          (   b   )       =       1     2      π                 j              ∮   C            X        (   z   )              L   k          (       z     -   1       ,   b     )            z     -   1               z                   (   11   )                                
     where C encloses all the poles of X(z). Equation (11) can be evaluated and expressed in closed-form as:                  c   k          (   b   )       =         1   -     b   2                ∑     i   =   0     N            ∑     s   =   0       min        (     i   ,   k     )                      (     -   1     )       k   -   s            [         i           s         ]                  [           k   -   s   +   i             i         ]          x        (   i   )            b     i   +   k   -     2      s                         (   12   )                                
     Thus in this manner, all the coefficients c k (b) can be solved up to the Lth coefficient, 
     In practice, the process of finding the roots of polynomials of arbitrary order and then determining which root minimizes the error is computationally expensive. I have discovered that I can assign a constant value to b such that stability of the filter is preserved. Such constant value for b is between 0 and 1. 
     Although the realization in FIG. 1 looks like an FIR filter implementation, the delay line for Laguerre expansions is not as simple as the standard tap-delay line of FIR filters. The delay line can be thought of as a tap-delay line whose delay elements have been replaced by first-order ARMA processes. Therefore, even if an N tap FIR filter is replaced by an L-stage Laguerre expansion (L&lt;N), the number of multiplications may still be the same if not more due to the b coefficient multiplications in each of these ARMA processes. This involves and unacceptably high number of multiplications for any practical implementation, for example in the digital communications arts. 
     However, applying the key simplification I have discovered, mentioned above, provides a tremendous reduction in the number of multiplications that must bee performed in order to implement this process. Thus, if b is equal to 0.5, for example, the digital hardware realization of a Laguerre expansion simplifies considerably, as a multiplication by 0.5 is simply a binary shift. This is easier to implement digitally than a full multiply operation. 
     The calculation of the c k (b) coefficients is straightforward once b has been determined: each Laguerre coefficient is a linear combination of a subset of the original data sequence. As an example, the linear-phase matched filter given in IS-95-A spread spectrum mobile communications standard is considered. This filter, the behavior of which (y-axis=amplitude; x-axis=samples) is pictured in FIG. 2, has a tap spacing of one-quarter chip (chipping frequency being 1.2288 MHz). The Laguerre reconstructions are shown for several approximations in FIG. 3; the corresponding impulse response mean-squared error is shown in Table 1 (the variance of the FIR filter coefficients is 0.0047). The impulse responses are shown for longer than 48 samples so as to demonstrate the presence of zero-input limit cycles; evidently, this filter structure eliminates such effects. Although the Laguerre approximation exhibits phase distortion, the phase distortion is primarily in the stopband and is attenuated by the magnitude response. The Laguerre expansion cannot duplicate the linear phase characteristic of the original FIR filter exactly; nevertheless, it comes very close. 
     Although the number of multiplies seems to have been reduced by simply adjusting the value of b, the outputs of each of the ARMA elements {v k } in the delay line of FIG. 1 may still require increasing precision, this may erase any computational gains from reducing the number of coefficient multiplies. Restricting the amount of precision used in quantizing these ARMA process outputs depends largely on restricting the amount of precision utilized for the input signal. Assume that the incoming data to the filter is quantized to B bits; therefore the incoming discrete signal has 2 B  possible values. If it is assumed that 2 B  is the absolute maximum value for any discrete signal in the input sequence, the values for {v k } may be finitely-quantized. I will now demonstrate how, the range of quantization is determined. This is accomplished by finding lease-upper bounds for the magnitudes of {v k }. 
     A bound on v 0  may be found in the following manner: first assume that a supremum (a “supremum” is the least upper bound of a set of elements, and is a well known term in this art) of |v 0 | exists, denoted by K 0 , and that the input sequence x(n) satisfies 0&lt;x(n)≦2 B  (this condition can be changed to reflect an arbitrary magnitude bound on the input sequence very easily). Then referring to Equation (4), an absolute bound may be constructed: 
     
       
         |v 0 (n)|=|bv 0 (n−1)+{square root over (1+L −b 2 +L )}x(n)|  (13) 
       
     
      &lt;b|v 0 (n−1)|+{square root over (1+L −b 2 +L )}2 B   (14) 
     Since K 0  is the supremum of |v 0 |, then it is possible to conclude:                K   0     ≤       b               v   0          (     n   -   1     )              +         1   -     b   2              2   B                 (   15   )                            ≤       bK   0     +         1   -     b   2              2   B                   (   16   )                                
     and therefore:                K   0     ≤           1   -     b   2              2   B         1   -   b               (   17   )                                
     Thus K 0  is finite for any 0&lt;b&lt;1. 
     Similarly, a bound on v 1  can be found:                       v   1          (   n   )            =              bv   1          (     n   -   1     )       +       v   0          (     n   -   1     )       -       bv   0          (   n   )                      (   18   )                            ≤              bv   1          (     n   -   1     )            +              v   0          (     n   -   1     )       -       bv   0          (   n   )                          (   19   )                                
     Recalling that the supremum of v 1  is K 1  and the relationship for v 0 (n) in Equation (4), then this inequality may be expressed as: 
     
       
         |v 1 (n)|≦bK 1 +|v 0 (n−1)−b(bv 0 (n−1)+{square root over (1+L −b 2 +L )}x(n))|  (20) 
       
     
     With some simplification, this bound becomes: 
     
       
         |v 1 (n)|≦bK 1 +|(1−b 2 )v 0 (n−1)−b{square root over (1+L −b 2 +L )}x(n))|  (21) 
       
     
     The fundamental assumption on the input range of the data sequence x(n)(0&lt;x(n)≦2 B ) results in v 0 (n) never being negative. Therefore, the largest value that the |(1−b 2 )v 0 (n−1)−b{square root over (1+L −b 2 +L )}x(n) | term in Equation (21) can attain is (1−b 2 )K 0 −b{square root over (1+L −b 2 +L )}. Therefore, the bound for v 1  becomes: 
     
       
         |v 1 (n)|≦bK 1 +(1−b 2 )K 0 −b{square root over (1+L −b 2 +L )}  (22) 
       
     
     which results in:                K   1     ≤           (     1   -     b   2       )          K   0       -     b          1   -     b   2               1   -   b               (   23   )                            ≤         (       2   B     +     b2   B     -   b     )            1   -     b   2             1   -   b                 (   24   )                                
     Therefore K 1  is also finite for 0&lt;b&lt;1. 
     A general bound on v k+1 , k≧0 may be found as well:                       v     k   +   1            (   n   )            =              bv     k   +   1            (     n   -   1     )       +       v   k          (     n   -   1     )       -       bv   k          (   n   )                      (   25   )                            ≤       b               v     k   +   1            (     n   -   1     )              +              v   k          (     n   -   1     )       -       bv   k          (   n   )                          (   26   )                                
     Recalling that the supremum of v k+1  is K k+1 , then: 
     
       
         |v k+1 (n)|≦bK k+1 +|v k (n−1)−bv k (n)|  (27) 
       
     
     Finally, this bound may be expressed as: 
     
       
         |v k+1 (n)|≦bK k+1 +|v k (n−1)|−b\v k (n)|  (28) 
       
     
     Therefore K k+1  is found as                K     k   +   1       ≤         1   +   b       1   -   b            K   k               (   29   )                                
     Thus if K k  is finite, so is K k+1 . Since K 0  is finite, then for finite k, the bound for v k  is also finite. 
     Although this establishes a maximum range for {v k }, these bounds increase arbitrarily as the number of stages in the Laguerre expansion increases. Therefore, I am interested in a “working” bound The bound on v 0  is manageable, as it is not much larger than the maximum value for the input sequence. However, the bound on v 1  derived in Equation (23) results in a significant increase of the bound on v 0  if b=0.5. If the range of quantization required for v 1  based on this bound is determined, then the range necessary to quantize v 1  will be greater than for v 0 . This problem becomes more severe for increasing values of k. However, making certain assumptions about the input sequence may result in simplifying these bounds. First, the bound of Equation (27) is revisited: 
     
       
         |v k+1 (n)|=bK k+1 +|v k (n−1)−bv k (n)| 
       
     
     By dividing out v k (n−1) from the second term on the right side of the equation, the following bound is derived:                       v     k   +   1            (   n   )            ≤       bK     k   +   1       +       K   k               1   -     b            v   k          (   n   )           v   k          (     n   -   1     )                              (   30   )                                
     One would like to simplify the ratio v k (n)/v k (n−1); in fact, if this ratio can be shown to be unity, then Equation (30) becomes 
     
       
         |v k+1 (n)|≦bK k+1 +K k (1−b)  (31) 
       
     
     which results in 
     
       
         K k+1 .&lt;K k   (32) 
       
     
     which implies that K 0  is the sufficient bound for all {v k }. A starting assumption is that the input sequence to each ARMA process does not change rapidly, i.e. x(n)≈x(n−1)≈x(n−3)≈. . . ≈x(n−D),n=D, 2D, 3D, . . . for some D&gt;1. Another assumption is that b is chosen such that b N =0,N&lt;&lt;D. Then a demonstration by induction is possible (the reason this exercise is referred to as a demonstration rather than a proof is due to the fact that the ratio              v   k          (   n   )           v   k          (     n   -   1     )         ≈   1                          
     will be shown to hold most of the time): Zeroth Case: Assuming {v 0 (n)} is equal to zero prior to initial input excitation, which will be assumed to occur at n=0, then                  v   0          (   0   )       =         1   -     b   2              x        (   0   )                 (   33   )                   v   0          (   1   )       =         bv   0          (   0   )       +         1   -     b   2              x        (   1   )                   (   34   )                            =       b            1      b     -     b   2              x        (   0   )         +         1   -     b   2              x        (   1   )                     (   35   )                   v   0          (   2   )       =         b   2            1   -     b   2              x        (   0   )         +     b          1   -     b   2              x        (   1   )         +         1   -     b   2              x        (   2   )                   (   36   )                          ⋮           (   37   )                         v   0          (   N   )       =                    b   N            1   -     b   2              x        (   0   )         +       b     N   -   1              1   -     b   2              x        (   1   )         +   …   +                                  1   -     b   2              x        (   N   )                       (   38   )                            =         b     N   -   1              1   -     b   2              x        (   1   )         +   …              +         1   -     b   2              x        (   N   )                     (   39   )                            =         b     N   -   1              1   -     b   2              x        (   0   )         +   …              +         1   -     b   2              x        (     N   -   1     )                     (   40   )                            =       v   0          (     N   -   1     )                 (   41   )                                
     Therefore, after N data values, the ratio            v   0          (   n   )           v   k          (     n   -   1     )                              
     becomes unity. As soon as the next D repetitions in the input data sequence are processed, then it will take another N input data points for the unity ratio to hold. However, since K&gt;&gt;N it can be seen that v 0 (n) is constant for D 0 =D−N samples, much longer than N samples of each input sequence repetition interval of length D. Therefore v 0  is constant most of the time. General Case: Assuming that            v   k          (   n   )           v   k          (     n   -   1     )                              
     is unity and the number of consecutive samples for which v k  is constant is D k (D k &gt;&gt;N), it is desired to demonstrate that            v     k   +   1            (   n   )           v     k   +   1            (     n   -   1     )                              
     is unity as well (although v k  is not constant for D k  bursts at all times, this assumption will suffice most of the time). Starting from Equation (5): 
     
       
         v k+1 (n)=bv k+   1 (n−1)+v k (n−1)−bv k (n) 
       
     
     It can be shown that                  v     k   +   1            (   n   )       =         bv     k   +   1            (     n   -   1     )       +         v   k          (     n   -   1     )                       (     1   -     b            v   k          (   n   )           v   k          (     n   -   1     )             )                 (   42   )                            =         bv     k   +   1            (     n   -   1     )       +         v   k          (     n   -   1     )                       (     1   -   b     )                   (   43   )                                
     Under the assumptions that x(n)=0 for n&lt;0, v*(n) is of the same value for D k  consecutive samples, and knowing that due to propagation of the input sequence through the delay line, then it can be seen that                  v     k   +   1            (   0   )                  =   0           (   44   )                          ⋮           (   45   )                   v     k   +   1            (     k   +   1     )                  =         v   k          (   k   )                       (     1   -   b     )               (   46   )                   v     k   +   1            (     k   +   2     )                  =         bv     k   +   1            (     k   +   1     )       +         v     k   +   1            (     k   +   1     )                       (     1   -   b     )                 (   47   )                            =           bv   k          (   k   )                       (     1   -   b     )       +         v     k   +   1            (     k   +   1     )                       (     1   -   b     )                   (   48   )                   v     k   +   1            (     k   +   1   +   N     )       =           b   N          (     1   -   b     )              v   k          (   0   )         +   …              +       (     1   -   b     )            v   k          (   N   )                   (   49   )                            =           b     N   -   1            (     1   -   b     )              v   k          (   1   )         +   …              +       (     1   -   b     )            v   k          (     N   -   1     )                     (   50   )                            =       v   k          (     k   +   N     )                 (   51   )                                
     Therefore, after k+N values,            v     k   +   1            (   n   )           v     k   +   1            (     n   -   1     )                              
     becomes unity most of the time. 
     Since I made many assumptions in establishing that K 0  is a good working bound, I have added some margin to account for values outside the range defined by K 0 . 
     Assuming the case of 5-bit input quantization, then the range of input levels can be said to be greater than or equal to 1 but less than or equal to 32 (i.e. 2 B ). If the Laguerre parameter b is 0.5, then K 0  is bounded by 55.42562584. For an L-stage Laguerre expansion, the number of full coefficient multiplies per output is L+2 in this case, where the {square root over (1+L −b 2 +L )} multiplication in the first element of the delay line is counted as a coefficient imultiply. The rest of the multiplications are simply binary shifts. 
     As an example, the 48-tap FIR implementation of the matched filter used in IS-95-A was examined with actual simulated random integer data ranging from 1 up to but not including 33. Note that since this data was not occurring in repetitions and was totally random, this constituted a severe test case for quantization with respect to the K 0  bound rather than the general K k  bound. The same data was passed through a Laguerre expansion with 28 stages. Two further simplifications to the Laguerre expansion were accomplished by (1) truncating the {square root over (1+L −b 2 +L )}={square root over (3/4+L )} factor to 0.866, and (2) quantizing the {v k } outputs to 32 levels ranging from −64 to 64 in steps of four (this range is needed for the margin necessary to account for values outside the K 0  range). The responses of the two filters were in near agreement. Moreover, the response of the Laguerre approximation died down quickly upon zero-excitation, implying that zero-input limit cycles are not a problem for this realization. It must be noted that neither the Laguerre {c k } coefficients nor the FIR coefficients were quantized for these simulations. 
     Thus, I have discovered a method by which Laguerre expansions have been used to effectively model linear phase FIR filters I have derived practical bounds on relevant internal quantization which has simplified the number of multiplications necessary for implementation. Implementation in software is straightforward, and well within the purview of those of ordinary skill in the art area to which the present invention pertains having the benefit of the understanding of the principles of the invention as set forth herein. Implementation in hardware is similarly straightforward, and can be accomplished by inputting the algorithms of the embodiment set forth herein into a conventional circuit design tool. 
     Although the present invention and its advantages have been described in detail, it should be understood that various changes, substitutions and alterations can be made herein without departing from the spirit and scope of the invention as defined by the appended claims.