Настройка и мониторинг фильтра нижних частот (ФНЧ)


Основные функции фильтра нижних частот

Установка частоты среза (cut-off frequency)

Настройте частоту среза/отсечки фильтра нижних часов при помоши функции setFilterFrequency().

dcmotor.setFilterFrequency(freq);

Когда задана частота среза фильтра нижних частот, сигналы, соответствующие частотам (превышающие частоту среза) не учитываются во время мониторинга энкодера.

Мониторинг значений счетчика шума

Совершайте мониторинг значений счетчика шума при помощи функции getFilterPNC().

pnc = dcmotor.getFilterPNC();

Пример

#include <PhpocExpansion.h>
#include <Phpoc.h>

byte spcId = 1;

int freq = 1000;
int count_prev = 0;
int count;
int diff;

ExpansionDCMotor dcmotor(spcId, 1);

void setup() {
    Serial.begin(9600);
    while(!Serial)
        ;

    Phpoc.begin(PF_LOG_SPI | PF_LOG_NET);
    Expansion.begin();

    Serial.println(dcmotor.getPID());
    Serial.println(dcmotor.getName());

    dcmotor.setPeriod(10000);
    dcmotor.setWidth(3000);
}

void loop() {
    if(freq > 7000) {
        dcmotor.setWidth(0);
        return;
    }
    dcmotor.setFilterFrequency(freq);

    // set the noise counter value
    count = dcmotor.getFilterPNC();
    diff = count - count_prev;
    Serial.print("noise count at freq");
    Serial.print(freq);
    Serial.print(" : ");
    Serial.println(diff);

    freq += 200;
    count_prev = count;
    delay(200); 
}

Другие функции

Установка значения счетчика шума

Установите или инициализируйте значение счетчика шума, используя функцию setFilterPNC().

dcmotor.setFilterPNC(pnc);