Exposed sweep to Python
This commit is contained in:
parent
c748e6cb75
commit
1a85b60d85
@ -65,7 +65,9 @@ cdef extern from "numpy/arrayobject.h":
|
|||||||
cdef extern from "lasp_python.h":
|
cdef extern from "lasp_python.h":
|
||||||
object dmat_to_ndarray(dmat*,bint transfer_ownership)
|
object dmat_to_ndarray(dmat*,bint transfer_ownership)
|
||||||
|
|
||||||
__all__ = ['AvPowerSpectra', 'SosFilterBank', 'FilterBank']
|
__all__ = ['AvPowerSpectra', 'SosFilterBank', 'FilterBank', 'Siggen',
|
||||||
|
'sweep_flag_forward', 'sweep_flag_backward', 'sweep_flag_linear',
|
||||||
|
'sweep_flag_exponential', 'sweep_flag_hyperbolic']
|
||||||
|
|
||||||
setTracerLevel(15)
|
setTracerLevel(15)
|
||||||
cdef extern from "cblas.h":
|
cdef extern from "cblas.h":
|
||||||
@ -523,13 +525,27 @@ cdef class SPLowpass:
|
|||||||
|
|
||||||
cdef extern from "lasp_siggen.h":
|
cdef extern from "lasp_siggen.h":
|
||||||
ctypedef struct c_Siggen "Siggen"
|
ctypedef struct c_Siggen "Siggen"
|
||||||
|
us SWEEP_FLAG_FORWARD, SWEEP_FLAG_BACKWARD, SWEEP_FLAG_LINEAR
|
||||||
|
us SWEEP_FLAG_EXPONENTIAL,SWEEP_FLAG_HYPERBOLIC
|
||||||
|
|
||||||
c_Siggen* Siggen_Whitenoise_create(d fs, d level_dB)
|
c_Siggen* Siggen_Whitenoise_create(d fs, d level_dB)
|
||||||
c_Siggen* Siggen_Sinewave_create(d fs, d freq, d level_dB)
|
c_Siggen* Siggen_Sinewave_create(d fs, d freq, d level_dB)
|
||||||
|
c_Siggen* Siggen_Sweep_create(d fs, d fl,
|
||||||
|
d fu, d Ts,us sweep_flags,
|
||||||
|
d level_dB)
|
||||||
void Siggen_genSignal(c_Siggen*, vd* samples) nogil
|
void Siggen_genSignal(c_Siggen*, vd* samples) nogil
|
||||||
void Siggen_free(c_Siggen*)
|
void Siggen_free(c_Siggen*)
|
||||||
|
|
||||||
|
# Sweep flags
|
||||||
|
sweep_flag_forward = SWEEP_FLAG_FORWARD
|
||||||
|
sweep_flag_backward = SWEEP_FLAG_BACKWARD
|
||||||
|
|
||||||
|
sweep_flag_linear = SWEEP_FLAG_LINEAR
|
||||||
|
sweep_flag_exponential = SWEEP_FLAG_EXPONENTIAL
|
||||||
|
sweep_flag_hyperbolic = SWEEP_FLAG_HYPERBOLIC
|
||||||
|
|
||||||
cdef class Siggen:
|
cdef class Siggen:
|
||||||
|
|
||||||
cdef c_Siggen *_siggen
|
cdef c_Siggen *_siggen
|
||||||
|
|
||||||
def __cinit__(self):
|
def __cinit__(self):
|
||||||
@ -570,3 +586,17 @@ cdef class Siggen:
|
|||||||
siggen = Siggen()
|
siggen = Siggen()
|
||||||
siggen._siggen = c_siggen
|
siggen._siggen = c_siggen
|
||||||
return siggen
|
return siggen
|
||||||
|
|
||||||
|
@staticmethod
|
||||||
|
def sweep(d fs, d fl, d fu, d Ts,us sweep_flags, d level_dB):
|
||||||
|
cdef c_Siggen* c_siggen = Siggen_Sweep_create(fs,
|
||||||
|
fl,
|
||||||
|
fu,
|
||||||
|
Ts,
|
||||||
|
sweep_flags,
|
||||||
|
level_dB)
|
||||||
|
if c_siggen == NULL:
|
||||||
|
raise ValueError('Failed creating signal generator')
|
||||||
|
siggen = Siggen()
|
||||||
|
siggen._siggen = c_siggen
|
||||||
|
return siggen
|
||||||
|
Loading…
Reference in New Issue
Block a user