Filterkoeffizienten aus zeitkontinuierlicher Impulsantwort

Gast #253087
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
Gast
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.
Gast
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.
Gast
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 :)
Gast
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

Eine eigene Frage? Dieser Thread ist über 21 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

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.