www.mikrocontroller.net

Forum: Digitale Signalverarbeitung / DSP Dig. Filter - FIR?


Autor: Thomas M. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi,

in einer Source habe ich ein Programmteil gefunden:

float Filter(float IpulsNeu, unsigned char select)
{

 ImpulsAlt = ImpulsNeu * Tau[select] + ImpusAlt * (1-Tau[select]);


return ImpulsAlt;
}

Es weden kontiuierlich ankommende Werte durch die Zeile gejagt und
zurückgegeben
- select: Für Kanal 1 und Kanal 2. Wird immer gewechselt.
- Tau kann zwischen 0.0001 und 0.9999 eingestellt werden.

Könnte es sich dabei um ein Digitales Filter handeln, genuaergesagt um
ein FIR - Filter mit einen Koeffizienten. Ist es vielleicht auch ein
Fiefpass?

Danke!

Autor: Alex (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Es ist in dem Sinne schon ein Tiefpaß, der die Werte leicht glättet. Die
Bezeichnung FIR-Filter ist also gerechtfertigt.

Autor: ChristianF (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
hallo,

ist es nicht eher ein IIR-Filter? Die Impulsantwort ist unendlich,
oder?

Wenn "ImpulsNeu" einmal 1 o.ä. war, wird "ImpulsAlt" niemals 0 (von
Rechenungenauigkeiten einmal abgesehen).


Ich weiß, das ist Haarspalterei...

Autor: Thomas M. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Leider weiss ich nur sehr allgemein bescheid über dig. Filter.
Was ich gerne wissen würde ist, wie ich vorgehen sollte, wenn ich jetzt
den Koeffizienten bestimmen müsste?

Es ist richtig, mit der Funktion sollen die Werte geglättet werden und
es ist keine Haarspalterei, es kann nur einer von beiden sein.

Autor: Arvid Teichtmann (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi,

ImpulsAlt ist in dem Sourceschnipsel überhaupt nicht deklariert und
intialisiert. Ist ImpulsAlt lokal, global, static ... ?

Gruss
Arvid

Autor: Alex (ein anderer) (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Sieht aus wie ein IIR-Filter.
Insofern hat ChristianF recht. Allerdings bleibt ohne Kenntnis der
Koeffizienten die Wirkungsweise unklar.

Autor: Thomas M. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Die Werte die durch den Filter gehen sind fliesskommazahlen und sollten
in einem bestimmten Bereich leidern, wenn nicht soll das Filter sie
glätten. Die einzigen Parameter die ich einstellen kann ist der Wert
Tau[], dieser ist global und kann von 0.0001 - 0.9999 eingestellt
werden. Viel mehr weiss ich auch nicht.

Autor: Tassilo (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ist hier nicht ein simples RC Mathematisch nachgebildet!?

Liebe Grüße
Tassilo

Autor: compax (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Um ein FIR-Filter zu bauen:

Werte nehmen und z.B durch ihre anzahl dividieren.
Z(n+1) = a1*Z(n)+a2*Z(n-1)+a3*Z(n-3)+.... usw

Z(n+1) --> neuer berechneter Wert
Z(n)--> aktueller Abtastwert
Z(n-1)--> Abtastwert vorher

den Frequenzgang könntest du z.B mit MatLab simulieren

Digitalfilter können im Zeitbereich ider Frequenzbereich implementiert
werden.

Wenn du deinen Frequenzgang kennst so könntest du diesen in den
Zeitbereich zurücktransformieren--> Impulsantwort
Dann kannst du deine Daten mit der Impulsantwort Falten

Oder du machst deinen Filter mit der FFT.
Du liest deine Daten Blockweise ein. Gewichtest deine Werte mit der
Fensterfunktion. Das ist sehr wichtig um einen genügende Sperrdämpfung
zu erhalten. Dann multiplizierst du mit dem Frequenzganz und machst die
IFFT und spielst deine Daten wider aus.
Das ist der komplicierte Weg.

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.