infineon4engineers Facebook

infineon@google+ Google+

infineon@linkedin linkedin

infineon4engi@twitter twitter

infineon@youtube youtube

+ Reply to Thread
Results 1 to 1 of 1

Thread: Need help FFT !

  1. #1
    New Member New Member charlestac is on a distinguished road
    Join Date
    Apr 2018
    Posts
    2
    Points
    40

    Need help FFT !

    Hi,
    I'm working on a FFT on the Xmc1302-T038x0200 from infinéon.
    I use DAVE version 4.4.2.
    I got all the headers and the main program from infinéon site.
    There is my main program :


    /* ----------------------------------------------------------------------
    q* Copyright (C) 2010-2012 ARM Limited. All rights reserved.
    *
    * $Date: 17. January 2013
    * $Revision: V1.4.0
    *
    * Project: CMSIS DSP Library
    * Title: arm_fft_bin_example_f32.c
    *
    * Description: Example code demonstrating calculation of Max energy bin of
    * frequency domain of input signal.
    *
    * Target Processor: Cortex-M4/Cortex-M3
    *
    * 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.
    * -------------------------------------------------------------------- */

    /**
    * @ingroup groupExamples
    */

    /**
    * @defgroup FrequencyBin Frequency Bin Example
    *
    * \par Description
    * \par
    * Demonstrates the calculation of the maximum energy bin in the frequency
    * domain of the input signal with the use of Complex FFT, Complex
    * Magnitude, and Maximum functions.
    *
    * \par Algorithm:
    * \par
    * The input test signal contains a 10 kHz signal with uniformly distributed white noise.
    * Calculating the FFT of the input signal will give us the maximum energy of the
    * bin corresponding to the input frequency of 10 kHz.
    *
    * \par Block Diagram:
    * \image html FFTBin.gif "Block Diagram"
    * \par
    * The figure below shows the time domain signal of 10 kHz signal with
    * uniformly distributed white noise, and the next figure shows the input
    * in the frequency domain. The bin with maximum energy corresponds to 10 kHz signal.
    * \par
    * \image html FFTBinInput.gif "Input signal in Time domain"
    * \image html FFTBinOutput.gif "Input signal in Frequency domain"
    *
    * \par Variables Description:
    * \par
    * \li \c testInput_f32_10khz points to the input data
    * \li \c testOutput points to the output data
    * \li \c fftSize length of FFT
    * \li \c ifftFlag flag for the selection of CFFT/CIFFT
    * \li \c doBitReverse Flag for selection of normal order or bit reversed order
    * \li \c refIndex reference index value at which maximum energy of bin ocuurs
    * \li \c testIndex calculated index value at which maximum energy of bin ocuurs
    *
    * \par CMSIS DSP Software Library Functions Used:
    * \par
    * - arm_cfft_f32()
    * - arm_cmplx_mag_f32()
    * - arm_max_f32()
    *
    * <b> Refer </b>
    * \link arm_fft_bin_example_f32.c \endlink
    *
    */


    /** \example arm_fft_bin_example_f32.c
    */

    #include "cmsis_dsp.h"
    #include "arm_common_tables.h"
    #include "stdio.h"
    #include "DAVE.h"
    #include "arm_math.h"
    #include "arm_const_structs.h"
    #include "arm_cfft_f32.h"
    #include "arm_fft_bin_data.h"
    #include "arm_complx_mag_f32.h"
    #include "arm_max_f32.h"

    uint32_t length=2048 ;

    /* -------------------------------------------------------------------
    * External Input and Output buffer Declarations for FFT Bin Example
    * ------------------------------------------------------------------- */
    extern float32_t testInput_f32_10khz[2048];
    static float32_t testOutput[2048/2];

    /*------------------------------------------------------------------
    * Global variables for FFT Bin Example*/

    /* ------------------------------------------------------------------- */
    uint32_t fftSize = 1024;
    uint8_t ifftFlag = 0;
    uint32_t doBitReverse = 1;

    /* Reference index at which max energy of bin ocuurs */
    int refIndex = 213, testIndex = 0;

    /* ----------------------------------------------------------------------
    * Max magnitude FFT Bin test
    * ------------------------------------------------------------------- */

    int main(void)
    {

    float32_t maxValue;
    arm_status status;
    status = ARM_MATH_SUCCESS;
    int arm_cfft_sR_f32_len2048=2048;



    /* Process the data through the CFFT/CIFFT module */
    arm_cfft_f32(&arm_cfft_sR_f32_len2048, testInput_f32_10khz, ifftFlag, doBitReverse);

    /* Process the data through the Complex Magnitude Module for
    calculating the magnitude at each bin */
    arm_cmplx_mag_f32(testInput_f32_10khz, testOutput, fftSize);

    /* Calculates maxValue and returns corresponding BIN value */
    arm_max_f32(testOutput, fftSize, &maxValue, &testIndex);

    if (testIndex != refIndex)
    {
    status = ARM_MATH_TEST_FAILURE;

    }

    /* ----------------------------------------------------------------------
    ** Loop here if the signals fail the PASS check.
    ** This denotes a test failure
    ** ------------------------------------------------------------------- */

    if ( status != ARM_MATH_SUCCESS)
    {
    while (1);



    }


    while(1);/* main function does not return */;


    }



    /** \endlink */




    I got a list of 3 warning :
    Click image for larger version

Name:	image1.png
Views:	4
Size:	76.4 KB
ID:	3482

    Also there is 3 info for the function contains in headers :
    Click image for larger version

Name:	image2.png
Views:	1
Size:	20.2 KB
ID:	3483


    When i use the debugger, i observe that there is anormal things for the following lines :

    Click image for larger version

Name:	image3.png
Views:	5
Size:	173.2 KB
ID:	3484



    He is not affecting the great value for p2 and seems to not give any value to p3 and p4.

    I hope that i gave you all the necessary information to help me resolve my problem.


    Regards,

    Charles
    Last edited by charlestac; Jun 1st, 2018 at 02:06 AM.

+ Reply to Thread

Tags for this Thread

Disclaimer

All content and materials on this site are provided “as is“. Infineon makes no warranties or representations with regard to this content and these materials of any kind, whether express or implied, including without limitation, warranties or representations of merchantability, fitness for a particular purpose, title and non-infringement of any third party intellectual property right. No license, whether express or implied, is granted by Infineon. Use of the information on this site may require a license from a third party, or a license from Infineon.


Infineon accepts no liability for the content and materials on this site being accurate, complete or up- to-date or for the contents of external links. Infineon distances itself expressly from the contents of the linked pages, over the structure of which Infineon has no control.


Content on this site may contain or be subject to specific guidelines or limitations on use. All postings and use of the content on this site are subject to the Usage Terms of the site; third parties using this content agree to abide by any limitations or guidelines and to comply with the Usage Terms of this site. Infineon reserves the right to make corrections, deletions, modifications, enhancements, improvements and other changes to the content and materials, its products, programs and services at any time or to move or discontinue any content, products, programs, or services without notice.