dsp/lib/bq.py
2015-10-18 23:06:39 -07:00

36 lines
1.1 KiB
Python

import numpy as np
import scipy.signal as sig
from .util import *
bq_run = lambda bq, xs: sig.lfilter(*bq, x=xs, axis=0)
nf = lambda t, f, g, bw, mg: (f, t(toA(g), toQ(bw)), mg)
LP1 = lambda A, Q: ((0,1),(1,1))
HP1 = lambda A, Q: ((1,0),(1,1))
LS1 = lambda A, Q: ((1,A),(1,1/A))
HS1 = lambda A, Q: ((A,1),(1/A,1))
# a always gets divided by A instead of multiplied
# b1 and a1 always /= Q
LP2 = lambda A, Q: ((0, 0, 1),
(1, 1/Q, 1))
HP2 = lambda A, Q: ((1, 0, 0),
(1, 1/Q, 1))
PE2 = lambda A, Q: ((1, A/Q, 1),
(1, 1/A/Q, 1))
AP2 = lambda A, Q: ((1, 1/Q, 1),
(1, 1/Q, 1))
BP2a= lambda A, Q: ((0, -A/Q, 0),
(1, 1/A/Q, 1))
BP2b= lambda A, Q: ((0,-A*A/Q, 0),
(1, 1/Q, 1))
NO2 = lambda A, Q: ((1, 0, 1),
(1, 1/Q, 1))
LS2 = lambda A, Q: ((1, np.sqrt(A)/Q, A),
(1, 1/np.sqrt(A)/Q, 1/A))
HS2 = lambda A, Q: ((A, np.sqrt(A)/Q, 1),
(1/A, 1/np.sqrt(A)/Q, 1))