Доброго времени суток!
мне необходимо отфильтровать аналоговые сигналы методом скользящего среднего! сигнал подается на микроконтроллер. я использую ADUC842. написал программу, но не уверен что правильно реализовал метод скользящего среднего! вот кусок кода, в котором происходит считывание сигналов преобразование их с помощью АЦП в код, далее код преобразуется в напряжение, и потом идет фильтрация:
ADCRead(3); //читаем порт P1.3 и запускаем АЦП U21= (ADCDATAL+(ADCDATAH<<8))&0x0FFF; //снимаем код с АЦП U11= U21/1638; //перевод кода в напряжение (FFF/2,5=1638.4) - для фильтрации if(q==0) { Up1=Un1; //создание предыдущего зн-ия q=1; //взводим флаг } else { Un1=Up1*(1-p)+ Un1*p; //фильтрация (р=1/n, где n-количество отсчетов) Up1=Un1; //создание предыдущего зн-ия U21=Un1*1638; //перевод обратно в код } на сколько я понимаю скользящее среднее используется для фильтрации данных которые заданны массивом. как это реализовать в данном случаи?
помогите пожайлуста! очень нужно!
|