Simon Ford / dsp

Dependents:   K22F_DSP_Matrix_least_square BNO055-ELEC3810 1BNO055 ECE4180Project--Slave2 ... more

Committer:
simon
Date:
Thu Mar 10 15:29:46 2011 +0000
Revision:
2:208cacc9d789
Parent:
0:1014af42efd9
Version of the CMSIS DSP library that will work with v29 of the mbed library, currently in beta

Who changed what in which revision?

UserRevisionLine numberNew contents of line
simon 0:1014af42efd9 1 /*-----------------------------------------------------------------------------
simon 0:1014af42efd9 2 * Copyright (C) 2010 ARM Limited. All rights reserved.
simon 0:1014af42efd9 3 *
simon 0:1014af42efd9 4 * $Date: 29. November 2010
simon 0:1014af42efd9 5 * $Revision: V1.0.3
simon 0:1014af42efd9 6 *
simon 0:1014af42efd9 7 * Project: CMSIS DSP Library
simon 0:1014af42efd9 8 * Title: arm_iir_lattice_init_q31.c
simon 0:1014af42efd9 9 *
simon 0:1014af42efd9 10 * Description: Initialization function for the Q31 IIR lattice filter.
simon 0:1014af42efd9 11 *
simon 0:1014af42efd9 12 * Target Processor: Cortex-M4/Cortex-M3
simon 0:1014af42efd9 13 *
simon 0:1014af42efd9 14 * Version 1.0.3 2010/11/29
simon 0:1014af42efd9 15 * Re-organized the CMSIS folders and updated documentation.
simon 0:1014af42efd9 16 *
simon 0:1014af42efd9 17 * Version 1.0.2 2010/11/11
simon 0:1014af42efd9 18 * Documentation updated.
simon 0:1014af42efd9 19 *
simon 0:1014af42efd9 20 * Version 1.0.1 2010/10/05
simon 0:1014af42efd9 21 * Production release and review comments incorporated.
simon 0:1014af42efd9 22 *
simon 0:1014af42efd9 23 * Version 1.0.0 2010/09/20
simon 0:1014af42efd9 24 * Production release and review comments incorporated
simon 0:1014af42efd9 25 *
simon 0:1014af42efd9 26 * Version 0.0.7 2010/06/10
simon 0:1014af42efd9 27 * Misra-C changes done
simon 0:1014af42efd9 28 * ---------------------------------------------------------------------------*/
simon 0:1014af42efd9 29
simon 0:1014af42efd9 30 #include "arm_math.h"
simon 0:1014af42efd9 31
simon 0:1014af42efd9 32 /**
simon 0:1014af42efd9 33 * @ingroup groupFilters
simon 0:1014af42efd9 34 */
simon 0:1014af42efd9 35
simon 0:1014af42efd9 36 /**
simon 0:1014af42efd9 37 * @addtogroup IIR_Lattice
simon 0:1014af42efd9 38 * @{
simon 0:1014af42efd9 39 */
simon 0:1014af42efd9 40
simon 0:1014af42efd9 41 /**
simon 0:1014af42efd9 42 * @brief Initialization function for the Q31 IIR lattice filter.
simon 0:1014af42efd9 43 * @param[in] *S points to an instance of the Q31 IIR lattice structure.
simon 0:1014af42efd9 44 * @param[in] numStages number of stages in the filter.
simon 0:1014af42efd9 45 * @param[in] *pkCoeffs points to the reflection coefficient buffer. The array is of length numStages.
simon 0:1014af42efd9 46 * @param[in] *pvCoeffs points to the ladder coefficient buffer. The array is of length numStages+1.
simon 0:1014af42efd9 47 * @param[in] *pState points to the state buffer. The array is of length numStages+blockSize.
simon 0:1014af42efd9 48 * @param[in] blockSize number of samples to process.
simon 0:1014af42efd9 49 * @return none.
simon 0:1014af42efd9 50 */
simon 0:1014af42efd9 51
simon 0:1014af42efd9 52 void arm_iir_lattice_init_q31(
simon 0:1014af42efd9 53 arm_iir_lattice_instance_q31 * S,
simon 0:1014af42efd9 54 uint16_t numStages,
simon 0:1014af42efd9 55 q31_t * pkCoeffs,
simon 0:1014af42efd9 56 q31_t * pvCoeffs,
simon 0:1014af42efd9 57 q31_t * pState,
simon 0:1014af42efd9 58 uint32_t blockSize)
simon 0:1014af42efd9 59 {
simon 0:1014af42efd9 60 /* Assign filter taps */
simon 0:1014af42efd9 61 S->numStages = numStages;
simon 0:1014af42efd9 62
simon 0:1014af42efd9 63 /* Assign reflection coefficient pointer */
simon 0:1014af42efd9 64 S->pkCoeffs = pkCoeffs;
simon 0:1014af42efd9 65
simon 0:1014af42efd9 66 /* Assign ladder coefficient pointer */
simon 0:1014af42efd9 67 S->pvCoeffs = pvCoeffs;
simon 0:1014af42efd9 68
simon 0:1014af42efd9 69 /* Clear state buffer and size is always blockSize + numStages */
simon 0:1014af42efd9 70 memset(pState, 0, (numStages + blockSize) * sizeof(q31_t));
simon 0:1014af42efd9 71
simon 0:1014af42efd9 72 /* Assign state pointer */
simon 0:1014af42efd9 73 S->pState = pState;
simon 0:1014af42efd9 74
simon 0:1014af42efd9 75
simon 0:1014af42efd9 76 }
simon 0:1014af42efd9 77
simon 0:1014af42efd9 78 /**
simon 0:1014af42efd9 79 * @} end of IIR_Lattice group
simon 0:1014af42efd9 80 */