Forum: Digitale Signalverarbeitung / DSP / Machine Learning Tool für FIR Custom Filters


von Manfred M. (bittbeisser)


Lesenswert?

Gibt es für die Erstellung von "FIR Custom Filters" etablierte standard 
Tools, die auch unter Linux verwendbar sind? Also ich habe das nach dem 
DSP Guide (http://www.dspguide.com/ch17/1.htm ) mal mit 32 Werten 
manuell ausprobiert, was zwar grundsätzlich funktioniert hat, aber bei 
größerer Anzahl sehr umständlich ist.

Also eigentlich möchte ich wissen, ob es sich lohnt, diese Funktion in 
ein eigenes (bereits vorhandenes) Testprogramm zu integrieren. Das würde 
ja praktisch auf ein Zeichenprogramm hinauslaufen, was ich bisher noch 
nicht gemacht habe (bisher nur Ausgabe).

Also wenn es bereits Programme gibt, die einen vorgegebenen Frequenzgang 
abtasten und/oder die Koeffizienten oder wenigstens die Werte für die 
Inverse DFT z.B. als Text Datei erstellen können, währe es ja 
überflüssig da ein eigenes Programm zu entwickeln.

von derguteweka (Gast)


Lesenswert?

Moin,

Unter Matlab und Octave gibt's die Funktion fir2; die koennt' das 
machen, was du willst. Aus der Hilfe:

B = fir2 (N, F, M)
Produce an order N FIR filter with arbitrary frequency response M
over frequency bands F, returning the N+1 filter coefficients in B.
The vector F specifies the frequency band edges of the filter
response and M specifies the magnitude response at each frequency.

Gruss
WK

von Manfred M. (bittbeisser)


Lesenswert?

Moin,

ich glaube das ist nicht ganz das was ich suche, bzw. das ist schon der 
zweite Schritt. Ich dachte mehr an etwas mit dem ich den Frequenzgang 
erstmal zeichnen oder sonstwie festlegen kann. Das soll also so etwas 
wie eine Frequenzgang Korrektur werden.

Die Werte für F und M müssen ja irgendwo herkommen.

Gruß
Manfred

von Alex (Gast)


Lesenswert?

Moin,

unter matlab das fdatool ?

von derguteweka (Gast)


Lesenswert?

Moin,

Ah, ok. Das ist was anderes. Bei Korrekturfiltern hab' ich's eigentlich 
so erlebt, dass die Daten auch irgendwie "mathematisch" vorlagen und 
nicht "per Freihandzeichnung". Also z.B. um einen sin(f)/f Frequenzgang 
zu kompensieren, nimmt man halt f/sin(f)...
Zum Zeichnen kenn' ich nix.

Gruss
WK

von Manfred M. (bittbeisser)


Lesenswert?

Fdatool scheint das tatsächlich so ganz nebenbei auch zu können, ist 
aber leider kein Linux Programm.

Auf die Idee, den Frequenzgang quasi freihändig zu zeichnen, bin ich 
durch das Beispiel im DSP Guide gekommen, aber da ist möglicherweise die 
Experimentierfreude mit mir durchgegangen.

Wahrscheinlich kann man die Abweichung bei einem CIC Filter sogar 
mathematisch ausdrücken, aber mein Testprogramm könnte natürlich auch 
die Differenz der Messwerte zur 0-dB Linie ausrechnen. Und für ein 
A-Bewertungsfilter habe ich auch eine Formel gefunden, deren Bedeutung 
sich mir aber noch nicht erschließt.

Gruß
Manfred

von Christoph db1uq K. (christoph_kessler)


Lesenswert?


von Manfred M. (bittbeisser)


Angehängte Dateien:

Lesenswert?

Danke für den Tipp. Auch wenn mich das jetzt nicht direkt weiter bringt 
zeigt es doch, dass meine Idee nicht völlig abwegig war.

Den Artikel kannte ich zwar schon, hatte ihn aber damals gleich wieder 
ausgespeichert, da ich zum damaligen Zeitpunkt noch keine IIR Filter 
handhaben konnte. Ich habe mir jetzt aber mal den Spass erlaubt, die 
Koeffizienten aus dem Artikel in mein Testprogramm zu übernehmen. Dabei 
hat sich dann gezeigt, das ich die Vorzeichen der 
Rückkopplungskoeffizienten invertieren musste.

Der Link hat mir aber auch gezeigt, das ich den Frequenzgang ja gar 
nicht selber am Bildschirm zeichnen muss. Ich könnte ja auch einfach 
eine Koordinatenliste aus einer Textdatei importieren.

Gruß
Manfred (DK6HC)

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.