www.mikrocontroller.net

Forum: Digitale Signalverarbeitung / DSP IIR SOS Koeffizienten für Biquad Element


Autor: Karsten S. (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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_thr...

Was ist zu tun?

Vielen Dank

Autor: Christoph Kessler (db1uq) (christoph_kessler)
Datum:

Bewertung
0 lesenswert
nicht 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/parametricsea...

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).

Autor: Karsten S. (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Fabian R. (fabi123)
Datum:

Bewertung
0 lesenswert
nicht 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

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.