You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
64 lines
2.3 KiB
64 lines
2.3 KiB
.TH DSP 3
|
|
.SH NAME
|
|
initdp, freedp, dotprod, sumsq, peakval -\ SIMD-assisted
|
|
digital signal processing primitives
|
|
.SH SYNOPSIS
|
|
.nf
|
|
.ft
|
|
#include "fec.h"
|
|
|
|
void *initdp(signed short *coeffs,int len);
|
|
long dotprod(void *p,signed short *a);
|
|
void freedp(void *p);
|
|
|
|
unsigned long long sumsq(signed short *in,int cnt);
|
|
|
|
int peakval(signed short *b,int cnt);
|
|
|
|
.SH DESCRIPTION
|
|
These functions provide several basic primitives useful in digital
|
|
signal processing (DSP), especially in modems. The \fBinitdp\fR,
|
|
\fBdotprod\fR and \fBfreedp\fR functions implement an integer dot
|
|
product useful in correlation and filtering operations on signed
|
|
16-bit integers. \fBsumsq\fR computes the sum
|
|
of the squares of an array of signed 16-bit integers,
|
|
useful for measuring the energy of a signal. \fBpeakval\fR returns the
|
|
absolute value of the largest magitude element in the input array,
|
|
useful for scaling a signal's amplitude.
|
|
|
|
Each function uses IA32 or PowerPC Altivec instructions when
|
|
available; otherwise, a portable C version is used.
|
|
|
|
.SH USAGE
|
|
To create a FIR filter or correlator, call \fBinitdp\fR with the
|
|
coefficients in \fBcoeff\fR and their number in \fBlen\fR. This
|
|
creates the appropriate data structures and returns a handle.
|
|
|
|
To compute a dot product, pass the handle from \fBinitdp\fR and the
|
|
input array to \fBdotprod\fR. No length field is needed as the number
|
|
of samples will be taken from the \fBlen\fR parameter originally given
|
|
to \fBinitdp\fR. There must be at least as many samples in the input
|
|
array as there were coefficients passed to \fBinitdp\fR.
|
|
|
|
When the filter or correlator is no longer needed, the data structures
|
|
may be freed by passing the handle to \fBfreedp\fR.
|
|
|
|
The user is responsible for scaling the inputs to \fBinitdp\fR and
|
|
\fBdotprod\fR, as the 32-bit result from \fBdotprod\fR will silently
|
|
wrap around in the event of overflow.
|
|
|
|
To compute the sum of the squares of an array of signed 16-bit
|
|
integers, use sumsq\fR. This returns a 64 bit sum.
|
|
|
|
\fBpeakval\fR computes the absolute value of each 16-bit element in
|
|
the input array and returns the largest.
|
|
|
|
.SH RETURN VALUES
|
|
|
|
\fBinitdp\fR returns a handle that points to a control block, or NULL in
|
|
the event of an error (such as a memory allocation failure). \fBsumsq\fR
|
|
and \fBpeakval\fR have no error returns.
|
|
|
|
.SH AUTHOR and COPYRIGHT
|
|
Phil Karn, KA9Q (karn@ka9q.net)
|