diff --git a/README.md b/README.md index 1742454..6aabad9 100644 --- a/README.md +++ b/README.md @@ -189,7 +189,7 @@ Internally, a sine and cosine wave is generated to perform this function, and th shift_addition_cc -Operation is the same as with `shift_math_cc`. +Operation is the same as for `shift_math_cc`. Internally, this function uses trigonometric addition formulas to generate sine and cosine, which is a bit faster. (About 4 times on the machine I have tested it on.) @@ -203,6 +203,20 @@ Operation is the same as with `shift_math_cc`. Internally, this function uses a look-up table (LUT) to recall the values of the sine function (for the first quadrant). The higher the table size is, the smaller the phase error is. + shift_addfast_cc + +Operation is the same as for `shift_math_cc`. + +Internally, this function uses a NEON-accelerated algorithm on capable systems, so it is advised to use this one on ARM boards. + + shift_unroll_cc + +Operation is the same as for `shift_math_cc`. + +This uses a modified algoritm that first stores a vector of sine and cosine values for given phase differences. + +The loop in this function unrolls quite well if compiled on a PC. It was the fastest one on an i7 CPU during the tests. + decimating_shift_addition_cc [decimation] It shifts the input signal in the frequency domain, and also decimates it, without filtering. It will be useful as a part of the FFT channelizer implementation (to be done). @@ -347,6 +361,12 @@ The actual number of padding samples can be determined by running `cat csdr.c | It exchanges the first and second part of the FFT vector, to prepare it for the waterfall/spectrum display. It should operate on the data output from `logpower_cf`. + setbuf + +If the environment variable `CSDR_DYNAMIC_BUFSIZE_ON` is set to 1, then you can use this command to set the input buffer size for the next `csdr` process in the chain. + + + #### Control via pipes Some parameters can be changed while the `csdr` process is running. To achieve this, some `csdr` functions have special parameters. You have to supply a fifo previously created by the `mkfifo` command. Processing will only start after the first control command has been received by `csdr` over the FIFO.