Добрый день. Разбираюсь с преобразованием для аудио-спектрометра, нужна консультация по коду и по функциям. Может чегото не хватает или делаю не так. Контроллер STM32f407. Математическую библиотеку "arm_math.h" подключил Код большой, приведу главные функции: //обьявляем размер FFT #define FFT_SIZE 32 //для теста - массив чисел, для обычной синусоиды const uint16_t aSine12bit[32] = { 2047, 2447, 2831, 3185, 3498, 3750, 3939, 4056, 4095, 4056, 3939, 3750, 3495, 3185, 2831, 2447, 2047, 1647, 1263, 909, 599, 344, 155, 38, 0, 38, 155, 344, 599, 909, 1263, 1647}; В начале функции локальные переменные int16_t fft_Sbuff[FFT_SIZE] = {0}; int16_t fft_Dbuff[FFT_SIZE*2] = {0};
По таймеру, раз в секунду: Копируем во входной массив для fft "тестовый" синус. for (i=0; i<FFT_SIZE; i++) { fft_Sbuff[i]=aSine12bit[i];} Делаем преобразование(раз в секунду) arm_rfft_instance_q15 S; status = arm_rfft_init_q15(&S, FFT_SIZE, 0, 1);//функция инициализации необходима для БФП if(status == ARM_MATH_SUCCESS) { arm_rfft_q15(&S,fft_Sbuff, fft_Dbuff);//выполнение БФП arm_cmplx_mag_q15(fft_Dbuff, fft_Sbuff, FFT_SIZE);//вычисляем амплитуды гармоник } Вывожу график вертикальными линиями for (i=0; i<FFT_SIZE; i++) { LCD_vline(i,100, fft_Sbuff[i]);}//аргументы: LCD_vline(x,y, len); В выходном массиве fft_Sbuff находятся амплитуды гармоник 32 частотных под_диапазонов? На графике должна быть одна линия. Как сделать преобразование для реального сигнала? Каким образом подобрать частоту оцифровки?
Давно я так не обламывался. Решил на халяву посмотреть исходник по http://cvs.aiq.ru/stm32f103-2_2/stm32f4103-2_2.html ссылке, а там каша без переноса строк... И ведь непонятно, то-ли комментарий // на текст, то-ли на часть кода в тени.
Другой кнопкой мыши - сохранить как - и сохранить с расширением .c
Во вторник могу на яндекс диск бросить....
Вот код вместе с логарифмом и выводом на экран: Спойлер#include "FFT.h"
void FFT(uint16_t *buffer) { static float Re[512]; static float Im[512]; register int i, j, n, k, io, ie, in, nn; float ru, iu, rtp, itp, rtq, itq, rw, iw, sr;
union ADVFLOAT { float x; struct { unsigned int mant : 23; // Mantissa without leading one unsigned int exp : 8; // Exponential part unsigned int sign : 1; // Indicator of the negative number }; };
Качественное и безопасное устройство, работающее от аккумулятора, должно учитывать его физические и химические свойства, профили заряда и разряда, их изменение во времени и под влиянием различных условий, таких как температура и ток нагрузки. Мы расскажем о литий-ионных аккумуляторных батареях EVE и нескольких решениях от различных китайских компаний, рекомендуемых для разработок приложений с использованием этих АКБ. Представленные в статье китайские аналоги помогут заменить продукцию западных брендов с оптимизацией цены без потери качества.
Компания EVE выпустила новый аккумулятор серии PLM, сочетающий в себе высокую безопасность, длительный срок службы, широкий температурный диапазон и высокую токоотдачу даже при отрицательной температуре.
Эти аккумуляторы поддерживают заряд при температуре от -40/-20°С (сниженным значением тока), безопасны (не воспламеняются и не взрываются) при механическом повреждении (протыкание и сдавливание), устойчивы к вибрации. Они могут применяться как для автотранспорта (трекеры, маячки, сигнализация), так и для промышленных устройств мониторинга, IoT-устройств.
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 18
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете добавлять вложения