[an error occurred while processing this directive]
|
Вы же накапливаете значение сигнала в этих переменных! А это будет та самая гнилая фильтрация прямоугольным окном.
Насчет CIC и 51. CIC строится следующим образом. Нужна одна ячейка и кольцевой буфер на N выборок. И все. Длины кода - для 16-бит. Текущую выборку прибавляете к ячейке-аккумулятору (2 команды ассемблера). Загружаете указатель на буфер в DPTR. Извлекаете оттуда старую выборку, заменяя ее с пост-инкрементом DPTRа свежей. Вычитаете ее из ячейки-аккумулятора. 11-13 команд ассемблера. Корректируете DPTR для "циркулярности" буфера. Если буфер не пересекает 256-байтных страниц ОЗУ, то 3 команды ассемблера. Сохраняете указатель. 2 команды. И ЭТО ВСЕ? Откуда у вас 500 ячеек? Вы туда еще всю C-шную библиотеку что-ли подключили?
E-mail: info@telesys.ru