|
complex | cadd (complex x, complex y) |
|
complex | csub (complex x, complex y) |
|
complex | cmult (complex x, complex y) |
|
complex | cdiv (complex x, complex y) |
|
real | cmag (complex x) |
|
real | mycarg (complex x) |
|
complex | mycexp (real mag, real arg) |
|
int | r2c (real *in, complex *out, int len) |
|
int | c2r (complex *in, real *out, int len, int mode) |
|
int | bitrev (int i, int m) |
|
void | ffw (complex *w, int idir, int n) |
|
void | perm (complex *x, int m) |
|
void | permrev (complex *x, int m) |
|
void | permcpy (complex *x, complex *y, int m) |
|
void | permrevcpy (complex *x, complex *y, int m) |
|
void | fft1d (complex *x, complex *w, int idir, int n) |
|
void | fft (complex *x, complex *w, int m) |
|
void | fftrev (complex *x, complex *w, int m) |
|
void | ifft (complex *x, complex *w, int m) |
|
void | fftcpy (complex *x, complex *y, complex *w, int m) |
|
void | ifftcpy (complex *x, complex *y, complex *w, int m) |
|
void | fconv (complex *x, complex *h, complex *y, complex *wf, complex *wi, int m) |
|
void | fwconv (complex *x, complex *h, complex *y, int m) |
|
void | tconv (complex *x, int xlen, complex *h, int ylen, complex *y) |
|
void | printcvec (complex *x, int n) |
|
void | printrvec (real *x, int n) |
|
void | printbits (int n) |
|
int | rtols_prepare (filter *filt, complex *h, int hlen, int m) |
|
int | rtols_prepare_sigshare (filter *filt, complex *h, int hlen, complex *wf, complex *wi, complex **XX, int R, int m, int addout) |
|
int | rtols_prepare_filtshare (filter *filt, complex *wf, complex *wi, complex **HH, int R, int hlen, int m) |
|
int | rtols_filter (filter *filt, real *inbuf, real *outbuf) |
|
int | rtols_filter_sigshare (filter *filters, int nfilt, real *inbuf, real **outbuf, int outoffset) |
|
int | rtols_filter_update (filter *filt, complex *h, int hlen, int transition) |
|
int | rtols_finish (filter *filt, int len) |
|
int | rtols_restart (filter *filt) |
|
int | rtols_cleanup (filter *filt) |
|
void | ols (complex *x, int xlen, complex *h, int hlen, complex *y, int ylen, int m) |
|
int | tols (complex *x, int xlen, complex *h, int hlen, complex *y, int ylen, int m) |
|
time-partitioned OLS convolution, streaming mode.
Prepares the filtering by allocating internal memory of a filter and setting up the transformations. The input and output buffers are complex arrays inbuf and outbuf. Therefore, the streaming framework that calls trigger must call the appropriate conversion methods rtols_*2*(in, out, len). TODO: fix this to avoid this inner-loop conversion.
In the system, two internal i/o buffers of type complex are generated, one of size 2^m for the input data, and one of size 2^(m-1) for the output data.
- Parameters
-
filter | the structure that contains all information for filtering |
h | impulse response |
hlen | length of h |
m | ld of fft size used to partition the signals, note that input and output buffers are fftsize/2 |
- Returns
- error code <0 or 0
time-partitioned OLS convolution, streaming mode with shared resources for fft and filter transfer function.
Prepares the filtering by allocating internal memory of a filter and setting up the transformations. The input and output buffers are complex arrays inbuf and outbuf. Therefore, the streaming framework that calls trigger must call the appropriate conversion methods rtols_*2*(in, out, len). TODO: fix this to avoid this inner-loop conversion.
In the system, two internal i/o buffers of type complex are generated, one of size 2^m for the input data, and one of size 2^(m-1) for the output data.
- Parameters
-
filter | the structure that contains all information for filtering |
wf | forward fft structure |
wi | inverse fft structure |
HH | filter transfer functions (frame spectra), size R x 2^m |
R | number of filter frames |
hlen | original length of filter impulse response |
m | ld of fft size used to partition the signals, note that input and output buffers are fftsize/2 |
- Returns
- error code <0 or 0
time-partitioned OLS convolution, streaming mode with shared resources for fft and input buffer. Sharing the input buffer requires that the rtols_filter_sigshare method be used instead of rtols_filter, which will return -1 and ignore the call.
Prepares the filtering by allocating internal memory of a filter and setting up the transformations. The input and output buffers are complex arrays inbuf and outbuf. Therefore, the streaming framework that calls trigger must call the appropriate conversion methods rtols_*2*(in, out, len). TODO: fix this to avoid this inner-loop conversion.
In the system, two internal i/o buffers of type complex are generated, one of size 2^m for the input data, and one of size 2^(m-1) for the output data.
- Parameters
-
filter | the structure that contains all information for filtering |
h | impulse response |
hlen | length of h |
wf | forward fft structure |
wi | inverse fft structure |
XX | circular frame spectrum buffer of size R x 2^m, R is checked if it is compatible with hlen: R = ceil(hlen * 2^(-m+1)), if not, -2 as the error code is returned. |
m | ld of fft size used to partition the signals, note that input and output buffers are fftsize/2 |
addout | 0 if outgoing signals overwrite the output buffer, 1 if they are added. |
- Returns
- error code <0 or 0