Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
DSP(3)			    Library Functions Manual			  DSP(3)

NAME
     initdp, freedp, dotprod, sumsq, peakval - SIMD-assisted digital signal pro-
     cessing primitives

SYNOPSIS
     #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);

DESCRIPTION
     These  functions  provide several basic primitives useful in digital signal
     processing (DSP), especially in modems.  The  initdp,  dotprod  and  freedp
     functions	implement  an integer dot product useful in correlation and fil-
     tering operations on signed 16-bit integers. sumsq computes the sum of  the
     squares of an array of signed 16-bit integers, useful for measuring the en-
     ergy  of  a signal. peakval returns the absolute value of the largest magi-
     tude 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.

USAGE
     To  create a FIR filter or correlator, call initdp with the coefficients in
     coeff and their number in len.  This creates the  appropriate  data  struc-
     tures and returns a handle.

     To  compute  a dot product, pass the handle from initdp and the input array
     to dotprod. No length field is needed as the  number  of  samples	will  be
     taken  from  the len parameter originally given to initdp. There must be at
     least as many samples in the input array as there were coefficients  passed
     to initdp.

     When  the filter or correlator is no longer needed, the data structures may
     be freed by passing the handle to freedp.

     The user is responsible for scaling the inputs to initdp  and  dotprod,  as
     the  32-bit  result  from dotprod 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. This returns a 64 bit sum.

     peakval computes the absolute value of each 16-bit element in the input ar-
     ray and returns the largest.

RETURN VALUES
     initdp  returns  a  handle  that  points to a control block, or NULL in the
     event of an error (such as a memory allocation failure). sumsq and  peakval
     have no error returns.

AUTHOR and COPYRIGHT
     Phil Karn, KA9Q (karn@ka9q.net)

									  DSP(3)

Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=dsp&sektion=3&manpath=FreeBSD+Ports+15.1.quarterly>

home | help