FIR v C

Marek Peca marek@tynska.cuni.cz
Úterý Červen 13 10:06:28 CEST 2006


Zdravim,

> Zdravim konferu. Nepodelil by se nekdo se mnou o realizaci FIR filtru v 
> MCU a nejlépe v Ccku ? Jeste jsem to nedelal a dost by mi bodlo takove 
> nejake nakopnuti.

zalezi na tom, jak moc to chcete mit chytre (rychle).
Pokud jste bez naroku na sviznost, muzete to udelat napriklad pomoci
kruhoveho zasobniku.

  //vstupni vzorek = s, vystupni vzorek = y

  /* pridej novy vzorek do zasobniku */
  if (++pozice == delka)
    pozice = 0;
  zasobnik[pozice] = s;
  
  /* proved FIR filtraci nad zasobnikem */
  y = 0.0;
  for (k = 0, i = pozice; k < delka; k++) {
    y += b[k]*zasobnik[i];
    if (i == 0)
      i = delka - 1;
    else
      --i;
  }

-- takhle se to hodi, kdyz vzorky postupne prichazeji a odchazeji.
Samozrejme situace bude jina, pokud se pracuje s blokem dat, ktery je
z jinych duvodu v pameti. Tam je to pak jeste obycejnejsi for cyklus.

ZdraviM.P.




Další informace o konferenci Hw-list