Obam 36 1 декабря, 2022 Опубликовано 1 декабря, 2022 · Жалоба Если присмотреться к 110 = Fractional 32-bit (DOUT = dddd dddd dd00 0000 0000 0000 0000 0000) и в АЦП вашего F401 выбрать выравнивание "влево", то обнаружится, что и STM32 умеет "fractional" ((-8Ж И данные становятся в долях единицы - вполне себе Q-"сколько-то там" Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
ppram5 0 2 декабря, 2022 Опубликовано 2 декабря, 2022 · Жалоба В общем немного подразобрался и поэкспериментировал. Что касается времени преобразований: arm_rfft_fast_f32 (4096) идет за 7,7мс. arm_rfft_q31 - 10,2мс. Разница 2,5мс, float быстрее, хоть и не немного. Время приведения uint16_t к f32 перегоном в цикле 1,3мс. С коллегами произвели оценку необходимой точности - в q15 не влезаем. Напрямую грузить данные из апц через дма с левым сдвигом можно, но придется все равно сдвигать число на один бит вправо, т.к. первый бит знаковый. Все равно цикл прогонять. В итоге если сделать: фильтр+ФТТ+корреляция *10, думаю преимущество для float набежит на пару-тройку десятков миллисекунд. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться