sosfilter: handle high order butter filters

Signed-off-by: Timofey Titovets <nefelim4ag@gmail.com>
This commit is contained in:
Timofey Titovets
2025-11-16 05:10:17 +01:00
committed by KevinOConnor
parent 900c908db8
commit a9cf02c412

View File

@@ -35,10 +35,10 @@ class DigitalFilter:
except: except:
raise cfg_error("DigitalFilter require the SciPy module") raise cfg_error("DigitalFilter require the SciPy module")
if highpass: if highpass:
self.filter_sections.append( self.filter_sections.extend(
self._butter(highpass, "highpass", highpass_order)) self._butter(highpass, "highpass", highpass_order))
if lowpass: if lowpass:
self.filter_sections.append( self.filter_sections.extend(
self._butter(lowpass, "lowpass", lowpass_order)) self._butter(lowpass, "lowpass", lowpass_order))
if notches is None: if notches is None:
notches = [] notches = []
@@ -50,7 +50,7 @@ class DigitalFilter:
def _butter(self, frequency, btype, order): def _butter(self, frequency, btype, order):
import scipy.signal as signal import scipy.signal as signal
return signal.butter(order, Wn=frequency, btype=btype, return signal.butter(order, Wn=frequency, btype=btype,
fs=self.sample_frequency, output='sos')[0] fs=self.sample_frequency, output='sos')
def _notch(self, freq, quality): def _notch(self, freq, quality):
import scipy.signal as signal import scipy.signal as signal