最近,我一直在尝试在STM32F4-Discovery评估板上进行FFT计算,然后将其发送到PC。我已经研究了我的问题-我认为制造商提供的FFT函数有问题。
我正在使用CMSIS-DSP库。目前,我一直在用代码生成样本(如果可以正常工作,我将通过麦克风进行采样)。
我正在使用,arm_rfft_fast_f32因为将来我的数据将是浮动的,但是我在输出数组中得到的结果是疯狂的(我认为)-我的频率低于0。
number_of_samples = 512; (l_probek in code)
dt = 1/freq/number_of_samples
Run Code Online (Sandbox Code Playgroud)
这是我的代码
float32_t buffer_input[l_probek];
uint16_t i;
uint8_t mode;
float32_t dt;
float32_t freq;
bool DoFlag = false;
bool UBFlag = false;
uint32_t rozmiar = 4*l_probek;
union
{
float32_t f[l_probek];
uint8_t b[4*l_probek];
}data_out;
union
{
float32_t f[l_probek];
uint8_t b[4*l_probek];
}data_mag;
union
{
float32_t f;
uint8_t b[4];
}czest_rozdz;
/* Pointers ------------------------------------------------------------------*/
arm_rfft_fast_instance_f32 S;
arm_cfft_radix4_instance_f32 S_CFFT;
uint16_t output;
/* ---------------------------------------------------------------------------*/
int main(void)
{
freq = 5000;
dt = 0.000000390625;
_GPIO();
_LED(); …Run Code Online (Sandbox Code Playgroud)