IIR SOS Koeffizienten für Biquad Element

Gast #1778810
Lesenswert?

Hallo miteinander,
Ich habe einen TMS320C5510 und nutze die DSP Library.
Jetzt habe ich in Matlab ein Tiefpass 2. Ordnung berechnet und will 
diesen implementieren.

Die Koeffizienten sind:

1   2   1   1   -1.3406   0.50947

Diese Koeffizienten müsste ich jetzt eigentlich ins Q0.15 Format 
bringen.
Das wäre ja kein Problem wenn die DSP Library den Koeffizienten a0 nicht 
zwingend auf 1 setzt.

Dieses Problem ist auch hier beschrieben (leider ohne Lösung)
http://groups.google.com/group/comp.dsp/browse_thread/thread/8598e8ceb7f0157/ff5f1ada3ce2601b

Was ist zu tun?

Vielen Dank
#1781679
Lesenswert?

Hab grade das "TMS320C5510" angeklickt. Der Datenblatt-Link läßt sich 
leider nicht eintragen, da TI nur einen symbolischen Link hat, das ist 
noch verbesserungsbedürftig. Vielleicht sollte man auch htm-Seiten 
eintragen können. Hier die Produktfamilie:
http://focus.ti.com/paramsearch/docs/parametricsearch.tsp?family=dsp&sectionId=2&tabId=133&familyId=325

Zur eigentlichen Frage - es ist also ein Fixed Point DSP. Da muß man 
doch immer "skalieren", also mit Zweierpotenzen multiplizieren und das 
nach der Berechnung wieder korrigieren. Es kann eigentlich nicht sein, 
dass eine DSP-Library das nicht zuläßt (ich kenne die nicht).
Gast #1782414
Lesenswert?

Hallo Christoph,
Ja es ist ein Fixed Point DSP. Skalieren und wieder korrigieren ist 
notwendig. Aber es hapert bereits an der Übertragungsfunktion.
Wenn ich die Koeffizienten durch zwei teile bekomme ich

0.5   1   0.5   0.5   -0.6703...   0.2547...

Dann kann ich diese ins Q0.15 Format überführen.

Leider lässt sich die 0.5, die an der vierten Stelle für a0 steht nicht 
auf 0.5 festlegen sondern steht fest auf 1 (ist so in der DSP Library).

Einen konstanten Faktor kann ich ja leider auch nicht herausziehen.

Ich verwende die Funktion IIRCAS5 aus der Library.
#1788006
Lesenswert?

Hallo,
ichh bin mir da nicht ganz sicher, was matlab und implementierung 
angeht, aber mal meine ansicht zu a0:

Durch die Mathematische Definition eines IIR Filters ist a0 immer 1.

BSP:
Differenzengleichung:   y(n)=b0*x(n)+a1*y(n-1)

dann diskretisieren:    Y(z)=b0*X(z)+a1*z^-1*Y(z)
umstellen:              Y(z)*(1-a1*z^-1)=b0*X(z)

daraus folgt:           H(z)=Y(z)/X(z)=b0/(1-a1*z^-1)

Und die 1 ist ja dann a0...

lg

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