ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Четверг
28 марта
827104 Топик полностью
Хаос (26.03.2018 08:22, просмотров: 1) ответил Nikolay_Po на Может, я слаб в вопросах ЦОС (без срказма)? Смотрел реализации FIR в библиотеках dsPIC - там фильтр считался "в лоб". На каждый отсчёт умножение и сумма. У ТС контроллер ещё проще, не dsPIC. 10000*400*3=16MIPS минимум, а то и 24.
Нет смысла считать семплы на выходе КИХ фильтра 10 тысяч раз в секунду, если заранее известно, что из 10 тысяч выходных семплов 9800 семплов на выходе фильтра будут потом просто отброшены как ненужные. Децимация в 50 раз подразумевает, что на вход фильтра семплы приходят с частотой 10 кГц, но с выхода фильтра семплы идут уже с частотой 200 Гц. Поэтому после появления в кольцевом буфере размером в 450 семплов пятидесяти новых семплов мы делаем 400 умножений и 399 сложений для четырехсот последних поступивших в буфер семплов и получаем на выходе фильтра одно единственное значение. После это курим в сторонке, пока в буфере не накопится ещё 50 новых семплов.