Forum: Digitale Signalverarbeitung / DSP / Machine Learning Kleines Problem bei Koefizientenbestimmung bei FIR


von Jan R. (Gast)


Lesenswert?

Hallo,

möchte in ein DSP ein FIR Tiefpassfilter "einbauen". Dafür Wollte ich 
die Koeffizienten bestimmen, indem ich mit der Inversen ZDFT die 
Dirac-Impulsantwort eines Recteckfensters Berechene.


Natürlich habe ich jetzt die Sincfunktion herausbekommen, Allerdings, 
mit viel zu großen Amplituden, was zu einer Irren Verstärkung führt.

Was ist falsch?

Habe mich dann im Internet mal auf den Weg gemacht um etwas zu finden, 
wo diese Koeffizienten berechnet werden.

Habe das hier gefunden,
http://www.fh-kl.de/~hans.neuschwander/download_skripte/digfil/DigFilter.pdf

Hier wurden die Rohkoefizienten ebenfalls mit der Inversen FT berechnet, 
und die Lösungsfunktion entspricht bis auf die Multiplikation mit 2*fa 
genau der Meinen.

Was habe ich falsch gemacht? Danke schonmal.

von Jan R. (Gast)


Angehängte Dateien:

Lesenswert?

Oh statt der Latexgleichung steht da nur ein Fragezeichen..

Hänge mal ne Bilddatei an.

von Detlef K. (adenin)


Lesenswert?

Wieviel Taps (Stützstellen bzw. Koeffiziente) verwendest Du und was 
kommt dabei heraus, wenn Du alle Koeffizienten deines FIR addierst?

von Jan R. (Gast)


Lesenswert?

Detlef Kunz schrieb:
> Wieviel Taps (Stützstellen bzw. Koeffiziente) verwendest Du und was
> kommt dabei heraus, wenn Du alle Koeffizienten deines FIR addierst?

Mit Samplerate 1Khz und Fg= 100Hz

ist die Summe aller Koefizienten 1146,56

Das habe ich mit der Formel, die ich hergeleitet habe berechnet, nicht 
mit der aus dem Script.

von Detlef K. (adenin)


Lesenswert?

Teile alle Koeffizienzen durch 1146,56
Die Summe aller Koeffizienten muss 1 ergeben.

von Michael A. (michiavelli)


Lesenswert?

Jan R. schrieb:
> Habe das hier gefunden,
> http://www.fh-kl.de/~hans.neuschwander/download_skripte/digfil/DigFilter.pdf

Gl. 31 auf Seite 34 ist korrekt.

Bei dir steht aufm Bild
was wahrscheinlich
 heißen soll, das muss
 sein.

Desweiteren ist dein Sinus-Argument falsch (si-Funktion ist stets 
sin(x)/x, das seh ich bei dir nicht). Vielleicht auch nochmal eine 
anderen Quelle anschauen, da die Fenstermethode meiner Meinung nach in 
deiner Quelle schlecht erklärt wird.

von Jan R. (Gast)


Lesenswert?

bei der formel im skrip kürzt sich fg weg. da Im Zähler und  im nenner 
.keine ahnung warum das da noch steht. Bei mir bleibt aber Fa stehen, 
was seltsam ist.

Ist mein Vorgehen der integration Richtig? Ist FA gleich Fa da einmal 
großes A einmal kleines.  Ist es auch korekt, die grenzen auf +\- Fg zu 
legen, da die grenzfrequenz kleiner der Samplerate sein muss. und 
integral von 0, 0 ist.

von Jan R. (Gast)


Lesenswert?

Detlef Kunz schrieb:
> Teile alle Koeffizienzen durch 1146,56
> Die Summe aller Koeffizienten muss 1 ergeben.

Ja das ergibt 1.

von Detlef K. (adenin)


Lesenswert?

Jan R. schrieb:
> Detlef Kunz schrieb:
>> Teile alle Koeffizienzen durch 1146,56
>> Die Summe aller Koeffizienten muss 1 ergeben.
>
> Ja das ergibt 1.

Hmm, lol
Natürlich ergibt das 1.
Du hast mich falsch verstanden.
Denn die Summe der Koeffizienten representiert die Verstärkung deines 
Tiefpasses, also im Moment G=1146,56 (61.2dB)
Wenn Du eine Verstärkung von 1 erwartest, dann musst Du jeden einzelnen 
Koeffizienten durch die Summer aller Koeffizienten Teilen.
Die Summe der neuen Koeffizienten sollte dann 1 ergeben.
:)

: Bearbeitet durch User
von Jan R. (Gast)


Lesenswert?

schon klar :-)

Aber meine Ursprüngliche Frage, warum bei mir da fa sthenbleibt, ist 
noch nicht geklärt. Wo mein Fehler ist.

von Michael A. (michiavelli)


Lesenswert?

Jan R. schrieb:
> Aber meine Ursprüngliche Frage, warum bei mir da fa sthenbleibt, ist
> noch nicht geklärt. Wo mein Fehler ist.

Das ist natürlich ein bisschen Kaffeesatzleserei, wenn uns die ganzen 
Zwischenschritte der Rechnung vorenthalten werden.

Ich kann mich nur wiederholen, such dir ein anderes Skript, die 
Erklärung der Fenstermethode deiner Quelle ist meiner Meinung nach 
schlecht gemacht.

Dein Ansatz mit der iDTFT von -fg bis fg ist aber korrekt. Wobei dein 
Frequenzgang F(f) abhängig von f sein muss, wenn du über f integrierst. 
Das mit dem e^N/2-Term erschwert die Sache nur, ich würde das ganze 
erstmal für ein nicht-kausales Filter berechnen und dann um N/2 
verschieben.

Was laut Glaskugel dein Fehler sein könnte, ist die Normierung auf fA im 
e-Term, die gehört da nicht hin, sonst müsstest du Integrationsvariable 
und -grenzen anpassen.

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.