Some markup improvements

This commit is contained in:
Anne de Jong 2021-04-22 12:10:42 +02:00
parent 4e9f975aed
commit e268a55680

View File

@ -25,9 +25,10 @@ y[n] = 1/ba[3] * ( ba[0] * x[n] + ba[1] * x[n-1] + ba[2] * x[n-2] +
__all__ = ['peaking', 'biquadTF', 'notch', 'lowpass', 'highpass',
'highshelve', 'lowshelve']
from scipy.signal import sosfreqz
from numpy import array, cos, pi, sin, sqrt
from scipy.interpolate import interp1d
from numpy import sin, cos, sqrt, pi, array
from scipy.signal import sosfreqz
def peaking(fs, f0, Q, gain):
"""
@ -51,6 +52,7 @@ def peaking(fs, f0, Q, gain):
return array([b0/a0, b1/a0, b2/a0, a0/a0, a1/a0, a2/a0])
def notch(fs, f0, Q):
"""
Notch filter
@ -70,6 +72,7 @@ def notch(fs, f0, Q):
a2 = 1 - alpha
return array([b0/a0, b1/a0, b2/a0, a0/a0, a1/a0, a2/a0])
def lowpass(fs, f0, Q):
"""
Second order low pass filter
@ -89,6 +92,7 @@ def lowpass(fs, f0, Q):
a2 = 1 - alpha
return array([b0/a0, b1/a0, b2/a0, a0/a0, a1/a0, a2/a0])
def highpass(fs, f0, Q):
"""
Second order high pass filter
@ -131,6 +135,7 @@ def highshelve(fs, f0, Q, gain):
a2 = (A+1) - (A-1)*cos(w0) - 2*sqrt(A)*alpha
return array([b0/a0, b1/a0, b2/a0, a0/a0, a1/a0, a2/a0])
def lowshelve(fs, f0, Q, gain):
"""
Low shelving filter
@ -152,6 +157,7 @@ def lowshelve(fs, f0, Q, gain):
a2 = (A+1) + (A-1)*cos(w0) - 2*sqrt(A)*alpha
return array([b0/a0, b1/a0, b2/a0, a0/a0, a1/a0, a2/a0])
def biquadTF(fs, freq, ba):
"""
Computes the transfer function of the biquad.
@ -168,5 +174,3 @@ def biquadTF(fs, freq, ba):
freq2, h = sosfreqz(ba, worN=freq, fs=fs)
interpolator = interp1d(freq2, h, kind='quadratic')
return interpolator(freq)