mirror of
https://github.com/TheAlgorithms/Python.git
synced 2025-03-11 17:19:48 +00:00
Merge 9977d00baf12229ba04e90b9b2de494f0002cef5 into 338cbafe0d5b07d57f83060ea0f9ba3a6c1155e7
This commit is contained in:
commit
a6eb3954f5
@ -10,6 +10,23 @@ Alternatively you can use scipy.signal.butter, which should yield the same resul
|
||||
"""
|
||||
|
||||
|
||||
# All calls to filter creators must have keyword arguments
|
||||
def safe_checks(filter_creator):
|
||||
def safe_filter_creator(**kwargs):
|
||||
if not isinstance(kwargs["frequency"], int) or kwargs["frequency"] <= 0:
|
||||
raise ValueError("Frequency must be a positive integer.")
|
||||
if not isinstance(kwargs["samplerate"], int) or kwargs["samplerate"] <= 0:
|
||||
raise ValueError("Samplerate must be a positive integer.")
|
||||
if not (0 < kwargs["frequency"] < kwargs["samplerate"] / 2):
|
||||
raise ValueError("Frequency must be less than half of the samplerate.")
|
||||
if kwargs["q_factor"] <= 0:
|
||||
raise ValueError("Q factor must be positive.")
|
||||
return filter_creator(**kwargs)
|
||||
|
||||
return safe_filter_creator
|
||||
|
||||
|
||||
@safe_checks
|
||||
def make_lowpass(
|
||||
frequency: int,
|
||||
samplerate: int,
|
||||
@ -40,6 +57,7 @@ def make_lowpass(
|
||||
return filt
|
||||
|
||||
|
||||
@safe_checks
|
||||
def make_highpass(
|
||||
frequency: int,
|
||||
samplerate: int,
|
||||
@ -70,6 +88,7 @@ def make_highpass(
|
||||
return filt
|
||||
|
||||
|
||||
@safe_checks
|
||||
def make_bandpass(
|
||||
frequency: int,
|
||||
samplerate: int,
|
||||
@ -101,6 +120,7 @@ def make_bandpass(
|
||||
return filt
|
||||
|
||||
|
||||
@safe_checks
|
||||
def make_allpass(
|
||||
frequency: int,
|
||||
samplerate: int,
|
||||
@ -128,6 +148,7 @@ def make_allpass(
|
||||
return filt
|
||||
|
||||
|
||||
@safe_checks
|
||||
def make_peak(
|
||||
frequency: int,
|
||||
samplerate: int,
|
||||
@ -160,6 +181,7 @@ def make_peak(
|
||||
return filt
|
||||
|
||||
|
||||
@safe_checks
|
||||
def make_lowshelf(
|
||||
frequency: int,
|
||||
samplerate: int,
|
||||
@ -197,6 +219,7 @@ def make_lowshelf(
|
||||
return filt
|
||||
|
||||
|
||||
@safe_checks
|
||||
def make_highshelf(
|
||||
frequency: int,
|
||||
samplerate: int,
|
||||
|
Loading…
x
Reference in New Issue
Block a user