Quantisierung von Filter

Gast #3483109
Lesenswert?

Hallo,
ich habe in Matlab ein IIR Filter entworfen. Genauer gesagt, ist es eine 
Kombination aus IIR und FIR, also es gibt einen Feedforward und einen 
Feedback Teil.

Jetzt habe ich hier also meine Filterkoeffizienten. Das sind a1 bis a4 
und b1 bis b4. Alles Floating point Zahlen, kleiner als 1. Wie kann ich 
nun mein Filter in eine gescheite digitale Form überführen, sodass ich 
es auf einem Mikrocontroller ohne Float Unit implementieren kann? Ich 
dachte an 16 Bit int Berechnung. Muss ich einfach alle Koeffizienten mit 
2^16 Multiplizieren?
Gast #3483286
Lesenswert?

Linda schrieb:
> Muss ich einfach alle Koeffizienten mit 2^16 Multiplizieren?
Das kommt drauf an, womit du die Koeffiziente in deiner Rechnung 
multiplizierst. Der int16-Bereich darf in der ganzen Rechnung nicht 
verlassen werden. Je nach Stabilität, i.e. Empfindlichkeit für 
Abweichungen in den Koeffizienten durch Quantisierungsfehler, kann int16 
arg knapp werden.
Gast #3483784
Lesenswert?

Hallo,
also ich könnte intern im Filter ja auch alles mit Int32 oder 
meinetwegen mit Int64 rechnen. Einfach der Eingang und Ausgang muss 
int16 sein, weil mein ADC und DAC so viele Bits haben.

Mit In32 könnte es gehen? Wie rechne ich denn nun die Koeffizienten um?

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren