初级会员

- 积分
- 90
- 金钱
- 90
- 注册时间
- 2016-3-15
- 在线时间
- 27 小时
|
3金钱
具体是这样的,我用的官方DSP库,查了一些资料,写了一个简单的内部生成正弦波并进行FFT变换,但是在编译的时候出现了很多错误,先贴上程序,希望大家帮忙看看哪里有问题,挺急的,感激不尽!!
#include "stm32f4xx.h"
#include "./usart/bsp_debug_usart.h"
#include "bsp_adc.h"
#include "systick.h"
#include "arm_math.h"
#include "arm_const_structs.h"
#include "stdio.h"
#include "string.h"
#define TEST_LENGTH_SAMPLES 2048
/*******输入与输出缓冲**********/
static float32_t testOutput[TEST_LENGTH_SAMPLES/2];
static float32_t testInput_f32_10khz[TEST_LENGTH_SAMPLES];
/**********变量**********/
uint32_t fftSize = 1024;
uint32_t ifftFlag = 0;
uint32_t doBitReverse = 1;
/**
* @brief Ö÷oˉêy
* @param ÎT
* @retval ÎT
*/
int main(void)
{
uint16_t i;
/*3õê¼»ˉUSART ÅäÖÃÄ£ê½Îa 115200 8-N-1£¬ÖD¶Ï½óêÕ*/
Debug_USART_Config();
ADC_Configuration();
SysTick_Init();
/**按照实部、虚部的顺序存储*/
for(i=0; i<1024; i++)
{
/*虚部全部置零*/
testInput_f32_10khz[i*2+1] = 0;
/*50Hz正弦波,采样率1KHz ,作为实部*/
testInput_f32_10khz[i*2] = arm_sin_f32(2*3.1415926f*50*i/1000);
}
/**CFFT变换******/
arm_cfft_f32(&arm_cfft_sR_f32_len1024, testInput_f32_10khz, ifftFlag, doBitReverse);
/****求幅值*****/
arm_cmplx_mag_f32(testInput_f32_10khz, testOutput, fftSize);
/**串口输出**/
for(i=0; i<1024; i++)
{
printf("%f\r\n", testOutput[i]);
}
}
|
|