An adaptive nonlinear filtering system implementing a nonlinear filter function having N filter taps, the system comprising: a first interface configured to receive an input signal; a second interface configured to receive a target signal; an adaptive filter module including: a plurality of N memory banks, each corresponding to one of the N filter taps, wherein each of the memory banks stores a set of coefficient vectors that includes a plurality of S entries, a thermometer code address generator coupled to the first interface and configured to divide a possible range of values of the input signal into S subranges, wherein the number of subranges S depends on a granularity of the nonlinear function, and a feedback loop, both the feedback loop and thermometer code address generator coupled to the memory banks, wherein the adaptive filter module is configured to: generate, by the thermometer code address generator, relative location information pertaining to a relative location of a value of the input signal within said possible range, wherein the relative location information is used to select an appropriate coefficient vector from each of the memory banks; determine an input dependent filter parameter based at least in part on the relative location information; generate, using the appropriate coefficient vector from the memory banks, an output signal based at least in part on the input dependent filter parameter; and feed back, by the feedback loop, a feedback signal to update the memory banks that is generated based at least in part on the output signal and the target signal. a first interface configured to receive an input signal; a second interface configured to receive a target signal; an adaptive filter module including: a plurality of N memory banks, each corresponding to one of the N filter taps, wherein each of the memory banks stores a set of coefficient vectors that includes a plurality of S entries, a thermometer code address generator coupled to the first interface and configured to divide a possible range of values of the input signal into S subranges, wherein the number of subranges S depends on a granularity of the nonlinear function, and a feedback loop, both the feedback loop and thermometer code address generator coupled to the memory banks, a plurality of N memory banks, each corresponding to one of the N filter taps, wherein each of the memory banks stores a set of coefficient vectors that includes a plurality of S entries, a thermometer code address generator coupled to the first interface and configured to divide a possible range of values of the input signal into S subranges, wherein the number of subranges S depends on a granularity of the nonlinear function, and a feedback loop, both the feedback loop and thermometer code address generator coupled to the memory banks, wherein the adaptive filter module is configured to: generate, by the thermometer code address generator, relative location information pertaining to a relative location of a value of the input signal within said possible range, wherein the relative location information is used to select an appropriate coefficient vector from each of the memory banks; determine an input dependent filter parameter based at least in part on the relative location information; generate, using the appropriate coefficient vector from the memory banks, an output signal based at least in part on the input dependent filter parameter; and feed back, by the feedback loop, a feedback signal to update the memory banks that is generated based at least in part on the output signal and the target signal. generate, by the thermometer code address generator, relative location information pertaining to a relative location of a value of the input signal within said possible range, wherein the relative location information is used to select an appropriate coefficient vector from each of the memory banks; determine an input dependent filter parameter based at least in part on the relative location information; generate, using the appropriate coefficient vector from the memory banks, an output signal based at least in part on the input dependent filter parameter; and feed back, by the feedback loop, a feedback signal to update the memory banks that is generated based at least in part on the output signal and the target signal.