CMSIS DSP library
Dependents: performance_timer Surfboard_ gps2rtty Capstone ... more
Legacy Warning
This is an mbed 2 library. To learn more about mbed OS 5, visit the docs.
cmsis_dsp/FilteringFunctions/arm_biquad_cascade_stereo_df2T_init_f32.c@5:3762170b6d4d, 2015-11-20 (annotated)
- Committer:
- mbed_official
- Date:
- Fri Nov 20 08:45:18 2015 +0000
- Revision:
- 5:3762170b6d4d
Synchronized with git revision 2eb940b9a73af188d3004a2575fdfbb05febe62b
Full URL: https://github.com/mbedmicro/mbed/commit/2eb940b9a73af188d3004a2575fdfbb05febe62b/
Added option to build rpc library. closes #1426
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
mbed_official | 5:3762170b6d4d | 1 | /*----------------------------------------------------------------------------- |
mbed_official | 5:3762170b6d4d | 2 | * Copyright (C) 2010-2014 ARM Limited. All rights reserved. |
mbed_official | 5:3762170b6d4d | 3 | * |
mbed_official | 5:3762170b6d4d | 4 | * $Date: 19. March 2015 |
mbed_official | 5:3762170b6d4d | 5 | * $Revision: V.1.4.5 |
mbed_official | 5:3762170b6d4d | 6 | * |
mbed_official | 5:3762170b6d4d | 7 | * Project: CMSIS DSP Library |
mbed_official | 5:3762170b6d4d | 8 | * Title: arm_biquad_cascade_stereo_df2T_init_f32.c |
mbed_official | 5:3762170b6d4d | 9 | * |
mbed_official | 5:3762170b6d4d | 10 | * Description: Initialization function for the floating-point transposed |
mbed_official | 5:3762170b6d4d | 11 | * direct form II Biquad cascade filter. |
mbed_official | 5:3762170b6d4d | 12 | * |
mbed_official | 5:3762170b6d4d | 13 | * Target Processor: Cortex-M4/Cortex-M3/Cortex-M0 |
mbed_official | 5:3762170b6d4d | 14 | * |
mbed_official | 5:3762170b6d4d | 15 | * Redistribution and use in source and binary forms, with or without |
mbed_official | 5:3762170b6d4d | 16 | * modification, are permitted provided that the following conditions |
mbed_official | 5:3762170b6d4d | 17 | * are met: |
mbed_official | 5:3762170b6d4d | 18 | * - Redistributions of source code must retain the above copyright |
mbed_official | 5:3762170b6d4d | 19 | * notice, this list of conditions and the following disclaimer. |
mbed_official | 5:3762170b6d4d | 20 | * - Redistributions in binary form must reproduce the above copyright |
mbed_official | 5:3762170b6d4d | 21 | * notice, this list of conditions and the following disclaimer in |
mbed_official | 5:3762170b6d4d | 22 | * the documentation and/or other materials provided with the |
mbed_official | 5:3762170b6d4d | 23 | * distribution. |
mbed_official | 5:3762170b6d4d | 24 | * - Neither the name of ARM LIMITED nor the names of its contributors |
mbed_official | 5:3762170b6d4d | 25 | * may be used to endorse or promote products derived from this |
mbed_official | 5:3762170b6d4d | 26 | * software without specific prior written permission. |
mbed_official | 5:3762170b6d4d | 27 | * |
mbed_official | 5:3762170b6d4d | 28 | * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS |
mbed_official | 5:3762170b6d4d | 29 | * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT |
mbed_official | 5:3762170b6d4d | 30 | * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS |
mbed_official | 5:3762170b6d4d | 31 | * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE |
mbed_official | 5:3762170b6d4d | 32 | * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, |
mbed_official | 5:3762170b6d4d | 33 | * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, |
mbed_official | 5:3762170b6d4d | 34 | * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; |
mbed_official | 5:3762170b6d4d | 35 | * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER |
mbed_official | 5:3762170b6d4d | 36 | * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT |
mbed_official | 5:3762170b6d4d | 37 | * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN |
mbed_official | 5:3762170b6d4d | 38 | * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE |
mbed_official | 5:3762170b6d4d | 39 | * POSSIBILITY OF SUCH DAMAGE. |
mbed_official | 5:3762170b6d4d | 40 | * ---------------------------------------------------------------------------*/ |
mbed_official | 5:3762170b6d4d | 41 | |
mbed_official | 5:3762170b6d4d | 42 | #include "arm_math.h" |
mbed_official | 5:3762170b6d4d | 43 | |
mbed_official | 5:3762170b6d4d | 44 | /** |
mbed_official | 5:3762170b6d4d | 45 | * @ingroup groupFilters |
mbed_official | 5:3762170b6d4d | 46 | */ |
mbed_official | 5:3762170b6d4d | 47 | |
mbed_official | 5:3762170b6d4d | 48 | /** |
mbed_official | 5:3762170b6d4d | 49 | * @addtogroup BiquadCascadeDF2T |
mbed_official | 5:3762170b6d4d | 50 | * @{ |
mbed_official | 5:3762170b6d4d | 51 | */ |
mbed_official | 5:3762170b6d4d | 52 | |
mbed_official | 5:3762170b6d4d | 53 | /** |
mbed_official | 5:3762170b6d4d | 54 | * @brief Initialization function for the floating-point transposed direct form II Biquad cascade filter. |
mbed_official | 5:3762170b6d4d | 55 | * @param[in,out] *S points to an instance of the filter data structure. |
mbed_official | 5:3762170b6d4d | 56 | * @param[in] numStages number of 2nd order stages in the filter. |
mbed_official | 5:3762170b6d4d | 57 | * @param[in] *pCoeffs points to the filter coefficients. |
mbed_official | 5:3762170b6d4d | 58 | * @param[in] *pState points to the state buffer. |
mbed_official | 5:3762170b6d4d | 59 | * @return none |
mbed_official | 5:3762170b6d4d | 60 | * |
mbed_official | 5:3762170b6d4d | 61 | * <b>Coefficient and State Ordering:</b> |
mbed_official | 5:3762170b6d4d | 62 | * \par |
mbed_official | 5:3762170b6d4d | 63 | * The coefficients are stored in the array <code>pCoeffs</code> in the following order: |
mbed_official | 5:3762170b6d4d | 64 | * <pre> |
mbed_official | 5:3762170b6d4d | 65 | * {b10, b11, b12, a11, a12, b20, b21, b22, a21, a22, ...} |
mbed_official | 5:3762170b6d4d | 66 | * </pre> |
mbed_official | 5:3762170b6d4d | 67 | * |
mbed_official | 5:3762170b6d4d | 68 | * \par |
mbed_official | 5:3762170b6d4d | 69 | * where <code>b1x</code> and <code>a1x</code> are the coefficients for the first stage, |
mbed_official | 5:3762170b6d4d | 70 | * <code>b2x</code> and <code>a2x</code> are the coefficients for the second stage, |
mbed_official | 5:3762170b6d4d | 71 | * and so on. The <code>pCoeffs</code> array contains a total of <code>5*numStages</code> values. |
mbed_official | 5:3762170b6d4d | 72 | * |
mbed_official | 5:3762170b6d4d | 73 | * \par |
mbed_official | 5:3762170b6d4d | 74 | * The <code>pState</code> is a pointer to state array. |
mbed_official | 5:3762170b6d4d | 75 | * Each Biquad stage has 2 state variables <code>d1,</code> and <code>d2</code> for each channel. |
mbed_official | 5:3762170b6d4d | 76 | * The 2 state variables for stage 1 are first, then the 2 state variables for stage 2, and so on. |
mbed_official | 5:3762170b6d4d | 77 | * The state array has a total length of <code>2*numStages</code> values. |
mbed_official | 5:3762170b6d4d | 78 | * The state variables are updated after each block of data is processed; the coefficients are untouched. |
mbed_official | 5:3762170b6d4d | 79 | */ |
mbed_official | 5:3762170b6d4d | 80 | |
mbed_official | 5:3762170b6d4d | 81 | void arm_biquad_cascade_stereo_df2T_init_f32( |
mbed_official | 5:3762170b6d4d | 82 | arm_biquad_cascade_stereo_df2T_instance_f32 * S, |
mbed_official | 5:3762170b6d4d | 83 | uint8_t numStages, |
mbed_official | 5:3762170b6d4d | 84 | float32_t * pCoeffs, |
mbed_official | 5:3762170b6d4d | 85 | float32_t * pState) |
mbed_official | 5:3762170b6d4d | 86 | { |
mbed_official | 5:3762170b6d4d | 87 | /* Assign filter stages */ |
mbed_official | 5:3762170b6d4d | 88 | S->numStages = numStages; |
mbed_official | 5:3762170b6d4d | 89 | |
mbed_official | 5:3762170b6d4d | 90 | /* Assign coefficient pointer */ |
mbed_official | 5:3762170b6d4d | 91 | S->pCoeffs = pCoeffs; |
mbed_official | 5:3762170b6d4d | 92 | |
mbed_official | 5:3762170b6d4d | 93 | /* Clear state buffer and size is always 4 * numStages */ |
mbed_official | 5:3762170b6d4d | 94 | memset(pState, 0, (4u * (uint32_t) numStages) * sizeof(float32_t)); |
mbed_official | 5:3762170b6d4d | 95 | |
mbed_official | 5:3762170b6d4d | 96 | /* Assign state pointer */ |
mbed_official | 5:3762170b6d4d | 97 | S->pState = pState; |
mbed_official | 5:3762170b6d4d | 98 | } |
mbed_official | 5:3762170b6d4d | 99 | |
mbed_official | 5:3762170b6d4d | 100 | /** |
mbed_official | 5:3762170b6d4d | 101 | * @} end of BiquadCascadeDF2T group |
mbed_official | 5:3762170b6d4d | 102 | */ |