Hej,
Håller och på och programmerar ett lågpass FIR filter men jag är lite osäker på hur ordlängderna skall vara.
FIR filtret är på direkt form, altså med lika många multiplicerare och adders som ordningen på filtret.
Input datan är 16 bitar, koeffecienterna är också 16 bitar. Filtret är av ordningen 36.
Ordlängden efter varje multiplikation blir 16+16 = 32 bitar, av additionerna så har jag lärt mig att ordlängden ökar med ceil( log2( n ) ).
Altså så borde ordlängden i slutet bli:
16+16+6=38 bitar.
Jag vill ha lika många bitar in som ut altså 16, då får jag trunkera så att jag använder bitar 38 till 23.
Men när jag jämför min trunkerade utdata så är de ungefär 100 gånger mindre än indatan. Altså filtret fungerar ingen vidare då det dämpar signalen med ca 45 db.
Jag kan ju anpassa manuellt men känns inte som det skall behövas?
