Danke für den Tipp,

leider steht da auch nicht viel mehr als ich eh schon wusste, was dafür spricht, daß mit 16 Bit tatsächlich nicht mehr möglich ist (bei den beiden Beispiel-Filtern sind die Koeffizienten ja recht unkritisch). Das bedeutet ich müsste mehr Bits für meine Koeffizienten einplanen...

also mal am Beispiel von b0 (0,000077574211735)

b0 1.15 = 0,000091552734375 (18% Fehler)
b0 1.19 = 0,000078201293945 (0,8% Fehler)
b0 1.23 = 0,000077605247498 (0,04% Fehler)

Naja, wenigstens muss ich nicht bis 32 Bit gehen sondern kann mich auf 24 beschränken (oder 20, aber so oder so brauch ich ein Byte mehr). Wenn ich für das Eingangssignal bei 16 Bit bleibe wären meine Zwischenergebnisse 40Bit breit, wobei ich die unteren 24 Bit wegwerfen kann.


Ok, so werd ichs wohl implementieren...
leider macht das mein Filter langsamer, da ich mehr Multiplikationen und Additionen brauche und ich vermutlich zumindest die Koeffizienten im SRAM halten muss (bei 16 Bit hätte ich alles in Register quetschen können, das wär dann richtig schön schnell gewesen).