IIR-Filter in C.

OP #4192503
Lesenswert?
• ▲
▼
Morgen allerseits

ich habe in MATLAB mit dem fdatool ein digitales Filter kreiert. Mit 
"export C header" erhalte ich die Fixpoint-Koeffizienten, wobei ich 
gesagt habe, dass ich das Input- und Outputsignal als 16 Bit signed 
will, und die Koeffizienten auch 16 Bit sein sollen.

Folgender Code resultiert dann aus dem fdatool:
1
#define MWSPT_NSEC 3
2
const int NL[MWSPT_NSEC] = { 1,3,1 };
3
const int16_T NUM[MWSPT_NSEC][3] = {
4
  {
5
       12,      0,      0 
6
  },
7
  {
8
     8192,  16384,   8192 
9
  },
10
  {
11
     8192,      0,      0 
12
  }
13
};
14
const int DL[MWSPT_NSEC] = { 1,3,1 };
15
const int16_T DEN[MWSPT_NSEC][3] = {
16
  {
17
     8192,      0,      0 
18
  },
19
  {
20
     8192, -15475,   7331 
21
  },
22
  {
23
     8192,      0,      0 
24
  }
25
};

wie benutze ich diese Koeffizienten nun? ich habe keine Ahnung, wie der 
Output von diesem fdatool zu interpretieren ist. Leider ist es auch 
nirgends so genau dokumentiert :-(
 Hat das jemand hier schon mal benutzt und kann mir auf die Sprünge 
helfen?
#4193111
Lesenswert?
• ▲
▼
Hi,

ich kenne MATLAB leider nicht, erst recht nicht fdatool, aber ich habe 
mich intensiv mit digitalen IIR-Filtern befasst und mein eigenes "Tool" 
geschrieben. Es gibt auch Koeffizienten als Float-Zahlen aus. Die 
Algorithmen sind erklärt in 
http://www.beis.de/Elektronik/Filter/AnaDigFilt/AnaDigFilt.html, und das 
Tool (AnaDigFilt.exe) ist dort auch zu finden. Vorgehensweise: Analogen 
Prototyp eingeben, Sample Rate wählen, Ergebnis ansehen und die 
Koeffizienten aus dem Tab "Coefficients" kopieren und in C-Syntax 
umformen. Falls erforderlich, können auch die analogen Koeffizienten zur 
Berechnung der digitalen Koeffizienten eingesetzt werden. Vielleicht 
hilft dir das.

Wahrscheinlich könnte ich analysieren, was bei dir gemeint ist, aber die 
Arbeit überlasse ich dir lieber.

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.