CMSIS DSP library
Dependents: KL25Z_FFT_Demo Hat_Board_v5_1 KL25Z_FFT_Demo_tony KL25Z_FFT_Demo_tony ... more
Fork of mbed-dsp by
Diff: cmsis_dsp/TransformFunctions/arm_cfft_radix2_q15.c
- Revision:
- 3:7a284390b0ce
- Parent:
- 2:da51fb522205
--- a/cmsis_dsp/TransformFunctions/arm_cfft_radix2_q15.c Thu May 30 17:10:11 2013 +0100 +++ b/cmsis_dsp/TransformFunctions/arm_cfft_radix2_q15.c Fri Nov 08 13:45:10 2013 +0000 @@ -1,8 +1,8 @@ /* ---------------------------------------------------------------------- -* Copyright (C) 2010 ARM Limited. All rights reserved. +* Copyright (C) 2010-2013 ARM Limited. All rights reserved. * -* $Date: 15. February 2012 -* $Revision: V1.1.0 +* $Date: 17. January 2013 +* $Revision: V1.4.1 * * Project: CMSIS DSP Library * Title: arm_cfft_radix2_q15.c @@ -12,30 +12,59 @@ * * Target Processor: Cortex-M4/Cortex-M3/Cortex-M0 * -* Version 1.1.0 2012/02/15 -* Updated with more optimizations, bug fixes and minor API changes. -* -* Version 0.0.3 2010/03/10 -* Initial version +* Redistribution and use in source and binary forms, with or without +* modification, are permitted provided that the following conditions +* are met: +* - Redistributions of source code must retain the above copyright +* notice, this list of conditions and the following disclaimer. +* - Redistributions in binary form must reproduce the above copyright +* notice, this list of conditions and the following disclaimer in +* the documentation and/or other materials provided with the +* distribution. +* - Neither the name of ARM LIMITED nor the names of its contributors +* may be used to endorse or promote products derived from this +* software without specific prior written permission. +* +* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS +* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE +* COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, +* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, +* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER +* CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN +* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +* POSSIBILITY OF SUCH DAMAGE. * -------------------------------------------------------------------- */ #include "arm_math.h" +void arm_radix2_butterfly_q15( + q15_t * pSrc, + uint32_t fftLen, + q15_t * pCoef, + uint16_t twidCoefModifier); + +void arm_radix2_butterfly_inverse_q15( + q15_t * pSrc, + uint32_t fftLen, + q15_t * pCoef, + uint16_t twidCoefModifier); + +void arm_bitreversal_q15( + q15_t * pSrc, + uint32_t fftLen, + uint16_t bitRevFactor, + uint16_t * pBitRevTab); + /** * @ingroup groupTransforms */ /** - * @defgroup Radix2_CFFT_CIFFT Radix-2 Complex FFT Functions - * - * \par - * Complex Fast Fourier Transform(CFFT) and Complex Inverse Fast Fourier Transform(CIFFT) is an efficient algorithm to compute Discrete Fourier Transform(DFT) and Inverse Discrete Fourier Transform(IDFT). - * Computational complexity of CFFT reduces drastically when compared to DFT. - */ - - -/** - * @addtogroup Radix2_CFFT_CIFFT + * @addtogroup ComplexFFT * @{ */ @@ -67,7 +96,7 @@ } /** - * @} end of Radix2_CFFT_CIFFT group + * @} end of ComplexFFT group */ void arm_radix2_butterfly_q15( @@ -76,10 +105,10 @@ q15_t * pCoef, uint16_t twidCoefModifier) { -#ifndef ARM_MATH_CM0 +#ifndef ARM_MATH_CM0_FAMILY - int i, j, k, l; - int n1, n2, ia; + unsigned i, j, k, l; + unsigned n1, n2, ia; q15_t in; q31_t T, S, R; q31_t coeff, out1, out2; @@ -283,8 +312,8 @@ #else - int i, j, k, l; - int n1, n2, ia; + unsigned i, j, k, l; + unsigned n1, n2, ia; q15_t xt, yt, cosVal, sinVal; @@ -394,7 +423,7 @@ twidCoefModifier = twidCoefModifier << 1u; -#endif // #ifndef ARM_MATH_CM0 +#endif // #ifndef ARM_MATH_CM0_FAMILY } @@ -405,10 +434,10 @@ q15_t * pCoef, uint16_t twidCoefModifier) { -#ifndef ARM_MATH_CM0 +#ifndef ARM_MATH_CM0_FAMILY - int i, j, k, l; - int n1, n2, ia; + unsigned i, j, k, l; + unsigned n1, n2, ia; q15_t in; q31_t T, S, R; q31_t coeff, out1, out2; @@ -603,8 +632,8 @@ #else - int i, j, k, l; - int n1, n2, ia; + unsigned i, j, k, l; + unsigned n1, n2, ia; q15_t xt, yt, cosVal, sinVal; //N = fftLen; @@ -707,6 +736,6 @@ } // groups loop end -#endif // #ifndef ARM_MATH_CM0 +#endif // #ifndef ARM_MATH_CM0_FAMILY }