www.mikrocontroller.net

Forum: Digitale Signalverarbeitung / DSP IIR Filter in C


Autor: Stefan Bechtel (pinki)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo zusammen,
ich bin absolout neu auf dem Gebiet DSP und brauche deshalb etwas Hilfe. 
Im Rahmen meines Studiums soll ich einen IIR-Filter mit folgender Formel 
in C erstellen

Y(n)=2 { a [x(n) - x(n - 2)] + j y(n - 1) – ß y(n - 2)}

Mein Problem: Ich hab einen eingelesenen 16 Bit Codec Wert im LSW, für 
die High-Level Implementierung in C muss ich einen 32 Bit Wert mit 
Vorzeichen berechnen.
Ich hoffe, dass mir einer da weiterhelfen kann.


Autor: --- (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> Ich hoffe, dass mir einer da weiterhelfen kann.
wo?
IIR in C implementieren?
konvertieren nach long (32 bit) in C?

beherrscht der DSP Gleitkommaarithmetik?
ohne weitere Angaben lautet meine Antwort

double xn=0,xn1=0,xn2=0,yn=0,yn1=0,yn2=0,dYn;
double a,j,beta;
int16 LSW;
long Yn=0;
while(1){
 xn=LSW;
 dYn=2*(a*(xn-xn2)+j*yn1-beta*yn2);
 Yn=(long)dYn;
 xn2=xn1; xn1=xn; yn2=yn1; yn1=dYn;
}

Autor: Berti (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
xn2=xn1...  so was lässt sich mit einem Ringpuffer wesentlich schneller 
und schöner lösen...

Autor: Andreas Schwarz (andreas) (Admin) Benutzerseite Flattr this
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Bei nur 4 Zustandsvariablen dürfte die direkte Zuweisung i.d.R. 
schneller sein.

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.