Я довольно долго пытался использовать fft для реальных данных в STM32F407G, но безуспешно. Однако, когда я использую функцию cfft для сложных данных, она работает. Но я не хочу обрабатывать мнимую часть. Итак, мой вопрос - как использовать функцию rfft в stm32?
Вот код, который я пробовал -
#include "stm32f407xx.h"
#include "arm_math.h"
#include "arm_const_structs.h"
#include "core_cm4.h"
#define TEST_LENGTH_SAMPLES 32
extern float32_t ffttestrealip[TEST_LENGTH_SAMPLES];
static float32_t ffttestrealop[TEST_LENGTH_SAMPLES];
uint32_t fftSize = 32;
uint8_t ifftFlag = 0;
uint8_t doBitReverse = 1;
int32_t main(void)
{
arm_rfft_fast_instance_f32 * S;
arm_rfft_fast_init_f32 (S,fftSize);
arm_rfft_fast_f32 (S,ffttestrealip,ffttestrealop,ifftFlag ) ;
while(1);
}
/** \endlink */
Но когда я компилирую это, он говорит: «ошибка: L6047U: размер этого изображения (83968 байт) превышает максимально допустимый для этой версии компоновщика»
Когда я закомментирую "arm_rfft_fast_init_f32 (S, fftSize);" , он компилируется, но я получаю неправильный результат.