cc [ flag... ] file... –lmlib [ library... ]
#include <mlib.h>
mlib_status mlib_SignalCrossCorrel_S16(mlib_d64 *correl,
const mlib_s16 *src1, const mlib_s16 *src2, mlib_s32 n);
mlib_status mlib_SignalCrossCorrel_S16S(mlib_d64 *correl,
const mlib_s16 *src1, const mlib_s16 *src2, mlib_s32 n);
mlib_status mlib_SignalCrossCorrel_F32(mlib_d64 *correl,
const mlib_f32 *src1, const mlib_f32 *src2, mlib_s32 n);
mlib_status mlib_SignalCrossCorrel_F32S(mlib_d64 *correl,
const mlib_f32 *src1, const mlib_f32 *src2, mlib_s32 n);
Each of these functions performs cross correlation.
For monaural signals, the following equation is used:
1 n-1
correl[0] = --- * SUM (src1[i] * src2[i])
n i=0
For stereo signals, the following equation is used:
1 n-1
correl[0] = --- * SUM (src1[2*i] * src2[2*i])
n i=0
1 n-1
correl[1] = --- * SUM (src1[2*i + 1] * src2[2*i + 1])
n i=0
Each of the functions takes the following arguments:
Pointer to the cross correlation array. In the stereo version, correl[0] contains the cross correlation of channel 0, and correl[1] contains the cross correlation of channel 1.
First source signal array.
Second source signal array.
Number of samples in the source signal arrays.
Each of the functions returns MLIB_SUCCESS if successful. Otherwise it returns MLIB_FAILURE.
See attributes(5) for descriptions of the following attributes:
|