Цитата(Zelepuk @ Mar 23 2011, 18:39)

Алгоритм обработки данных должен выглядеть как на рисунке ниже.
Как фильтрация по уму делается?
Понимаю что накапливать блок данных, а затем фильтровать не совсем good (это для FFT годится).
как я понимаю фильтрация (как КИХ так и БИХ в моём случае) должна выполнятся непрерывно с приходом новго отсчёта? Соответственно формируются новые буферы циклические (ещё два буфера помимо основного), в которых лежат фильтрованые данные...
а в прерывании (1 раз в секунду для расчёта частоты) уже обработывать фильтрованые данные, а не фильтровать...
Наставтье на путь истиный...
Какие частоты на входе и на выходе? По идее Вам надо спроектировать, к примеру в Матлабовском FDATool децимирующий фильтр, потом сделайте кольцевой буфер длиннее порядка фильтра и такой длинны, чтобы данные не наползали за время обработки, после чего вычисляйте каждый N-ный отсчет (N - коэффициент децимации, надеюсь у Вас - целый), результат сохраняйте в другой кольцевой буфер и обрабатывайте дальше.
Кстати, а зачем перед измерителем частоты БИХ - фильтр? Частоту можно измерить например путем подсчета переходов через ноль - чтобы не мешал шум переход засчитывайте только если сигнал после перехода пересек также некий пороговый уровень в ту же сторону. Пороговый уровень может быть, например, 1/3 размаха, либо, если сигнал зашумлен, можно сделать ФАПЧ.