CXML
signal-processing
A library of signal processing routines
Description
The signal processing routines are a part of the Compaq Extended Math
Library (CXML). This library provides subprograms for fast Fourier
transforms, convolutions and correlations, and digital filters.
A comprehensive set of Fourier transform functions is provided covering the
following options:
• One, two or three dimensions
• Forward or inverse direction
• Multiple 1D Fourier transforms
The convolution and correlation operations complement the signal processing
abilities of the Fourier transform. Both periodic and non-periodic versions
are supported.
The signal processing library also includes a non-recursive filter that can
be used in four ways:
• Lowpass
• Highpass
• Bandpass
• Bandstop (notch)
All FFT, convolution, and correlation routines are available in real and
complex versions, in both single and double precision. The filtering
routines are only available for single precision, real data.
The include files CXMLDEF.FOR and cxmldef.h contain declarations of
structures used by the FFT routines.
The following routines are provided for the One-Step Fourier Transform
functions. The Subprogram Name is the name of the manual page containing
documentation on the subprogram.
Name Operation
sfft
Calculates, in single-precision arithmetic, the
fast forward or inverse Fourier transform of one-
dimensional, real data.
dfft
Calculates, in double-precision arithmetic, the
fast forward or inverse Fourier transform of one-
dimensional, real data.
cfft
Calculates, in single-precision arithmetic, the
fast forward or inverse Fourier transform of one-
dimensional, complex data.
zfft
Calculates, in double-precision arithmetic, the
fast forward or inverse Fourier transform of one-
dimensional, complex data.
sfft_2d
Calculates, in single-precision arithmetic, the
fast forward or inverse Fourier transform of two-
dimensional, real data.
dfft_2d
Calculates, in double-precision arithmetic, the
fast forward or inverse Fourier transform of two-
dimensional, real data.
cfft_2d
Calculates, in single-precision arithmetic, the
fast forward or inverse Fourier transform of two-
dimensional, complex data.
zfft_2d
Calculates, in double-precision arithmetic, the
fast forward or inverse Fourier transform of two-
dimensional, complex data.
sfft_3d
Calculates, in single-precision arithmetic, the
fast forward or inverse Fourier transform of
three-dimensional, real data.
dfft_3d
Calculates, in double-precision arithmetic, the
fast forward or inverse Fourier transform of
three-dimensional, real data.
cfft_3d
Calculates, in single-precision arithmetic, the
fast forward or inverse Fourier transform of
three-dimensional, complex data.
zfft_3d
Calculates, in double-precision arithmetic, the
fast forward or inverse Fourier transform of
three-dimensional, complex data.
sfft_grp
Calculates, in single-precision arithmetic, the
fast forward or inverse Fourier transform of a
group of real data.
dfft_grp
Calculates, in double-precision arithmetic, the
fast forward or inverse Fourier transform of a
group of real data.
cfft_grp
Calculates, in single-precision arithmetic, the
fast forward or inverse Fourier transform of a
group of complex data.
zfft_grp
Calculates, in double-precision arithmetic, the
fast forward or inverse Fourier transform of a
group of complex data.
The following routines are provided for the Three-Step Fourier Transform
functions. The Subprogram Name is the name of the manual page containing
documentation on the subprogram.
Name Operation
sfft_init
Calculates internal data structures.
sfft_apply
Applies SFFT_INIT's internal data structure to
calculate, in single-precision arithmetic, the
fast forward or inverse Fourier transform of one-
dimensional, real data.
sfft_exit
Deallocates the virtual memory allocated by
SFFT_INIT.
dfft_init
Calculates internal data structures.
dfft_apply
Applies DFFT_INIT's internal data structure to
calculate, in double-precision arithmetic, the
fast forward or inverse Fourier transform of one-
dimensional, real data.
dfft_exit
Deallocates the virtual memory allocated by
DFFT_INIT.
cfft_init
Calculates internal data structures.
cfft_apply
Applies CFFT_INIT's internal data structure to
calculate, in single-precision arithmetic, the
fast forward or inverse Fourier transform of one-
dimensional, complex data.
cfft_exit
Deallocates the virtual memory allocated by
CFFT_INIT.
zfft_init
Calculates internal data structures.
zfft_apply
Applies ZFFT_INIT's internal data structure to
calculate, in double-precision arithmetic, the
fast forward or inverse Fourier transform of one-
dimensional, complex data.
zfft_exit
Deallocates the virtual memory allocated by
ZFFT_INIT.
sfft_init_2d
Calculates internal data structures.
sfft_apply_2d
Applies SFFT_INIT_2D's internal data structure to
calculate, in single-precision arithmetic, the
fast forward or inverse Fourier transform of two-
dimensional, real data.
sfft_exit_2d
Deallocates the virtual memory allocated by
SFFT_INIT_2D.
dfft_init_2d
Calculates internal data structures.
dfft_apply_2d
Applies DFFT_INIT_2D's internal data structure to
calculate, in double-precision arithmetic, the
fast forward or inverse Fourier transform of two-
dimensional, real data.
dfft_exit_2d
Deallocates the virtual memory allocated by
DFFT_INIT_2D.
cfft_init_2d
Calculates internal data structures.
cfft_apply_2d
Applies CFFT_INIT_2D's internal data structure to
calculate, in single-precision arithmetic, the
fast forward or inverse Fourier transform of two-
dimensional, complex data.
cfft_exit_2d
Deallocates the virtual memory allocated by
CFFT_INIT_2D.
zfft_init_2d
Calculates internal data structures.
zfft_apply_2d
Applies ZFFT_INIT_2D's internal data structure to
calculate, in double-precision arithmetic, the
fast forward or inverse Fourier transform of two-
dimensional, complex data.
zfft_exit_2d
Deallocates the virtual memory allocated by
ZFFT_INIT_2D.
sfft_init_3d
Calculates internal data structures.
sfft_apply_3d
Applies SFFT_INIT_3D's internal data structure to
calculate, in single-precision arithmetic, the
fast forward or inverse Fourier transform of
three-dimensional, real data.
sfft_exit_3d
Deallocates the virtual memory allocated by
SFFT_INIT_3D.
dfft_init_3d
Calculates internal data structures.
dfft_apply_3d
Applies DFFT_INIT_3D's internal data structure to
calculate, in double-precision arithmetic, the
fast forward or inverse Fourier transform of
three-dimensional, real data.
dfft_exit_3d
Deallocates the virtual memory allocated by
DFFT_INIT_3D.
cfft_init_3d
Calculates internal data structures.
cfft_apply_3d
Applies CFFT_INIT_3D's internal data structure to
calculate, in single-precision arithmetic, the
fast forward or inverse Fourier transform of
three-dimensional, complex data.
cfft_exit_3d
Deallocates the virtual memory allocated by
CFFT_INIT_3D.
zfft_init_3d
Calculates internal data structures.
zfft_apply_3d
Applies ZFFT_INIT_3D's internal data structure to
calculate, in double-precision arithmetic, the
fast forward or inverse Fourier transform of
three-dimensional, complex data.
zfft_exit_3d
Deallocates the virtual memory allocated by
ZFFT_INIT_3D.
sfft_init_grp
Calculates internal data structures.
sfft_apply_grp
Applies SFFT_INIT_GRP's internal data structure to
calculate, in single-precision arithmetic, the
fast forward or inverse Fourier transform of
grouped, real data.
sfft_exit_grp
Deallocates the virtual memory allocated by
SFFT_INIT_GRP.
dfft_init_grp
Calculates internal data structures.
dfft_apply_grp
Applies DFFT_INIT_GRP's internal data structure to
calculate, in double-precision arithmetic, the
fast forward or inverse Fourier transform of
grouped, real data.
dfft_exit_grp
Deallocates the virtual memory allocated by
DFFT_INIT_GRP.
cfft_init_grp
Calculates internal data structures.
cfft_apply_grp
Applies CFFT_INIT_GRP's internal data structure to
calculate, in single-precision arithmetic, the
fast forward or inverse Fourier transform of
grouped, complex data.
cfft_exit_grp
Deallocates the virtual memory allocated by
CFFT_INIT_GRP.
zfft_init_grp
Calculates internal data structures.
zfft_apply_grp
Applies SFFT_INIT_GRP's internal data structure to
calculate, in double-precision arithmetic, the
fast forward or inverse Fourier transform of
grouped, complex data.
zfft_exit_grp
Deallocates the virtual memory allocated by
ZFFT_INIT_GRP.
The following routines are provided for the Convolution functions. The
Subprogram Name is the name of the manual page containing documentation on
the subprogram.
Subroutine Name Operation
sconv_nonperiodic
Calculates, in single-precision arithmetic, the
nonperiodic convolution of two real arrays.
dconv_nonperiodic
Calculates, in double-precision arithmetic, the
nonperiodic convolution of two real arrays.
cconv_nonperiodic
Calculates, in single-precision arithmetic, the
nonperiodic convolution of two complex arrays.
zconv_nonperiodic
Calculates, in double-precision arithmetic, the
nonperiodic convolution of two complex arrays.
sconv_periodic
Calculates, in single-precision arithmetic, the
periodic convolution of two real arrays.
dconv_periodic
Calculates, in double-precision arithmetic, the
periodic convolution of two real arrays.
cconv_periodic
Calculates, in single-precision arithmetic, the
periodic convolution of two complex arrays.
zconv_periodic
Calculates, in double-precision arithmetic, the
periodic convolution of two complex arrays.
sconv_nonperiodic_ext
Calculates, in single-precision arithmetic, the
nonperiodic convolution of two real arrays.
dconv_nonperiodic_ext
Calculates, in double-precision arithmetic, the
nonperiodic convolution of two real arrays.
cconv_nonperiodic_ext
Calculates, in single-precision arithmetic, the
nonperiodic convolution of two complex arrays.
zconv_nonperiodic_ext
Calculates, in double-precision arithmetic, the
nonperiodic convolution of two complex arrays.
sconv_periodic_ext
Calculates, in single-precision arithmetic, the
periodic convolution of two real arrays.
dconv_periodic_ext
Calculates, in double-precision arithmetic, the
periodic convolution of two real arrays.
cconv_periodic_ext
Calculates, in single-precision arithmetic, the
periodic convolution of two complex arrays.
zconv_periodic_ext
Calculates, in double-precision arithmetic, the
periodic convolution of two complex arrays.
The following routines are provided for the Correlation functions. The
Subprogram Name is the name of the manual page containing documentation on
the subprogram.
Subroutine Name Operation
scorr_nonperiodic
Calculates, in single-precision arithmetic, the
nonperiodic correlation of two real arrays.
dcorr_nonperiodic
Calculates, in double-precision arithmetic, the
nonperiodic correlation of two real arrays.
ccorr_nonperiodic
Calculates, in single-precision arithmetic, the
nonperiodic correlation of two complex arrays.
zcorr_nonperiodic
Calculates, in double-precision arithmetic, the
nonperiodic correlation of two complex arrays.
scorr_periodic
Calculates, in single-precision arithmetic, the
periodic correlation of two real arrays.
dcorr_periodic
Calculates, in double-precision arithmetic, the
periodic correlation of two real arrays.
ccorr_periodic
Calculates, in single-precision arithmetic, the
periodic correlation of two complex arrays.
zcorr_periodic
Calculates, in double-precision arithmetic, the
periodic correlation of two complex arrays.
scorr_nonperiodic_ext
Calculates, in single-precision arithmetic, the
nonperiodic correlation of two real arrays.
dcorr_nonperiodic_ext
Calculates, in double-precision arithmetic, the
nonperiodic correlation of two real arrays.
ccorr_nonperiodic_ext
Calculates, in single-precision arithmetic, the
nonperiodic correlation of two complex arrays.
zcorr_nonperiodic_ext
Calculates, in double-precision arithmetic, the
nonperiodic correlation of two complex arrays.
scorr_periodic_ext
Calculates, in single-precision arithmetic, the
periodic correlation of two real arrays.
dcorr_periodic_ext
Calculates, in double-precision arithmetic, the
periodic correlation of two real arrays.
ccorr_periodic_ext
Calculates, in single-precision arithmetic, the
periodic correlation of two complex arrays.
zcorr_periodic_ext
Calculates, in double-precision arithmetic, the
periodic correlation of two complex arrays.
The following routines are provided for the Compaq Filter functions. The
Subprogram Name is the name of the manual page containing documentation on
the subprogram.
Subroutine Name Operation
sfilter_nonrec
Performs the filter operation in one step
sfilter_init_nonrec
Initializes a working array
sfilter_apply_nonrec
Uses the initialized working array for repeated
filtering operations
CXML Home Page Index of CXML Routines