mikrocontroller.net

Forum: Digitale Signalverarbeitung / DSP Filterkoeffizienten aus zeitkontinuierlicher Impulsantwort


Autor: Hans Berlin (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,
ich bin gerade dabei ein bestimmtes linearphasiges FIR-Filter mit einer
vorgegebenen zeitkontinuierlichen Impulsantwort auf einem DSP zu
Implementieren. Z.Zt. bin ich ein wenig verwirrt was die Berechnung der
Koeffizienten anbelangt.

Hier als Beispiel eine der analogen Impulsantworten:
g(x)=((x^2-s^2)/s^4)*(1/sqrt(2*pi)*sigma)*exp(-(x.^2)/(2*sigma.^2));

Nur wie bekomme ich jetzt meine Koeffizienten (9 Taps sollten es sein).
Fourrierapproximation?Frequenzabtastmethode? Da ich bisher nur Filter in
Matlab mit vorgegebenem Toreranzschema über das FDATool erstellt habe
stehe ich hier ein wenig auf dem Schlauch...
Wer kann mir also ein paar Tipps geben?

Gruß
Hans

Autor: Alex (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wenn die Impulsantwort des Filters bekannt ist:

Sie läuft ja von -T/2 bis T/2. Diesen Abschnitt in x Segmente
(ordnungsabhängig) teilen und dann jeweils als Filterkoeffizient g(x)
nehmen. Die Koeffizienten sind in deinem Fall logischerweise
symmetrisch.

Im Endeffekt tastest du die Impulsantwort einfach ab.

Autor: Hans Berlin (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Danke schonmal für die Antwort,
so weit war ich auch schon (s. Anhang). Nur weiß ich nicht genau wo ich
die Grenzen für T/2 ansetzen soll!?

Autor: Alex (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ok, nächste Anlauf :)

Du hast ja eigentlich eine Fensterfunktion die du über deine
Eingangswerte bewegst. Diese Werte wurden mit einer bestimmten Frequenz
abgetastet.
Von dieser (diskreten) Fensterfunktion berechnest du die DFT. Diese ist
in diesem Fall gleich der Impulsantwort im Zeitbereich (Beweis siehe
Literatur). Diese diskrete Impulsantwort multiplizierst du mit deinem
diskreten Signal (Stichwort Faltung).

Die T/2 siehst du schon in der DFT, da dein Spektrum periodisch sein
wird. Wähle nur einen größeren Bereich auf der Frequenzachse. T ergibt
sich durch die Abtastfrequenz.

Darum musst du in Matlab beim Filterdesign immer die normierte
Schnittfrequenz (beim Tiefpass) angeben.

Autor: Alex (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Achso, da es hier kein RTFM gibt:

Richard G. Lyons
Understanding Digital Signal Processing

Das beste Buch für Anfänger was ich bis jetzt in den Händen hatte (auch
eines der teureren), und ich hatte einige in der Mangel :)

Autor: Alex (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Achso, zu den Koeffizienten nochmal:

Stell dir einfach vor, dass du das Fenster abtastest. Von diesen N
Werten machst du eine N-Punkte DFT. Die N Punkte die du dann erhälst
sind deine Koeffizienten.
Je mehr Werte desto genauer ist die DFT, also desto besser die
Filtereigenschaften.

Hoffe es ist klar geworden :)

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.