IIR Filter in Integer

OP (Firma: Raich Gerätebau & Entwicklung) #2540187
Lesenswert?
• ▲
▼
Da ich das hier nicht gefunden habe, stell ich mal diese IIR 
Filterfunktion hier vor.
Die Koeffizienten sind im Format 2.14, d.h. -2 = 0x8000 und 
+1,999irgendwas = 0x7FFF. D.h. die mit Matlab o.ä. errechneten 
Koeffizienten sind mit 2^14 zu multiplizieren. Eingangs und 
Ausgangssample ist signed 16Bit. Overflow wird abgefangen. Auf einem 
STM32F103 braucht die Funktion etwa 1us. Wenn die Koeffizienten aufgrund 
ungünstiger Abtast/Grenz Frequenz < 8Bit werden ,sollte man auf 2.30 
Format gehen,was hier aber nicht ausgeführt wurde. Bis 1:20 Grenz/Abtast 
Frequenz funktioniert das alles noch sehr gut.

Grüsse
Angehängte Dateien:
OP (Firma: Raich Gerätebau & Entwicklung) #2541366
Lesenswert?
• ▲
▼
Das könnte man nur mit 2 Ringbuffern lösen(einer für Eingangswerte,einer 
für Ausgangswerte). Die verwaltung der Pointer ist dann vom Aufwand her 
fast größer als jetzt. Wenn dir was besseres einfällt, bitte posten.

Grüsse

Antwort schreiben

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.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.