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

📄 landzo

📁 【开源】线性CCD自适应性算法攻略
💻
📖 第 1 页 / 共 5 页
字号:
     * <code>ARM_MATH_SIZE_MISMATCH</code> or <code>ARM_MATH_SUCCESS</code> based on the outcome of size checking.
     */

    arm_status arm_mat_sub_q31(
        const arm_matrix_instance_q31 *pSrcA,
        const arm_matrix_instance_q31 *pSrcB,
        arm_matrix_instance_q31 *pDst);

    /**
     * @brief Floating-point matrix scaling.
     * @param[in]  *pSrc points to the input matrix
     * @param[in]  scale scale factor
     * @param[out] *pDst points to the output matrix
     * @return     The function returns either
     * <code>ARM_MATH_SIZE_MISMATCH</code> or <code>ARM_MATH_SUCCESS</code> based on the outcome of size checking.
     */

    arm_status arm_mat_scale_f32(
        const arm_matrix_instance_f32 *pSrc,
        float32_t scale,
        arm_matrix_instance_f32 *pDst);

    /**
     * @brief Q15 matrix scaling.
     * @param[in]       *pSrc points to input matrix
     * @param[in]       scaleFract fractional portion of the scale factor
     * @param[in]       shift number of bits to shift the result by
     * @param[out]      *pDst points to output matrix
     * @return     The function returns either
     * <code>ARM_MATH_SIZE_MISMATCH</code> or <code>ARM_MATH_SUCCESS</code> based on the outcome of size checking.
     */

    arm_status arm_mat_scale_q15(
        const arm_matrix_instance_q15 *pSrc,
        q15_t scaleFract,
        int32_t shift,
        arm_matrix_instance_q15 *pDst);

    /**
     * @brief Q31 matrix scaling.
     * @param[in]       *pSrc points to input matrix
     * @param[in]       scaleFract fractional portion of the scale factor
     * @param[in]       shift number of bits to shift the result by
     * @param[out]      *pDst points to output matrix structure
     * @return     The function returns either
     * <code>ARM_MATH_SIZE_MISMATCH</code> or <code>ARM_MATH_SUCCESS</code> based on the outcome of size checking.
     */

    arm_status arm_mat_scale_q31(
        const arm_matrix_instance_q31 *pSrc,
        q31_t scaleFract,
        int32_t shift,
        arm_matrix_instance_q31 *pDst);


    /**
     * @brief  Q31 matrix initialization.
     * @param[in,out] *S             points to an instance of the floating-point matrix structure.
     * @param[in]     nRows          number of rows in the matrix.
     * @param[in]     nColumns       number of columns in the matrix.
     * @param[in]     *pData	       points to the matrix data array.
     * @return        none
     */

    void arm_mat_init_q31(
        arm_matrix_instance_q31 *S,
        uint16_t nRows,
        uint16_t nColumns,
        q31_t   *pData);

    /**
     * @brief  Q15 matrix initialization.
     * @param[in,out] *S             points to an instance of the floating-point matrix structure.
     * @param[in]     nRows          number of rows in the matrix.
     * @param[in]     nColumns       number of columns in the matrix.
     * @param[in]     *pData	       points to the matrix data array.
     * @return        none
     */

    void arm_mat_init_q15(
        arm_matrix_instance_q15 *S,
        uint16_t nRows,
        uint16_t nColumns,
        q15_t    *pData);

    /**
     * @brief  Floating-point matrix initialization.
     * @param[in,out] *S             points to an instance of the floating-point matrix structure.
     * @param[in]     nRows          number of rows in the matrix.
     * @param[in]     nColumns       number of columns in the matrix.
     * @param[in]     *pData	       points to the matrix data array.
     * @return        none
     */

    void arm_mat_init_f32(
        arm_matrix_instance_f32 *S,
        uint16_t nRows,
        uint16_t nColumns,
        float32_t   *pData);



    /**
     * @brief Instance structure for the Q15 PID Control.
     */
    typedef struct
    {
        q15_t A0; 	 /**< The derived gain, A0 = Kp + Ki + Kd . */
#ifdef ARM_MATH_CM0
        q15_t A1;
        q15_t A2;
#else
        q31_t A1;           /**< The derived gain A1 = -Kp - 2Kd | Kd.*/
#endif
        q15_t state[3];       /**< The state array of length 3. */
        q15_t Kp;           /**< The proportional gain. */
        q15_t Ki;           /**< The integral gain. */
        q15_t Kd;           /**< The derivative gain. */
    } arm_pid_instance_q15;

    /**
     * @brief Instance structure for the Q31 PID Control.
     */
    typedef struct
    {
        q31_t A0;            /**< The derived gain, A0 = Kp + Ki + Kd . */
        q31_t A1;            /**< The derived gain, A1 = -Kp - 2Kd. */
        q31_t A2;            /**< The derived gain, A2 = Kd . */
        q31_t state[3];      /**< The state array of length 3. */
        q31_t Kp;            /**< The proportional gain. */
        q31_t Ki;            /**< The integral gain. */
        q31_t Kd;            /**< The derivative gain. */

    } arm_pid_instance_q31;

    /**
     * @brief Instance structure for the floating-point PID Control.
     */
    typedef struct
    {
        float32_t A0;          /**< The derived gain, A0 = Kp + Ki + Kd . */
        float32_t A1;          /**< The derived gain, A1 = -Kp - 2Kd. */
        float32_t A2;          /**< The derived gain, A2 = Kd . */
        float32_t state[3];    /**< The state array of length 3. */
        float32_t Kp;               /**< The proportional gain. */
        float32_t Ki;               /**< The integral gain. */
        float32_t Kd;               /**< The derivative gain. */
    } arm_pid_instance_f32;



    /**
     * @brief  Initialization function for the floating-point PID Control.
     * @param[in,out] *S      points to an instance of the PID structure.
     * @param[in]     resetStateFlag  flag to reset the state. 0 = no change in state 1 = reset the state.
     * @return none.
     */
    void arm_pid_init_f32(
        arm_pid_instance_f32 *S,
        int32_t resetStateFlag);

    /**
     * @brief  Reset function for the floating-point PID Control.
     * @param[in,out] *S is an instance of the floating-point PID Control structure
     * @return none
     */
    void arm_pid_reset_f32(
        arm_pid_instance_f32 *S);


    /**
     * @brief  Initialization function for the Q31 PID Control.
     * @param[in,out] *S points to an instance of the Q15 PID structure.
     * @param[in]     resetStateFlag  flag to reset the state. 0 = no change in state 1 = reset the state.
     * @return none.
     */
    void arm_pid_init_q31(
        arm_pid_instance_q31 *S,
        int32_t resetStateFlag);


    /**
     * @brief  Reset function for the Q31 PID Control.
     * @param[in,out] *S points to an instance of the Q31 PID Control structure
     * @return none
     */

    void arm_pid_reset_q31(
        arm_pid_instance_q31 *S);

    /**
     * @brief  Initialization function for the Q15 PID Control.
     * @param[in,out] *S points to an instance of the Q15 PID structure.
     * @param[in] resetStateFlag  flag to reset the state. 0 = no change in state 1 = reset the state.
     * @return none.
     */
    void arm_pid_init_q15(
        arm_pid_instance_q15 *S,
        int32_t resetStateFlag);

    /**
     * @brief  Reset function for the Q15 PID Control.
     * @param[in,out] *S points to an instance of the q15 PID Control structure
     * @return none
     */
    void arm_pid_reset_q15(
        arm_pid_instance_q15 *S);


    /**
     * @brief Instance structure for the floating-point Linear Interpolate function.
     */
    typedef struct
    {
        uint32_t nValues;
        float32_t x1;
        float32_t xSpacing;
        float32_t *pYData;          /**< pointer to the table of Y values */
    } arm_linear_interp_instance_f32;

    /**
     * @brief Instance structure for the floating-point bilinear interpolation function.
     */

    typedef struct
    {
        uint16_t numRows;	/**< number of rows in the data table. */
        uint16_t numCols;	/**< number of columns in the data table. */
        float32_t *pData;	/**< points to the data table. */
    } arm_bilinear_interp_instance_f32;

    /**
    * @brief Instance structure for the Q31 bilinear interpolation function.
    */

    typedef struct
    {
        uint16_t numRows;	/**< number of rows in the data table. */
        uint16_t numCols;	/**< number of columns in the data table. */
        q31_t *pData;	/**< points to the data table. */
    } arm_bilinear_interp_instance_q31;

    /**
    * @brief Instance structure for the Q15 bilinear interpolation function.
    */

    typedef struct
    {
        uint16_t numRows;	/**< number of rows in the data table. */
        uint16_t numCols;	/**< number of columns in the data table. */
        q15_t *pData;	/**< points to the data table. */
    } arm_bilinear_interp_instance_q15;

    /**
    * @brief Instance structure for the Q15 bilinear interpolation function.
    */

    typedef struct
    {
        uint16_t numRows; 	/**< number of rows in the data table. */
        uint16_t numCols;	/**< number of columns in the data table. */
        q7_t *pData;		/**< points to the data table. */
    } arm_bilinear_interp_instance_q7;


    /**
     * @brief Q7 vector multiplication.
     * @param[in]       *pSrcA points to the first input vector
     * @param[in]       *pSrcB points to the second input vector
     * @param[out]      *pDst  points to the output vector
     * @param[in]       blockSize number of samples in each vector
     * @return none.
     */

    void arm_mult_q7(
        q7_t *pSrcA,
        q7_t *pSrcB,
        q7_t *pDst,
        uint32_t blockSize);

    /**
     * @brief Q15 vector multiplication.
     * @param[in]       *pSrcA points to the first input vector
     * @param[in]       *pSrcB points to the second input vector
     * @param[out]      *pDst  points to the output vector
     * @param[in]       blockSize number of samples in each vector
     * @return none.
     */

    void arm_mult_q15(
        q15_t *pSrcA,
        q15_t *pSrcB,
        q15_t *pDst,
        uint32_t blockSize);

    /**
     * @brief Q31 vector multiplication.
     * @param[in]       *pSrcA points to the first input vector
     * @param[in]       *pSrcB points to the second input vector
     * @param[out]      *pDst points to the output vector
     * @param[in]       blockSize number of samples in each vector
     * @return none.
     */

    void arm_mult_q31(
        q31_t *pSrcA,
        q31_t *pSrcB,
        q31_t *pDst,
        uint32_t blockSize);

    /**
     * @brief Floating-point vector multiplication.
     * @param[in]       *pSrcA points to the first input vector
     * @param[in]       *pSrcB points to the second input vector
     * @param[out]      *pDst points to the output vector
     * @param[in]       blockSize number of samples in each vector
     * @return none.
     */

    void arm_mult_f32(
        float32_t *pSrcA,
        float32_t *pSrcB,
        float32_t *pDst,
        uint32_t blockSize);


    /**
     * @brief Instance structure for the Q15 CFFT/CIFFT function.
     */

    typedef struct
    {
        uint16_t  fftLen;                /**< length of the FFT. */
        uint8_t   ifftFlag;              /**< flag that selects forward (ifftFlag=0) or inverse (ifftFlag=1) transform. */
        uint8_t   bitReverseFlag;        /**< flag that enables (bitReverseFlag=1) or disables (bitReverseFlag=0) bit reversal of output. */
        q15_t     *pTwiddle;             /**< points to the twiddle factor table. */
        uint16_t  *pBitRevTable;         /**< points to the bit reversal table. */
        uint16_t  twidCoefModifier;      /**< twiddle coefficient modifier that supports different size FFTs with the same twiddle factor table. */
        uint16_t  bitRevFactor;          /**< bit reversal modifier that supports different size FFTs with the same bit reversal table. */
    } arm_cfft_radix4_instance_q15;

    /**
     * @brief Instance structure for the Q31 CFFT/CIFFT function.
     */

    typedef struct
    {
        uint16_t    fftLen;              /**< length of the FFT. */
        uint8_t     ifftFlag;            /**< flag that selects forward (ifftFlag=0) or inverse (ifftFlag=1) transform. */
        uint8_t     bitReverseFlag;      /**< flag that enables (bitReverseFlag=1) or disables (bitReverseFlag=0) bit reversal of output. */
        q31_t       *pTwiddle;           /**< points to the twiddle factor table. */
        uint16_t    *pBitRevTable;       /**< points to the bit reversal table. */
        uint16_t    twidCoefModifier;    /**< twiddle coefficient modifier that supports different size FFTs with the same twiddle factor table. */
        uint16_t    bitRevFactor;        /**< bit reversal modifier that supports different size FFTs with the same bit reversal table. */
    } arm_cfft_radix4_instance_q31;

    /**
     * @brief Instance structure for the floating-point CFFT/CIFFT function.
     */

    typedef struct
    {
        uint16_t     fftLen;               /**< length of the FFT. */
        uint8_t      ifftFlag;             /**< flag that selects forward (ifftFlag=0) or inverse (ifftFlag=1) transform. */
        uint8_t      bitReverseFlag;       /**< flag that enables (bitReverseFlag=1) or disables (bitReverseFlag=0) bit reversal of output. */
        float32_t    *pTwiddle;            /**< points to the twiddle factor table. */
        uint16_t     *pBitRevTable;        /**< points to the bit reversal table. */
        uint16_t     twidCoefModifier;     /**< twiddle coefficient modifier that supports different size FFTs with the same twiddle factor table. */
        uint16_t     bitRevFactor;         /**< bit reversal modifier that supports different size FFTs with the same bit reversal table. */
        float32_t    onebyfftLen;          /**< value of 1/fftLen. */
    } arm_cfft_radix4_instance_f32;

    /**
     * @brief Processing function for the Q15 CFFT/CIFFT.
     * @param[in]      *S    points to an instance of the Q15 CFFT/CIFFT structure.
     * @param[in, out] *pSrc points to the complex data buffer. Processing occurs in-place.
     * @return none.
     */

    void arm_cfft_radix4_q15(
        const arm_cfft_radix4_instance_q15 *S,
        q15_t *pSrc);

    /**
     * @brief Initialization function for the Q15 CFFT/CIFFT.
     * @param[in,out] *S             points to an instance of the Q15 CFFT/CIFFT structure.
     * @param[in]     fftLen         length of the FFT.
     * @param[in]     ifftFlag       flag that selects forward (ifftFlag=0) or inverse (ifftFlag=1) transform.
     * @param[in]     bitReverseFlag flag that enables (bitReverseFlag=1) or disables (bitReverseFlag=0) bit reversal of output.
     * @return        arm_status     function returns ARM_

⌨️ 快捷键说明

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