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

📄 analysis.h

📁 此为某测试平台的上位机软件部分
💻 H
📖 第 1 页 / 共 5 页
字号:
    PIVOT_MATRIX    = 2     // Pivot as a Matrix
} AnalysisLibPivot;

/* Options for QREx */
typedef enum {
    FULL_SIZE       = 0,    // Full Size
    ECONOMY_SIZE    = 1     // Economical Size
} AnalysisLibSizeOption;

/* Eigenvalue ordering used by Schur */
typedef enum {
    NO_ORDERING     = 0,    // No ordering
    REAL_ASCENDING  = 1,    // Real Part Ascending
    REAL_DESCENDING = 2,    // Real Part Descending
    MAG_ASCENDING   = 3,    // Magnitude Ascending
    MAG_DESCENDING  = 4     // Magnitude Descending
} AnalysisLibEigenvalueOrdering;

/* Matrix balance */
typedef enum {
    NONE            = 0,    // Neither Permuted nor Scaled
    PERMUTED        = 1,    // Permuted
    SCALED          = 2,    // Scaled
    PERMUTED_SCALED = 3     // Permuted and Scaled
} AnalysisLibMatrixBalance;

/* Special matrix type */
typedef enum {
    IDENTITY        = 0,    // Identity Matrix
    DIAGONAL        = 1,    // Diagonal Matrix
    TOEPLITZ        = 2,    // Toeplitz Matrix
    VANDERMONDE     = 3,    // Vandermonde Matrix
    COMPANION       = 4     // Companion Matrix
} AnalysisLibSpecialMatrixType;

/* Matrix type used by SolveEqs */
typedef enum {
    GENERAL_MATRIX = 0,     // General Matrix
    SYMPOS_MATRIX  = 1,     // Symmetric and Positive Definite Matrix
    LOTRI_MATRIX   = 2,     // Lower Triangular Matrix
    UPTRI_MATRIX   = 3      // Upper Triangular Matrix
} AnalysisLibMatrixType;

/* Matrix type for CxEigenValueVector */
typedef enum {
    COMPLEX_GENERAL_MATRIX   = 0,   // General Matrix
    COMPLEX_HERMITIAN_MATRIX = 1    // Hermitian Matrix
} AnalysisLibComplexMatrixType;

/* Matrix norm type */
typedef enum {
    NORM_TYPE_2         = 0,    // 2-Norm
    NORM_TYPE_1         = 1,    // 1-Norm
    NORM_TYPE_FROBENIUS = 2,    // Frobenius-Norm
    NORM_TYPE_INFINITE  = 3     // Infinite-Norm
} AnalysisLibNormType;

/* Fit method type used by Curve Fitting functions */
typedef enum {
    LEAST_SQUARE            = 0,    // Least square
    LEAST_ABSOLUTE_RESIDUAL = 1,    // Least absolute residual
    BISQUARE                = 2     // Bisquare
} AnalysisLibFitMethod;

/* Interval type used by Curve Fitting functions */
typedef enum {
    CONFIDENCE_INTVL = 0,           // Confidence Interval
    PREDICTION_INTVL = 1            // Prediction Interval
} AnalysisLibIntervalType;
   
/* Range type used by RemoveOutlier functions */
typedef enum {
    RANGE_OF_Y       = 0,           // Range of Y
    RANGE_OF_X       = 1,           // Range of X
    RANGE_OF_X_AND_Y = 2            // Range of X and Y
} AnalysisLibRangeType;

/* Interpolation type used by ArbitraryWave */
typedef enum {
    LINEAR_INTERPOLATION = 1,       // Linear
    NO_INTERPOLATION     = 0        // None
} AnalysisLibInterpolation;

/* Sort ordering */
typedef enum {
    SORT_DESCENDING = 1,            // descending
    SORT_ASCENDING  = 0             // ascending
} AnalysisLibSortOrdering;

/* Powers of two */
typedef enum {
    POWER_2_1,                      // 2
    POWER_2_2,                      // 4
    POWER_2_3,                      // 8
    POWER_2_4,                      // 16
    POWER_2_5,                      // 32
    POWER_2_6,                      // 64
    POWER_2_7,                      // 128
    POWER_2_8,                      // 256
    POWER_2_9,                      // 512
    POWER_2_10,                     // 1024
    POWER_2_11,                     // 2048
    POWER_2_12,                     // 4096
    POWER_2_13,                     // 8192
    POWER_2_14,                     // 16384
    POWER_2_15,                     // 32768
    POWER_2_16,                     // 65536
    POWER_2_17,                     // 131072
    POWER_2_18,                     // 262144
    POWER_2_19,                     // 524288
    POWER_2_20,                     // 1048576
    POWER_2_21,                     // 2097152
    POWER_2_22,                     // 4194304
    POWER_2_23,                     // 8388608
    POWER_2_24,                     // 16777216
    POWER_2_25,                     // 33554432
    POWER_2_26,                     // 67108864
    POWER_2_27,                     // 134217728
    POWER_2_28                      // 268435456
} AnalysisLibPowerOfTwo;

/* Enable or disable an option */
typedef enum {
    ENABLE_OPTION  = 1,             // On
    DISABLE_OPTION = 0              // Off
} AnalysisLibEnableDisable;

/* True or false */
typedef enum {
    ANALYSIS_TRUE  = 1,             // TRUE
    ANALYSIS_FALSE = 0              // FALSE
} AnalysisLibTrueFalse;

/* Polarity */
typedef enum {
    DETECT_PEAKS   = 0,             // Peaks
    DETECT_VALLEYS = 1              // Valleys
} AnalysisLibPeakDetection;

/* Spectrum type */
typedef enum {
    SPECTRUM_POWER     = 0,         // power
    SPECTRUM_AMPLITUDE = 1,         // amplitude
    SPECTRUM_GAIN      = 2          // gain
} AnalysisLibSpectrumType;

/* Spectrum type */
typedef enum {
    SCALING_MODE_LINEAR   = 0,      // linear
    SCALING_MODE_DECIBELS = 1,      // dB
    SCALING_MODE_DBM      = 2       // dBm
} AnalysisLibScalingMode;

/* Display unit */
typedef enum {
    DISPLAY_UNIT_VRMS     = 0,      // rms
    DISPLAY_UNIT_VPK      = 1,      // pk
    DISPLAY_UNIT_VRMS2    = 2,      // rms^2
    DISPLAY_UNIT_VPK2     = 3,      // pk^2
    DISPLAY_UNIT_VRMSHZ   = 4,      // rms/rtHz
    DISPLAY_UNIT_VPKHZ    = 5,      // pk/rtHz
    DISPLAY_UNIT_VRMS2HZ  = 6,      // rms^2/rtHz
    DISPLAY_UNIT_VPK2HZ   = 7       // pk^2/rtHz
} AnalysisLibDisplayUnit;

/* Algorithm used to solve the multiple linear regression model */
typedef enum {
    ALGORITHM_SVD         = 0,      // SVD
    ALGORITHM_GIVENS      = 1,      // Givens
    ALGORITHM_GIVENS2     = 2,      // Givens2
    ALGORITHM_HOUSEHOLD   = 3,      // Householder
    ALGORITHM_LU_DECOMP   = 4,      // LU decomposition
    ALGORITHM_CHOLESKY    = 5       // Cholesky
} AnalysisLibGenLSFitAlgorithm;

/* Algorithm used in QR factorization */
typedef enum {
    ALGORITHM_QR_HOUSEHOLDER = 0,       // Householder
    ALGORITHM_QR_GIVENS      = 1,       // Givens
    ALGORITHM_QR_FAST_GIVENS = 2        // Fast Givens
} AnalysisLibQRAlgorithm;

/* Integration method */
typedef enum {
    TRAPEZOIDAL_RULE = 0,       // Trapezoidal Rule
    SIMPSONS_RULE    = 1,       // Simpson's Rule
    SIMPSONS_38_RULE = 2,       // Simpson's 3/8 Rule
    BODE_RULE        = 3        // Bode Rule
} AnalysisLibIntegrationMethod;

/* Algorithm used in Polynomial Fit Ex */
typedef enum {
    ALGORITHM_POLYFIT_SVD      = 0, // SVD
    ALGORITHM_POLYFIT_QR       = 1, // QR
    ALGORITHM_POLYFIT_LU       = 2, // LU
    ALGORITHM_POLYFIT_CHOLESKY = 3  // Cholesky
} AnalysisLibPolyFitExAlgorithm;

/* Algorithm used in Chirp Z transform and complex Chirp Z transform */
typedef enum {
    ALGORITHM_CHIRP_DIRECT      = 0,    // Direct 
    ALGORITHM_CHIRP_FREQ_DOMAIN = 1     // Frequency Domain
} AnalysisLibChirpAlgorithm;

/*- Typedefs -----------------------------------------------------------------*/

/* Window constants used by measurement functions */
typedef struct {
    double enbw;
    double coherentgain;
} WindowConst;

/* Model function used by NonLinearFit() */
typedef double CVICALLBACK ModelFun(double x, double *coef, int ncoef);

/* Filter information used by IIR filter functions */
typedef struct {
    int type;       /* filter type (LOWPASS, etc.) */
    int order;      /* filter order */
    int reset;
    int na;
    double *a;      /* a coefficients */
    int nb;
    double *b;      /* b coefficients */
    int ns;
    double *s;      /* internal state */
} *IIRFilterPtr;


/* Define datatype NIComplexNumber */
#if !defined(_NIComplexNumber)
typedef struct NIComplexNumber_struct {
    double real;

⌨️ 快捷键说明

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