1
$\begingroup$

I'm searching for a an algorithm or an idea of implementation. I need to filter a signal in real time, and want to change the length of it (number of taps) in order to change the delay.

  • In low signal environment I want a high order filter and care less about delay
  • In high signal environment I want a low order filter in order to minimize the delay.

I've tried to search "variable length filter..." on google but all of the results were versions of the LMS algorithm, but I don't have a "clean noise" reference signal which I can use.

Have anyone heard of something like this? Thanks :)

$\endgroup$
2
$\begingroup$

One possible implementation would be to run two (or more) different order filters in parallel, and use a mixer to blend them by ramping the gains up and down depending on your selection criteria.

$\endgroup$
1
$\begingroup$

I would use one delay line for both filters. Of course the delay line must be chosen according to the filter with the highest order. Depending on the SNR (or whatever your criterion is) you can switch between two sets of filter coefficients. For the lower order filter you will get some zero coefficients, so for an efficient implementation you may want to avoid the unnecessary multiplications and additions with zeros. If necessary you can also implement a gradual change from one set of filter coefficients to the other. You can do this by computing the difference between the two sets of coefficients and by adding or subtracting a fraction of this difference to the current coefficients in each time step.

$\endgroup$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.