Forum: Digitale Signalverarbeitung / DSP / Machine Learning Filterkoeffizienten aus zeitkontinuierlicher Impulsantwort


von Hans Berlin (Gast)


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

von Alex (Gast)


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.

von Hans Berlin (Gast)


Angehängte Dateien:

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!?

von Alex (Gast)


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.

von Alex (Gast)


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 :)

von Alex (Gast)


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 :)

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.