I am currently prototyping a set of noise-cancelling headphones that utilize active EQ to modify the noise-cancelling signal, allowing the user to modify the frequencies that they hear or don't hear. I have been using biquad filters on an input signal from a microphone to play back a filtered signal in real time. Of course, the trouble with this within the context of noise-cancelling headphones is that the filters impose a phase change in the frequencies, and the inverted cancelling signal no longer lines up with the original sound signal.

I am curious if it is possible to create a stable, causal filter with a positively sloped phase response. Because if so, I would like to add such a filter in series with a highpass or lowpass filter (which have negatively-sloped phase responses) such that the phases add to a constant value. I know that it is impossible to do realtime zero-phase filtering, but what about realtime filtering where the phase at each frequency is, say, 360 degrees?

I tried creating an 'inverse' all pass filter where I switched the coefficients for the zeroes and poles of a normal all pass filter, which would have a theoretically positive phase response. But I quickly learned that this is an unstable filter and is impractical (I'm very new to DSP so this was not immediately obvious to me). So I'm wondering if there is any sort of filter that may have the effect I'm looking for, even if it delays the whole signal.

Is there possibly another solution I have not yet thought of? Maybe separating the signal into high and low frequencies and doing some sort of processing that way?

Any help is much appreciated, thanks!


Your Answer

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

Browse other questions tagged or ask your own question.