⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 analysis.h

📁 此为某测试平台的上位机软件部分
💻 H
📖 第 1 页 / 共 5 页
字号:
    double imaginary;
} NIComplexNumber;
#define _NIComplexNumber
#endif
#define ComplexNum NIComplexNumber

/* FFT table used by FFT, spectrum related functions */
typedef void* PFFTTable;


/*- Signal Generation --------------------------------------------------------*/

AnalysisLibErrType CVIFUNC Impulse      (int n, double amp, int index, double x[]);
AnalysisLibErrType CVIFUNC Pulse        (int n, double amp, int delay,
                                         int width, double pulsePattern[]);
AnalysisLibErrType CVIFUNC Ramp         (int n, double first, double last,
                                         double rampvals[]);
AnalysisLibErrType CVIFUNC Triangle     (int n, double amp, double tri[]);
AnalysisLibErrType CVIFUNC SinePattern  (int n, double amp, double phase,
                                         double cycles, double sine[]);
AnalysisLibErrType CVIFUNC Uniform      (int n, int seed, double x[]);
AnalysisLibErrType CVIFUNC WhiteNoise   (int n, double amp, int seed,
                                         double noise[]);
AnalysisLibErrType CVIFUNC GaussNoise   (int n, double sDev, int seed,
                                         double noise[]);
AnalysisLibErrType CVIFUNC ArbitraryWave(int n, double amp, double f,
                                         double *phase, const double wavetable[],
                                         int wavesize, int wavetype, double x[]);
AnalysisLibErrType CVIFUNC Chirp        (int n, double amp, double f1,
                                         double f2, double x[]);
AnalysisLibErrType CVIFUNC SawtoothWave (int n, double amp, double f,
                                         double *phase, double x[]);
AnalysisLibErrType CVIFUNC Sinc         (int n, double amp, double delay,
                                         double dt, double x[]);
AnalysisLibErrType CVIFUNC SineWave     (int n, double amp, double f,
                                         double *phase, double x[]);
AnalysisLibErrType CVIFUNC SquareWave   (int n, double amp, double f,
                                         double *phase, double duty, double x[]);
AnalysisLibErrType CVIFUNC TriangleWave (int n, double amp, double f,
                                         double *phase, double x[]);

                
/*- 1-D Array Operations -----------------------------------------------------*/

AnalysisLibErrType CVIFUNC Clear1D  (double x[], int n);
AnalysisLibErrType CVIFUNC Set1D    (double x[], int n, double a);
AnalysisLibErrType CVIFUNC Copy1D   (const double x[], int n, double y[]);
AnalysisLibErrType CVIFUNC Add1D    (const double x[], const double y[], int n,
                                     double z[]);
AnalysisLibErrType CVIFUNC Sub1D    (const double x[], const double y[], int n,
                                     double z[]);
AnalysisLibErrType CVIFUNC Mul1D    (const double x[], const double y[], int n,
                                     double z[]);
AnalysisLibErrType CVIFUNC Div1D    (const double x[], const double y[], int n,
                                     double z[]);
AnalysisLibErrType CVIFUNC Abs1D    (const double x[], int n, double y[]);
AnalysisLibErrType CVIFUNC Neg1D    (const double x[], int n, double y[]);
AnalysisLibErrType CVIFUNC LinEv1D  (const double x[], int n, double a,
                                     double b, double y[]);
AnalysisLibErrType CVIFUNC PolyEv1D (const double x[], int n,
                                     const double coef[], int k, double y[]);
AnalysisLibErrType CVIFUNC Scale1D  (const double x[], int n, double y[],
                                     double *offset, double *scale);
AnalysisLibErrType CVIFUNC QScale1D (const double x[], int n, double y[],
                                     double *scale);
AnalysisLibErrType CVIFUNC MaxMin1D (const double x[], int n, double *max,
                                     int *imax, double *min, int *imin);
AnalysisLibErrType CVIFUNC Sum1D    (const double x[], int n, double *sum);
AnalysisLibErrType CVIFUNC Prod1D   (const double x[], int n, double *prod);
AnalysisLibErrType CVIFUNC Subset1D (const double x[], int n, int index,
                                     int length, double y[]);
AnalysisLibErrType CVIFUNC Normal1D (const double x[], int n, double y[],
                                     double *ave, double *sDev);
AnalysisLibErrType CVIFUNC Reverse  (const double x[], int n, double y[]);
AnalysisLibErrType CVIFUNC Shift    (const double x[], int n, int shifts,
                                     double y[]);
AnalysisLibErrType CVIFUNC Clip     (const double x[], int n, double upper,
                                     double lower, double y[]);
AnalysisLibErrType CVIFUNC Sort     (const double x[], int n, int direction,
                                     double y[]);


/*- 2-D Array Operations -----------------------------------------------------*/

AnalysisLibErrType CVIFUNC Add2D    (const void *x, const void *y, int n, int m,
                                     void *z);
AnalysisLibErrType CVIFUNC Sub2D    (const void *x, const void *y, int n, int m,
                                     void *z);
AnalysisLibErrType CVIFUNC Mul2D    (const void *x, const void *y, int n, int m,
                                     void *z);
AnalysisLibErrType CVIFUNC Div2D    (const void *x, const void *y, int n, int m,
                                     void *z);
AnalysisLibErrType CVIFUNC LinEv2D  (const void *x, int n, int m, double a,
                                     double b, void *y);
AnalysisLibErrType CVIFUNC PolyEv2D (const void *x, int n, int m, double coef[],
                                     int k, void *y);
AnalysisLibErrType CVIFUNC Scale2D  (const void *x, int n, int m, void *y,
                                     double *offset, double *scale);
AnalysisLibErrType CVIFUNC QScale2D (const void *x, int n, int m, void *y,
                                     double *scale);
AnalysisLibErrType CVIFUNC MaxMin2D (const void *x, int n, int m, double *max,
                                     int *imax, int *jmax, double *min,
                                     int *imin, int *jmin);
AnalysisLibErrType CVIFUNC Sum2D    (const void *x, int n, int m, double *sum);
AnalysisLibErrType CVIFUNC Normal2D (const void *x, int n, int m, void *y,
                                     double *ave, double *sDev);


/*- Complex Number Operations ------------------------------------------------*/

AnalysisLibErrType CVIFUNC CxAdd   (double xr, double xi, double yr, double yi,
                                    double *zr, double *zi);
AnalysisLibErrType CVIFUNC CxSub   (double xr, double xi, double yr, double yi,
                                    double *zr, double *zi);
AnalysisLibErrType CVIFUNC CxMul   (double xr, double xi, double yr, double yi,
                                    double *zr, double *zi);
AnalysisLibErrType CVIFUNC CxDiv   (double xr, double xi, double yr, double yi,
                                    double *zr, double *zi);
AnalysisLibErrType CVIFUNC CxRecip (double xr, double xi, double *yr, double *yi);
AnalysisLibErrType CVIFUNC CxSqrt  (double xr, double xi, double *yr, double *yi);
AnalysisLibErrType CVIFUNC CxLog   (double xr, double xi, double *yr, double *yi);
AnalysisLibErrType CVIFUNC CxLn    (double xr, double xi, double *yr, double *yi);
AnalysisLibErrType CVIFUNC CxPow   (double xr, double xi, double a, double *yr,
                                    double *yi);
AnalysisLibErrType CVIFUNC CxExp   (double xr, double xi, double *yr, double *yi);
AnalysisLibErrType CVIFUNC ToPolar (double x, double y, double *mag,
                                    double *phase);
AnalysisLibErrType CVIFUNC ToRect  (double mag, double phase, double *x,
                                    double *y);


/*- 1-D Complex Array Operations ---------------------------------------------*/

AnalysisLibErrType CVIFUNC CxAdd1D    (const double xr[], const double xi[],
                                       const double yr[], const double yi[], 
                                       int n, double zr[], double zi[]);


AnalysisLibErrType CVIFUNC CxSub1D    (const double xr[], const double xi[],
                                       const double yr[], const double yi[],
                                       int n, double zr[], double zi[]);

AnalysisLibErrType CVIFUNC CxMul1D    (const double xr[], const double xi[],
                                       const double yr[], const double yi[],
                                       int n, double zr[], double zi[]);

AnalysisLibErrType CVIFUNC CxDiv1D    (const double xr[], const double xi[],
                                       const double yr[], const double yi[],
                                       int n, double zr[], double zi[]);

AnalysisLibErrType CVIFUNC CxLinEv1D  (const double xr[], const double xi[],
                                       int n, double ar, double ai, double br,
                                       double bi, double yr[], double yi[]);

AnalysisLibErrType CVIFUNC ToPolar1D  (const double x[], const double y[],
                                       int n, double mag[], double phase[]);

AnalysisLibErrType CVIFUNC ToRect1D   (const double mag[], const double phase[],
                                       int n, double x[], double y[]);


/*- Frequency Domain Analysis ------------------------------------------------*/

AnalysisLibErrType CVIFUNC FFT      (double x[], double y[], int n);
AnalysisLibErrType CVIFUNC InvFFT   (double x[], double y[], int n);
AnalysisLibErrType CVIFUNC ReFFT    (double x[], double y[], int n);
AnalysisLibErrType CVIFUNC ReInvFFT (double x[], double y[], int n);
AnalysisLibErrType CVIFUNC Spectrum (double x[], int n);
AnalysisLibErrType CVIFUNC FHT      (double x[], int n);
AnalysisLibErrType CVIFUNC InvFHT   (double x[], int n);

AnalysisLibErrType CVIFUNC CrossSpectrum(const double x[], const double y[],
                                         int n, double zr[], double zi[]);

AnalysisLibErrType CVIFUNC FastHilbertTransform(double x[], int n);       
AnalysisLibErrType CVIFUNC InvFastHilbertTransform(double x[], int n);

AnalysisLibErrType CVIFUNC FFT2D      (const void *a, int rowA, int colA,
                                       int fftSizeX, int fftSizeY, int shift, void *b);
AnalysisLibErrType CVIFUNC InvFFT2D   (const void *a, int rowA, int colA,
                                       int shifted, void *b);
AnalysisLibErrType CVIFUNC CxFFT2D    (const void *a, int rowA, int colA,
                                       int fftSizeX,int fftSizeY, int shift, void *b);
AnalysisLibErrType CVIFUNC CxInvFFT2D (const void *a, int rowA, int colA,
                                       int shifted, void *b);

AnalysisLibErrType CVIFUNC DCT        (const double x[], int n, int DCTSize, double y[]);
AnalysisLibErrType CVIFUNC InvDCT     (const double y[], int n,  double x[]);
AnalysisLibErrType CVIFUNC DST        (const double x[], int n, int DSTSize, double y[]);
AnalysisLibErrType CVIFUNC InvDST     (const double y[], int n,  double x[]);
AnalysisLibErrType CVIFUNC DCT2D      (const void *x, int rows, int cols, void *y);
AnalysisLibErrType CVIFUNC InvDCT2D   (const void *y, int rows, int cols, void *x);
AnalysisLibErrType CVIFUNC DST2D      (const void *x, int rows, int cols, void *y);
AnalysisLibErrType CVIFUNC InvDST2D   (const void *y, int rows, int cols, void *x);
AnalysisLibErrType CVIFUNC ChirpZT    (const double x[], int n,
                                       NIComplexNumber startingPoint,
                                       NIComplexNumber increment, int algorithm,
                                       int m, NIComplexNumber y[]);
AnalysisLibErrType CVIFUNC CxChirpZT  (const NIComplexNumber x[], int n,
                                       NIComplexNumber startingPoint,
                                       NIComplexNumber increment, int algorithm,
                                       int m, NIComplexNumber y[]);


/*- FFT Tables ----------------*/

PFFTTable CVIFUNC CreateFFTTable  (int n);
void      CVIFUNC DestroyFFTTable (PFFTTable table);

AnalysisLibErrType CVIFUNC FFTEx      (const double tmSig[], int nTmSig,
                                       int fftSize, PFFTTable fftTable,
                                       int shift, NIComplexNumber fft[]);
AnalysisLibErrType CVIFUNC InvFFTEx   (const NIComplexNumber fft[], int fftSize,
                                       PFFTTable fftTable, int shifted,
                                       double tmSig[]);
AnalysisLibErrType CVIFUNC CxFFTEx    (const NIComplexNumber tmSig[], int nTmSig,
                                       int fftSize, PFFTTable fftTable,
                                       int shift, NIComplexNumber fft[]);
AnalysisLibErrType CVIFUNC CxInvFFTEx (const NIComplexNumber fft[], int fftSize,
                                       PFFTTable fftTable, int shifted,
                                       NIComplexNumber tmSig[]);


/*- Time Domain Analysis -----------------------------------------------------*/

AnalysisLibErrType CVIFUNC Convolve   (const double x[], int n, const double y[],
                                       int m, double cxy[]);
AnalysisLibErrType CVIFUNC Correlate  (const double x[], int n, const double y[],
                                       int m, double rxy[]);
AnalysisLibErrType CVIFUNC Integrate  (const double x[], int n, double dt,
                                       double xInit, double xFinal, double y[]);
AnalysisLibErrType CVIFUNC Difference (const double x[], int n, double dt,
                                       double xInit, double xFinal, double y[]);

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -