Задача такая - у меня АЦП может работать только на минимальной частоте 1000 Гц. мне нужны кратные частоты: 125, 250 и 500. Получить их можно проведя децимацию, предварительно перед которой отфильтровав все что выше чстоты найквиста. т.е. для получения данных на частоте 500, я запускаю измерения на 1000 Гц, фильтрую все что выше 250 и беру каждый второй отсчет. Не стал заморачиваться с фильтрами - смотрю они уже есть в армовсеом коде (те у кого STM в папке SMSIS) у меня процессор СС3200 - не нашел примеров именно для него, пока взял библиотечку у STM - она подходит к техасу (ф-я void arm_fir_decimate_fast_q31(///)). Есть несколько вопросов, у меня может быть от 1-го канала до 8-ми, вот как их всех одновременно фильтровать? Код, который делает АРМ я так понимаю УЖЕ оптимизирован по скорости, объему и прочему, сокращено количество циклов и всяких MAC операций. как сделать "нормальную" фильтрацию одновременно всех 8-ми каналов, и сколько навскидку времени уйдет на вызов функции фильтрации т.е. переписать саму функцию фильтрации, чтобы использовать только 1 функцию вместо идкущих подряд 8 и что то другое. у кого какие мысли?
|