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