1
$\begingroup$

While IIR notch filters are attractive, I need to retain phase linearity at the filter output. I imagine that it's possible to use a standard IIR notch filter: https://www.researchgate.net/publication/224174145_A_Complex_Adaptive_Notch_Filter followed by some form of phase equalization. An alternative would be an FIR filter with conjugate symmetric coefficients. I am unaware of any FIR designs in the literature explicitly for a single complex tone.

Any thoughts on the best way forward?

$\endgroup$
0
$\begingroup$

I might consider doing a complex modulation of the frequency you want to notch down (or up) to 0 Hz. Then run your favorite deep DC blocker (plus phase adjustment if needed). Then complex remodulate the result back to the original unshifted spectrum.

DC block: For non real-time, just subtract the entire signal’s average. Or a long (weighted?) moving average if you can tolerate the latency (Rick Lyons has some notes on this technique).

$\endgroup$
  • $\begingroup$ That may be OK, but this is supposed to work continually in a closed loop manner. Seems like a lot of downshifting and upshifting of blocks of samples. Maybe there's a way to make that more efficient. Irrespective of that, how would you update/track the time-varying frequency for the notch? I have seen LMS type update equations but don't know where they come from... $\endgroup$ – rhz Sep 4 at 0:02
0
$\begingroup$

The simplest solution is probably window design method FIR filter. Even though literature mostly only tells about designing lowpass filter, window design method is actually capable of creating any arbitrary frequency response FIR filter. Here is a reference Arbitray Frequency Response.

$\endgroup$
  • $\begingroup$ Note that the question is about adaptive notch filters. $\endgroup$ – Matt L. Sep 2 at 7:54
  • $\begingroup$ @MattL. I thought it is similar. $\endgroup$ – mfcc64 Sep 2 at 15:13

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.