diff options
Diffstat (limited to '2.3-1/src/c/signalProcessing/includes')
-rw-r--r-- | 2.3-1/src/c/signalProcessing/includes/conv.h | 41 | ||||
-rw-r--r-- | 2.3-1/src/c/signalProcessing/includes/conv2d.h | 38 | ||||
-rw-r--r-- | 2.3-1/src/c/signalProcessing/includes/crossCorr.h | 37 | ||||
-rw-r--r-- | 2.3-1/src/c/signalProcessing/includes/dynlib_signalprocessing.h | 26 | ||||
-rw-r--r-- | 2.3-1/src/c/signalProcessing/includes/fft.h | 57 | ||||
-rw-r--r-- | 2.3-1/src/c/signalProcessing/includes/fftshift.h | 76 | ||||
-rw-r--r-- | 2.3-1/src/c/signalProcessing/includes/hilbert.h | 43 | ||||
-rw-r--r-- | 2.3-1/src/c/signalProcessing/includes/ifft.h | 59 | ||||
-rw-r--r-- | 2.3-1/src/c/signalProcessing/includes/lev.h | 50 | ||||
-rw-r--r-- | 2.3-1/src/c/signalProcessing/includes/levin.h | 31 | ||||
-rw-r--r-- | 2.3-1/src/c/signalProcessing/includes/lpc2cep.h | 44 |
11 files changed, 502 insertions, 0 deletions
diff --git a/2.3-1/src/c/signalProcessing/includes/conv.h b/2.3-1/src/c/signalProcessing/includes/conv.h new file mode 100644 index 00000000..9dd43a50 --- /dev/null +++ b/2.3-1/src/c/signalProcessing/includes/conv.h @@ -0,0 +1,41 @@ +/* + * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab + * Copyright (C) 2008 - INRIA - Arnaud TORSET + * + * This file must be used under the terms of the CeCILL. + * This source file is licensed as described in the file COPYING, which + * you should have received as part of this distribution. The terms + * are also available at + * http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt + * + */ + +#ifndef __CONV_H__ +#define __CONV_H__ + +#include <math.h> +#include <stdlib.h> +#include "dynlib_signalprocessing.h" +#include "floatComplex.h" +#include "doubleComplex.h" +#include "multiplication.h" +#include "ifft.h" +#include "fft.h" + +#ifdef __cplusplus +extern "C" { +#endif +/* Computes the convolution between VECTORS */ + +EXTERN_SIGPROC void sconva(float *in1, int size1, float *in2,int size2, float *out); + +EXTERN_SIGPROC void dconva(double *in1, int size1, double *in2,int size2, double *out); + +EXTERN_SIGPROC void cconva(floatComplex *in1, int size1, floatComplex *in2,int size2, floatComplex *out); + +EXTERN_SIGPROC void zconva(doubleComplex *in1, int size1, doubleComplex *in2,int size2, doubleComplex *out); +#ifdef __cplusplus +} /* extern "C" */ +#endif + +#endif /* !__CONV_H__ */ diff --git a/2.3-1/src/c/signalProcessing/includes/conv2d.h b/2.3-1/src/c/signalProcessing/includes/conv2d.h new file mode 100644 index 00000000..ed71d924 --- /dev/null +++ b/2.3-1/src/c/signalProcessing/includes/conv2d.h @@ -0,0 +1,38 @@ +/* + * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab + * Copyright (C) 2008 - INRIA - Arnaud TORSET + * + * This file must be used under the terms of the CeCILL. + * This source file is licensed as described in the file COPYING, which + * you should have received as part of this distribution. The terms + * are also available at + * http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt + * + */ + +#ifndef __CONV2D_H__ +#define __CONV2D_H__ + +#include "dynlib_signalprocessing.h" +#include "floatComplex.h" +#include "doubleComplex.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* Computes the convolution between MATRICES */ + +EXTERN_SIGPROC void sconv2da(float *in1, int lines1, int columns1, float *in2, int lines2, int columns2, float *out); + +EXTERN_SIGPROC void dconv2da(double *in1, int lines1, int columns1, double *in2, int lines2, int columns2, double *out); + +EXTERN_SIGPROC void cconv2da(floatComplex *in1, int lines1, int columns1, floatComplex *in2, int lines2, int columns2, floatComplex *out); + +EXTERN_SIGPROC void zconv2da(doubleComplex *in1, int lines1, int columns1, doubleComplex *in2, int lines2, int columns2, doubleComplex *out); + +#ifdef __cplusplus +} /* extern "C" */ +#endif + +#endif /* !__CONV2D_H__ */ diff --git a/2.3-1/src/c/signalProcessing/includes/crossCorr.h b/2.3-1/src/c/signalProcessing/includes/crossCorr.h new file mode 100644 index 00000000..c44d6666 --- /dev/null +++ b/2.3-1/src/c/signalProcessing/includes/crossCorr.h @@ -0,0 +1,37 @@ + +/* + * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab + * Copyright (C) 2008 - INRIA - Arnaud TORSET + * + * This file must be used under the terms of the CeCILL. + * This source file is licensed as described in the file COPYING, which + * you should have received as part of this distribution. The terms + * are also available at + * http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt + * + */ + +#ifndef __CROSSCORR_H__ +#define __CROSSCORR_H__ + +#include "dynlib_signalprocessing.h" +#include "floatComplex.h" +#include "doubleComplex.h" + +#ifdef __cplusplus +extern "C" { +#endif + +EXTERN_SIGPROC void scrossCorra(float* in1, int rows1, int cols1, float* in2, int rows2, int cols2, float* out); + +EXTERN_SIGPROC void dcrossCorra(double* in1, int rows1, int cols1, double* in2, int rows2, int cols2, double* out); + +EXTERN_SIGPROC void ccrossCorra(floatComplex* in1, int rows1, int cols1, floatComplex* in2, int rows2, int cols2, floatComplex* out); + +EXTERN_SIGPROC void zcrossCorra(doubleComplex* in1, int rows1, int cols1, doubleComplex* in2, int rows2, int cols2, doubleComplex* out); + +#ifdef __cplusplus +} /* extern "C" */ +#endif + +#endif /* __CROSSCORR_H__ */ diff --git a/2.3-1/src/c/signalProcessing/includes/dynlib_signalprocessing.h b/2.3-1/src/c/signalProcessing/includes/dynlib_signalprocessing.h new file mode 100644 index 00000000..fcbe5800 --- /dev/null +++ b/2.3-1/src/c/signalProcessing/includes/dynlib_signalprocessing.h @@ -0,0 +1,26 @@ +/*
+* Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+* Copyright (C) 2009 - DIGITEO - Allan CORNET
+*
+* This file must be used under the terms of the CeCILL.
+* This source file is licensed as described in the file COPYING, which
+* you should have received as part of this distribution. The terms
+* are also available at
+* http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt
+*
+*/
+
+#ifndef __DYNLIB_SIGNALPROCESSING_H__
+#define __DYNLIB_SIGNALPROCESSING_H__
+
+#if defined(_MSC_VER) && defined(_USRDLL)
+ #if SIGNALPROCESSING_EXPORTS
+ #define EXTERN_SIGPROC __declspec (dllexport)
+ #else
+ #define EXTERN_SIGPROC __declspec (dllimport)
+ #endif
+#else
+ #define EXTERN_SIGPROC
+#endif
+
+#endif /* __DYNLIB_SIGNALPROCESSING_H__ */
diff --git a/2.3-1/src/c/signalProcessing/includes/fft.h b/2.3-1/src/c/signalProcessing/includes/fft.h new file mode 100644 index 00000000..efc85c09 --- /dev/null +++ b/2.3-1/src/c/signalProcessing/includes/fft.h @@ -0,0 +1,57 @@ +/* + * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab + * Copyright (C) 2008-2008 - INRIA - Allan SIMON + * + * This file must be used under the terms of the CeCILL. + * This source file is licensed as described in the file COPYING, which + * you should have received as part of this distribution. The terms + * are also available at + * http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt + * + */ + +#ifndef __FFT_H__ +#define __FFT_H__ + +#include "dynlib_signalprocessing.h" +#include "floatComplex.h" +#include "doubleComplex.h" + + +#define sffts(in) in +#define dffts(in) in +#define cffts(in) in +#define zffts(in) in + +#ifdef __cplusplus +extern "C" { +#endif + +EXTERN_SIGPROC void sfftma(float* in,int rows,int columns,float* out); + +EXTERN_SIGPROC void dfftma(double* in,int rows,int columns,double* out); + +/* +** compute the fast fourier transform of a vector +** param in : the input matrix in complex float precision +** param rows: number of rows of the input matrix +** param cols: number of cols of the input matrix +** param out : the transformed matrix in complex float precision +*/ + +EXTERN_SIGPROC void cfftma ( floatComplex* in , int rows, int cols, floatComplex* out); +/* +** compute the fast fourier transform of a vector +** param in : the input matrix in complex double precision +** param rows: number of rows of the input matrix +** param cols: number of cols of the input matrix +** param out : the transformed matrix in complex double precision +*/ +EXTERN_SIGPROC void zfftma ( doubleComplex* in , int rows, int cols, doubleComplex* out); + +#ifdef __cplusplus +} /* extern "C" */ +#endif + +#endif /* !__FFT_H__ */ + diff --git a/2.3-1/src/c/signalProcessing/includes/fftshift.h b/2.3-1/src/c/signalProcessing/includes/fftshift.h new file mode 100644 index 00000000..242e7ff7 --- /dev/null +++ b/2.3-1/src/c/signalProcessing/includes/fftshift.h @@ -0,0 +1,76 @@ +/* + * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab + * Copyright (C) 2008-2008 - INRIA - Allan SIMON + * + * This file must be used under the terms of the CeCILL. + * This source file is licensed as described in the file COPYING, which + * you should have received as part of this distribution. The terms + * are also available at + * http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt + * + */ + +#ifndef __FFTSHIFT_H__ +#define __FFTSHIFT_H__ + + +#include "dynlib_signalprocessing.h" + +/* + fftshift rearrange the result of fft(x) + it's call like that : fftshift(y), y=ff(x) +*/ +#include "floatComplex.h" +#include "doubleComplex.h" + + +#define sfftshifts(in) in +#define dfftshifts(in) in +#define cfftshifts(in) in +#define zfftshifts(in) in + +#ifdef __cplusplus +extern "C" { +#endif + +EXTERN_SIGPROC void sfftshifta(float* in,int rows,int columns,float* out); + +EXTERN_SIGPROC void dfftshifta(double* in,int rows,int columns,double* out); + +EXTERN_SIGPROC void cfftshifta ( floatComplex* in , int rows, int cols, floatComplex* out); + +EXTERN_SIGPROC void zfftshifta ( doubleComplex* in , int rows, int cols, doubleComplex* out); + + +#define srowfftshifts(in) in +#define drowfftshifts(in) in +#define crowfftshifts(in) in +#define zrowfftshifts(in) in + +EXTERN_SIGPROC void srowfftshifta(float* in,int rows,int columns,float* out); + +EXTERN_SIGPROC void drowfftshifta(double* in,int rows,int columns,double* out); + +EXTERN_SIGPROC void crowfftshifta ( floatComplex* in , int rows, int cols, floatComplex* out); + +EXTERN_SIGPROC void zrowfftshifta ( doubleComplex* in , int rows, int cols, doubleComplex* out); + +#define scolumnfftshifts(in) in +#define dcolumnfftshifts(in) in +#define ccolumnfftshifts(in) in +#define zcolumnfftshifts(in) in + +EXTERN_SIGPROC void scolumnfftshifta(float* in,int rows,int columns,float* out); + +EXTERN_SIGPROC void dcolumnfftshifta(double* in,int rows,int columns,double* out); + +EXTERN_SIGPROC void ccolumnfftshifta ( floatComplex* in , int rows, int cols, floatComplex* out); + +EXTERN_SIGPROC void zcolumnfftshifta ( doubleComplex* in , int rows, int cols, doubleComplex* out); + +#ifdef __cplusplus +} /* extern "C" */ +#endif + +#endif /* !__FFTSHIFT_H__ */ + diff --git a/2.3-1/src/c/signalProcessing/includes/hilbert.h b/2.3-1/src/c/signalProcessing/includes/hilbert.h new file mode 100644 index 00000000..38264e3b --- /dev/null +++ b/2.3-1/src/c/signalProcessing/includes/hilbert.h @@ -0,0 +1,43 @@ +/* + * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab + * Copyright (C) 2008 - INRIA - Arnaud TORSET + * + * This file must be used under the terms of the CeCILL. + * This source file is licensed as described in the file COPYING, which + * you should have received as part of this distribution. The terms + * are also available at + * http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt + * + */ + + +#ifndef __HILBERT_H__ +#define __HILBERT_H__ + +#include "dynlib_signalprocessing.h" +#include "floatComplex.h" +#include "doubleComplex.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* FIXME : input : real + output : complex + Is this true all time? + Or must we do input : real, output :real? +*/ + +EXTERN_SIGPROC float shilberts(float in); + +EXTERN_SIGPROC void shilberta (float* in, int rows, int cols, floatComplex *out); + +EXTERN_SIGPROC double dhilberts(double in); + +EXTERN_SIGPROC void dhilberta (double* in, int rows, int cols, doubleComplex *out); + +#ifdef __cplusplus +} /* extern "C" */ +#endif + +#endif /* __HILBERT_H__ */ diff --git a/2.3-1/src/c/signalProcessing/includes/ifft.h b/2.3-1/src/c/signalProcessing/includes/ifft.h new file mode 100644 index 00000000..6954c7f9 --- /dev/null +++ b/2.3-1/src/c/signalProcessing/includes/ifft.h @@ -0,0 +1,59 @@ +/* + * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab + * Copyright (C) 2008-2008 - INRIA - Allan SIMON + * + * This file must be used under the terms of the CeCILL. + * This source file is licensed as described in the file COPYING, which + * you should have received as part of this distribution. The terms + * are also available at + * http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt + * + */ + +#ifndef __IFFT_H__ +#define __IFFT_H__ + +#include "dynlib_signalprocessing.h" +#include "floatComplex.h" +#include "doubleComplex.h" + +#define siffts(in) in +#define diffts(in) in +#define ciffts(in) in +#define ziffts(in) in + + +#ifdef __cplusplus +extern "C" { +#endif + +EXTERN_SIGPROC void sifftma ( float* in , int rows, int cols, float* out); + +EXTERN_SIGPROC void difftma ( double* in , int rows, int cols, double* out); + +/* +** compute the inverse fast fourier transform of a vector +** param in : the input matrix in complex double precision +** param rows: number of rows of the input matrix +** param cols: number of cols of the input matrix +** param out : the transformed matrix in complex double precision +*/ + + +EXTERN_SIGPROC void zifftma ( doubleComplex* in , int rows, int cols, doubleComplex* out); +/* +** compute the inverse fast fourier transform of a vector +** param in : the input matrix in complex float precision +** param rows: number of rows of the input matrix +** param cols: number of cols of the input matrix +** param out : the transformed matrix in complex float precision +*/ + +EXTERN_SIGPROC void cifftma ( floatComplex* in , int rows, int cols, floatComplex* out); + +#ifdef __cplusplus +} /* extern "C" */ +#endif + +#endif /* !__IFFT_H__ */ + diff --git a/2.3-1/src/c/signalProcessing/includes/lev.h b/2.3-1/src/c/signalProcessing/includes/lev.h new file mode 100644 index 00000000..32a81782 --- /dev/null +++ b/2.3-1/src/c/signalProcessing/includes/lev.h @@ -0,0 +1,50 @@ +/* + * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab + * Copyright (C) 2008 - INRIA - Arnaud TORSET + * + * This file must be used under the terms of the CeCILL. + * This source file is licensed as described in the file COPYING, which + * you should have received as part of this distribution. The terms + * are also available at + * http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt + * + */ + +#ifndef __LEV_H__ +#define __LEV_H__ + +#include "dynlib_signalprocessing.h" +#include "floatComplex.h" +#include "doubleComplex.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* + function Scilab : + [out1,y,out3]=lev(in) + y : result of the function +*/ +EXTERN_SIGPROC float sleva (float* in,int size, float* out1, float* out3); +EXTERN_SIGPROC double dleva (double* in, int size, double* out1, double* out3); +EXTERN_SIGPROC floatComplex cleva (floatComplex* in,int size, floatComplex* out1, floatComplex* out3); +EXTERN_SIGPROC doubleComplex zleva (doubleComplex* in,int size, doubleComplex* out1, doubleComplex* out3); + + +/* + function Scilab : + [out1,y]=lev(in) + y : result of the function +*/ +EXTERN_SIGPROC float sleva2 (float* in,int size, float* out1); +EXTERN_SIGPROC double dleva2 (double* in, int size, double* out1); +EXTERN_SIGPROC floatComplex cleva2 (floatComplex* in,int size, floatComplex* out1); +EXTERN_SIGPROC doubleComplex zleva2 (doubleComplex* in,int size, doubleComplex* out1); + +#ifdef __cplusplus +} /* extern "C" */ +#endif + +#endif /*__LEV_H__*/ + diff --git a/2.3-1/src/c/signalProcessing/includes/levin.h b/2.3-1/src/c/signalProcessing/includes/levin.h new file mode 100644 index 00000000..864fb076 --- /dev/null +++ b/2.3-1/src/c/signalProcessing/includes/levin.h @@ -0,0 +1,31 @@ +/* + * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab + * Copyright (C) 2008 - INRIA - Arnaud TORSET + * + * This file must be used under the terms of the CeCILL. + * This source file is licensed as described in the file COPYING, which + * you should have received as part of this distribution. The terms + * are also available at + * http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt + * + */ + +#ifndef __LEVIN_H__ +#define __LEVIN_H__ + +#include "dynlib_signalprocessing.h" + +#ifdef __cplusplus +extern "C" { +#endif + +EXTERN_SIGPROC void dlevina (int n, double* cov, int lCov, int cCov, double* la, double* sig, double* lb); + +EXTERN_SIGPROC void slevina (int n, float* cov, int lCov, int cCov, float* la, float* sig, float* lb); + +#ifdef __cplusplus +} /* extern "C" */ +#endif + +#endif /*__LEVIN_H__*/ + diff --git a/2.3-1/src/c/signalProcessing/includes/lpc2cep.h b/2.3-1/src/c/signalProcessing/includes/lpc2cep.h new file mode 100644 index 00000000..bfb3a357 --- /dev/null +++ b/2.3-1/src/c/signalProcessing/includes/lpc2cep.h @@ -0,0 +1,44 @@ +/* + * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab + * Copyright (C) 2008 - INRIA - Arnaud TORSET + * + * This file must be used under the terms of the CeCILL. + * This source file is licensed as described in the file COPYING, which + * you should have received as part of this distribution. The terms + * are also available at + * http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt + * + */ + +#ifndef __LPC2CEP_H__ +#define __LPC2CEP_H__ + +#include "dynlib_signalprocessing.h" +#include "floatComplex.h" +#include "doubleComplex.h" + +/* Matrices on input are squared because matricial logarithm + works only with squared matrices (and logm is used in lcp2cep) + So we just have to pass one parametre on input for the size of + the input matrix, this parametre is size and it's the numbers of + rows(or columns) +*/ + +#ifdef __cplusplus +extern "C" { +#endif + +EXTERN_SIGPROC void slpc2cepa(float* in, int size, float* out); + +EXTERN_SIGPROC void dlpc2cepa(double* in, int size, double* out); + +EXTERN_SIGPROC void clpc2cepa(floatComplex* in, int size, floatComplex* out); + +EXTERN_SIGPROC void zlpc2cepa(doubleComplex* in, int size, doubleComplex* out); + +#ifdef __cplusplus +} /* extern "C" */ +#endif + +#endif /*__LPC2CEP_H__*/ + |