×

Внимание

Форум находится в режиме только для чтения.

STM32F4 и FFT

11 года 2 мес. назад #3890 от Demax
Demax создал тему: STM32F4 и FFT
Коллеги, у кого есть примеры по сабжу?
Пример от ST очень скудный, гугл результатов не дает.
Интересует реализация полосового фильтра на FFT с использованием оконных функций
11 года 2 мес. назад #3923 от Demax
Demax ответил в теме Re: STM32F4 и FFT
Пытаюсь сделать прямое и обратное преобразование Фурье - проверить что данные на входе и на выходе совпадают. Делаю так:
q15_t ADC_input[512];
q15_t RFFT_output[1024];
arm_rfft_instance_q15 S;
arm_cfft_radix4_instance_q15 S_CFFT;

// заполняем массив ADC_input  насчитанными значениями
...

// прямое преобразование
arm_rfft_init_q15(&S, &S_CFFT, 512, 0, 1);
arm_rfft_q15(&S, ADC_input, RFFT_output);

// имеем комплексные отсчеты в RFFT_output, тут все нормально
// делаем обратное преобразование
S.ifftFlagR = 1u;
arm_rfft_q15(&S, RFFT_output, ADC_input);

Данные, полученные в  ADC_input никак не совпадают с тем, что было на входе((
Что я делаю не так?
11 года 1 мес. назад #3931 от Денис Ягов
Денис Ягов ответил в теме Re: STM32F4 и FFT
Добрый день.

До конца не уверен в причине несовпадения результатов прямом и обратном БПФ, но есть такое обстоятельство смены формата данных типа q15_t*

У вас это как раз по коду переменная RFFT_output.

Сначала она используется как выходные данные, а потом как входные для функций БПФ.

В зависимости направления (входные/выходные) данные формат - меняется (картинка приложена).

Т.е. для приведения в соответствие прямое-обратное преобразование вам требуется "переформатировать" данные под вход.
11 года 1 мес. назад #3932 от Денис Ягов
Денис Ягов ответил в теме Re: STM32F4 и FFT
Ну и до кучи .....
функция arm_rfft_init_q15 возвращает параметр arm_status, который имеет значения:

ARM_MATH_SUCCESS или ARM_MATH_ARGUMENT_ERROR
неплохо бы знать, чем всё таки закончилась инициализация.

где у вас прописаны параметры структуры arm_cfft_radix4_instance_q15 S_CFFT?
именно  по её параметрам заполняется структура arm_rfft_instance_q15 S (после успешного выполнения функции arm_rfft_init_q15 )

Может быть поставленные вопросы приведут вас к решению проблемы.

Описания взяты из стандартной библиотеки DSP функций:
\STM32F4xx_DSP_StdPeriph_Lib_V1.0.0\Libraries\CMSIS\index.htm
Время создания страницы: 0.071 секунд
Работает на Kunena форум