Цитата(Dubov @ Dec 21 2012, 14:26)

Слышал тезис что при обработке блоков данных конечной длины например КИХ фильтром появляются "проблемы на краях сигнала". Я несовсем понял, но кажется речь шла о переходных процессах.
Вопрос как обрабатывать данные непрерывно? Скажем хочу промоделировать эти процессы на компьютере. Пишу программу на Си, которая заполняет массив (вместо реального АЦП). Данные нужно обрабатывать КИХ фильтром.
Как сделать "по уму"?
Я хочу сделать так: по указателю считать N отсчётов -> отфильтровать -> затем взять ещё N отсчётов - > отфильтровать....
Для непрерывной обработки данных потребуется циклический буфер длиной N, где N - кол-во коэфф-тов импульсной хар-ки фильтра. Вдвигаете в буфер отсчёт вх. сигнала, перемножаете буфер с ИХ фильтра, произведения суммируете. Краевой эффект будет заметен при недостаточной длине фильтра.
Цитата(Dubov @ Dec 21 2012, 14:26)

Я хочу сделать так: по указателю считать N отсчётов -> отфильтровать -> затем взять ещё N отсчётов - > отфильтровать....
Получите ужосчто. Циклическая свёртка вместо линейной. Сигнал фильтровать нужно непрерывно, а не блоками. Для этого и нужен сдвиговый буфер.
Если хотите делать фильтрацию в частотной области, то гугль по ключ. слову overlap-save Вам в помощь.