You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
The current alternative is to convert the cascade of biquads (2nd order IIR filters) to a high order filter and then use https://pytorch.org/audio/main/generated/torchaudio.functional.lfilter.html to apply the filter. Unfortunately this only works to a certain order (order<6). The following code illustrates the stability issues faced using lfilter with a high order filter. Hence, an option for a cascaded filtering to maintain stability would be of great advantage.
🚀 The feature
A pytorch differentiable
sosfilt()
implementation like in https://docs.scipy.org/doc/scipy/reference/generated/scipy.signal.sosfilt.html, will allow for filtering data along one dimension using cascaded second-order sections. This should allow for a better support of high order stable filtering.Motivation, pitch
The current alternative is to convert the cascade of biquads (2nd order IIR filters) to a high order filter and then use https://pytorch.org/audio/main/generated/torchaudio.functional.lfilter.html to apply the filter. Unfortunately this only works to a certain order (order<6). The following code illustrates the stability issues faced using
lfilter
with a high order filter. Hence, an option for a cascaded filtering to maintain stability would be of great advantage.This feature would allow users to apply high order filtering (order>6) within loss functions and training loops.
Alternatives
The current alternative since no filtering based on a cascade of biquads is available are:
lfilter
instead ofsosfilt()
.Additional context
https://dsp.stackexchange.com/questions/31457/multiple-biquads-vs-higher-order-filtering
The text was updated successfully, but these errors were encountered: