фильтр на 50 Гц

gena321
Offline
Зарегистрирован: 19.01.2019
Здравствуйте
Пытаюсь сделать режекторный  фильтр на  50 Гц , но пока нет ничего на выходе, подскажите пожалста как исправить программу. 
 
//https://gist.github.com/cilliand/2674c9bd55960179e14d#file-filters-cpp
HardwareTimer pwmtimer1(1);
#define NZEROSNOTCH 8
#define NPOLESNOTCH 8
#define GAINNOTCH   1.136930320e+00

int sampleRate = 256;
int input = PA7;
int out = PA8; //T1C1



void setup()
{
  pinMode(PA8, PWM);


}

static float xvnotch[NZEROSNOTCH + 1], yvnotch[NPOLESNOTCH + 1];
static inline float filterNotch50Hz(float input);

void loop()

{

  pwmtimer1.pause();
  pwmtimer1.setPrescaleFactor(1);
  pwmtimer1.setOverflow(100);
  //pwmtimer1.setCompare(TIMER_CH1, 50);
  pwmtimer1.setCompare(TIMER_CH1, output); // 
  pwmtimer1.resume();

  xvnotch[0] = xvnotch[1]; xvnotch[1] = xvnotch[2]; xvnotch[2] = xvnotch[3]; xvnotch[3] = xvnotch[4]; xvnotch[4] = xvnotch[5]; xvnotch[5] = xvnotch[6]; xvnotch[6] = xvnotch[7]; xvnotch[7] = xvnotch[8];
  xvnotch[8] = input / GAINNOTCH;
  yvnotch[0] = yvnotch[1]; yvnotch[1] = yvnotch[2]; yvnotch[2] = yvnotch[3]; yvnotch[3] = yvnotch[4]; yvnotch[4] = yvnotch[5]; yvnotch[5] = yvnotch[6]; yvnotch[6] = yvnotch[7]; yvnotch[7] = yvnotch[8];
  yvnotch[8] =   (xvnotch[0] + xvnotch[8]) -   2.6983691309 * (xvnotch[1] + xvnotch[7]) +   6.7304484875 * (xvnotch[2] + xvnotch[6])
                 -   9.3230670449 * (xvnotch[3] + xvnotch[5]) +  11.6679900010 * xvnotch[4]
                 + ( -0.7736282195 * yvnotch[0]) + (  2.1544643168 * yvnotch[1])
                 + ( -5.5436864413 * yvnotch[2]) + (  7.9278080943 * yvnotch[3])
                 + (-10.2416524940 * yvnotch[4]) + (  8.4530545984 * yvnotch[5])
                 + ( -6.3025540854 * yvnotch[6]) + (  2.6118549514 * yvnotch[7]);
  // return yvnotch[8];
  output = int(yvnotch[8]);
}

 

 

gena321
Offline
Зарегистрирован: 19.01.2019

ошибка  - пожалуйста

mykaida
mykaida аватар
Offline
Зарегистрирован: 12.07.2018

Аппаратно чего не устраивает? Уж от 50-60Гц давно все придумано.

gena321
Offline
Зарегистрирован: 19.01.2019

Схемы видел, там нужны нетипичные номиналы но программы не встретил.