US RE38374 E1 Abstract A method of training a recursive filter comprises updating recursive parameters of the filter with delta values computed from sampling of an error signal and obtaining derivative terms of the output signal with respect to the parameters. Adaptation using derivatives for FIR filters is known, but this technique was not available for IIR filters because of the unavailability of the derivative values. However, when it is realized that the derivative itself is recursive, a parameter derivative function is obtained which will produce derivative terms for updating the filter parameters with acceptable filter performance.
Claims(14) 1. A method of adapting a filter having a plurality of recursive filter parameters, said recursive filter effective for producing an output signal in response to receiving an input signal, the method comprising:
subtracting said output signal from a desired signal to produce an error signal;
producing a plurality of derivative functions, each of whose level is representative of a derivative of said output signal with respect to a particular recursive filter parameter; and
updating each of said recursive filter parameters based on said derivative functions and said error signal.
2. The method of
delaying for a period of time subsequent to said step of updating, in order to allow transient signals arising from said step of updating to subside; and
repeating above said steps;
whereby said recursive filter remains stable during the adapting thereof.
3. The method of
providing a test circuit which duplicates said filter, applying a constant input to said test circuit;
monitoring an output of said test circuit; and
measuring the time required for said test circuit output to remain stable within a user-defined window.
4. The method of
5. The method of
6. A method of adapting a filter having a plurality of recursive and non-recursive parameters, said filter effective for producing an output signal in response to receiving an input signal, the method comprising:
subtracting said output signal from a desired signal to produce an error signal;
producing a plurality of derivative functions, each of whose level is representative of a derivative of said output signal with respect to a particular recursive parameter; and
producing a plurality of derivative functions, each of whose level is representative of a derivative of said output signal with respect to a particular non-recursive parameter; and
updating each said recursive and non-recursive parameter based upon its corresponding derivative function and said error signal.
7. The method of
delaying for a period of time subsequent to said step of updating, in order to allow transient signals arising from said step of updating to subside; and
repeating above said steps;
whereby said filter remains stable during the adapting thereof.
8. The method of
9. The method of
where ΔP
_{i }is said delta-value for a an update value for one of said recursive and non-recursive parameters P_{i};error
_{n }is an error sample taken at a time t_{n}; D
_{n}(P_{i}) is a derivative function of said output signal y with respect to parameter P_{i}; and K is an adjustment factor.
10. The method of
where K
_{n }is an adjustment factor corresponding to time t_{n}.11. An adaptive recursive filter comprising:
input means for obtaining an input signal;
computing means, coupled to said input means, for producing an output signal, said computing means characterized by a plurality of recursive parameters; and
error means, coupled to said computing means, for comparing said output signal with a desired output signal;
derivative function means for producing a plurality of signals, each signal representative of a derivative of said output signal with respect to one of said recursive filter parameters;
update means, coupled to said error means and said derivative function means, for updating said plurality of recursive parameters.
12. The adaptive filter of
13. The adaptive circuit of
14. The adaptive filter of
Description The present invention relates generally to digital filter systems and more specifically to adaptive recursive filters. An adaptive signal processing system is a system that is capable of altering or adjusting its parameters in such a way that its behavior, through contact with its environment, changes to approximate a desired response. A common application is in the field of telephony where problems in acoustic echo cancellation, line echo cancellation and the like readily lend themselves to solutions based on adaptive signal processing techniques. Other fields of use include mechanical systems, radar, sonar, and biological systems. A commonly used architecture for implementing adaptive systems is the finite impulse response (FIR) filter. The algorithm commonly used for training this type of filter involves adjustment of the parameters based on the error and the derivative of the output with the parameters. This algorithm up until this point has not been available for the training of IIR filters due to the inability to determine the value of the derivatives. The following is a listing of the techniques used to overcome this deficiency in the training of IIR filters. For example, U.S. Pat. No. 5,638,439 relates to echo cancellation in a transmission line and teaches a method of updating filter coefficients by taking the absolute values of the coefficients and scaling the resulting vector. U.S. Pat. No. 5,418,849 is directed to a procedure for adapting a recursive filter using an algorithm based on a variation of Kalman's algorithm. The '849 patent modifies the Kalman algorithm by taking the decimation of the square error rather than the voice signal to achieve improved speed of convergence. U.S. Pat. No. 5,337,366 discloses in FIG. 1 a filter ( U.S. Pat. No. 5,335,020 describes a ghost canceling application used in video systems. The patent addresses the inherent instability of adapting IIR filters by providing for a step of determining the onset of such instabilities. The determination is accomplished by summing the weighting coefficients; if the sum exceeds 1 then the filter may be unstable, and appropriate action can be taken. U.S. Pat. No. 5,226,057 discloses a digital notch filter implemented using an adaptive IIR filter. The filter coefficients are updated in accordance with equations disclosed beginning at column 2, line 62 of the reference. U.S. Pat. No. 4,751,663 is directed to an IIR filter wherein a polynomial multiplies both the denominator and the numerator of the system transfer function to remove a z The present invention is a method of adapting a recursively defined control processing system that includes obtaining derivative terms of the output with respect to each of the filter coefficients which define a recursive filter. These derivative terms are combined with an error signal in a computation of the update values for the filter coefficients. Subsequent to one such cycle of updating the coefficients, resulting transients in the filter are allowed to settle prior to repeating a next cycle of updating. In a preferred embodiment, the error signal is sampled over a period of time so that a set of error samples is collected. The derivatives are obtained by use of derivative functions which are functions whose level is representative of the derivative of the filter's output with respect to the recursive parameters in question. By obtaining and using the derivatives of the output with respect to all parameters, the technique common to the training of FIR filters can be used. Since the technique for the development of these derivative functions is recursive, some restrictions must be placed on how often the parameters can be updated, and that sufficient time is allowed to pass after an update before new update data is collected. The technique just discussed for adjustment of the recursive parameters places no restriction on the use of non-recursive parameters, and so it is a natural process to combine the techniques used for adjustment of both parameters into one overall system. The discussion in this application will center around a sampled system and the use of z-transforms, but the techniques discussed should not be considered restricted to them. Further in accordance with the present invention, a control processing apparatus comprises means for receiving an input signal, means for filtering the input signal to produce an output signal, means for producing an error signal, and means for updating the parameters which characterize the filtering means. In accordance with the invention, the filter parameters implement a recursive element; and in an alternate embodiment of the invention, the filtering means further includes a non-recursive element. The updating means includes a derivative function generator for obtaining derivative terms of the output signal with respect to the filter parameters. The derivative terms are combined with the error terms to produce adjustment values to be subsequently combined with the parameters. The filter further includes a delay means for providing a delay period before the updating means proceeds with its next iteration. FIG. 1 shows a block diagram of an adaptive system using a combination filter with a derivative function generator for generating derivative functions for recursive parameters and flow graph for updating both recursive and non-recursive parameters. FIGS. 2A-2D show block diagrams of the filters common to the state of the art—recursive filter, non-recursive filter, combination filter, canonic form of combination filter. FIGS. 3 shows a basic recursive filter with a derivative function generator. FIGS. 4A-4B illustrate a combination filter with the derivative functions for all parameters, recursive and non-recursive. FIG. 5 is a block diagram of the training sequence used for training a recursive filter. FIG. 6 is a breakdown of block FIG. 7 is a Test Circuit used for the filter in FIGS. 4A-4B to determine how long to wait after parameter update before collecting new data. Referring to FIG. 1, the present invention describes a process so that the output of filter The adaptive system The filter process interval is the interval between each recalculation of the filter's output. The data collection interval is the interval between the collection of data used in determining how the value of the parameters should be changed. The update interval is the interval between changes of the values of the parameters used in the filter. The change of parameter values calculated during each data collection interval is averaged with the values collected during previous data collection intervals and is fed to update the parameters values during an update interval. The purpose of this averaging is to reduce how often the value of the parameters are changed and to permit any transients caused by their change to die out before any new adjustment data is collected. Turning for a moment to FIG. 2A, a filter Continuing with FIG. 1, the output signal y produced by filter As can be seen in FIG. 1, the system controller However, a problem is encountered when adapting a recursive filter by using derivatives. The problem lies in the computation of the derivative of the output with respect to the recursive parameters. Since the parameters are in the feedback path, they are hypersensitive to adjustment and the resulting filter has a tendency not to be stable. In accordance with the present invention, the problem is overcome when it is realized that the definition of the derivative is also recursive. Consider the recursive filter
Taking the derivative of each side with respect to the parameter a By making the following substitution in Equation (2): the result is:
The flow graph permitting the development v[n] from y[n] is shown in FIG. An aspect of the present invention addresses the need for the filter to stabilize after each update in order to allow the transients to be sufficiently attenuated. Before presenting this aspect of the invention, the discussion will now turn to an alternative method for producing the derivative function. Use of z-Transforms Returning to Equation (1), an alternate approach for obtaining the parameter derivative function is possible via the use of z-transforms. Manipulating Equation (1) to put it in the form a z-transform results in:
Since H(z)X(z) equals Y(z), Equation (6) can be written as:
Where V(z) is the z-transform of v[n] used in Equation (4). Since H(z) as defined by Equation (1) is:
the derivative of H(z) with respect to a and thus the value of G(z) is equal to: G(z) is the transfer function of Equation (4), thus proving the that the derivative function has the same definition regardless of the technique used to define it —i.e. by the use of z-transforms or by taking the derivative of the transfer equation itself. Next is a generalization of the results previously obtained to cover the general transfer equation: In this process, the derivative functions for both the recursive and non-recursive parameters will be defined. First, the derivative functions for recursive parameters will be determined. Equation (11) has the z-transfer function of: The transfer function of G(z) will be determined for a general a parameter a Using the definition of G(z), the value of G(z) can now be determined: This z-transform can be converted directly to the time domain as: for all k between 1 and N An alternate technique can be used to develop the derivative functions based on the rearrangement of the z-transfer function: Transforming this z-transfer function into the time domain leads to the following sequence of equations. By use of the following sequence all derivative functions can be defined with the use of only one recursive function. Next, is an explanation of a technique that will permit the development of a difference technique for generating y[n] and simultaneously develop all the derivative functions for the non-recursive parameters. To accomplish this objective it is necessary to re-arrange the following z-transfer equations. The second parts of equations (19) and (20) lead to the following set of recursive equations. By using the Equations (17), (18) and (21-23), the necessary information is at hand to draw a flow graph for developing all derivative functions required for training of the network. This flow graph is shown in FIGS. 4A and 4B. Thus, the derivative function generator Returning to FIG. 1, the system controller Where the parameters are updated by:
While K can be assigned an arbitrary positive constant value as is done in the L.M.S. algorithm, it can also be assigned a value that varies for each sample. Using the value calculated using the following equation means that the error will be exactly eliminated. The sum performed in Equation (27) is carried out over all parameters being adjusted (both recursive and non-recursive). The statement that the error will be exactly eliminated if K is set to a given value is based on the assumption that you are making the adjustment over a linear range. This assumption may not be valid since we are dealing with recursive function which have a very non-linear transfer function. The assumption of linearity is more likely to be true the smaller the change in parameter values are make in each parameter update interval. There are two problems that remain to be solved: 1) how long to wait after the parameters are updated before new parameter adjustment data can be collected; 2) how to collect and combine data from multiple error correction samples. The question of how long to wait is determined by the amount of time required by the system (both adaptive filter and derivative function generator) to stabilize. In fact this is the test that can be used; not on an experimental bases, but as a technique to be used to determine the delay between every parameter update and data collection. Since the filter is a synthetic network in which all parameters are known, the network can be duplicated. This second network shown by the test circuit in FIG. 7 is equivalent to the filter and derivative function generator it replaces shown in FIG. 4A and 4B. This second network can be used to determine when the derivative functions have reached their stable values; i.e. when the transients are sufficiently attenuated. To do this, a constant value is fed into the second network (see FIG. 7) so that the change of parameter values generates a step output. When the network receives a constant input, the stable level of output is: and INPUT is the value of the constant voltage supplied to the input of the network. A window of acceptable error in the value of the derivative function can be established. The operator can use the time required for the derivative function to reach stability (i.e. the output falls within a user-defined range of output levels deemed to be acceptable for a given application of the filter) as the time that system controller The second problem that needs to be solved is how to combine the data from multiple parameter update samples. The safest technique is just to average the Δa The overall technique that can be used for the training of a recursive filter is shown in FIG. where the symbol Error represents the error that occurred during this sample period. The value of j in the above equation is an empirically derived constant typically in the range of 10 to 1000 and has the effect of filtering out rapid fluctuations. The Average Error appearing on the right hand side of the equation is the old value being updated or replaced by to new value appearing on the left hand side. The ABS function in the above equation returns the absolute value of the value passed to it. The Average Error calculated using Equation (32) is tested in step The R sample period used in step Patent Citations
Referenced by
Classifications
Legal Events
Rotate |