FIR Filter Ergebnisse

Gast #1527505
Hallo ich habe einen FIR Bandpass Filter gebaut mit der Ordnung 8. Ich 
habe jetzt das Problem, wie interpretiere ich das Ergebniss? Ich gebe ja 
z:b. 256 Abtastwerte rein und diese werden dann durch die 
Filterkoeffizienten verändert.

Wie bekomme ich jetzt die Frequenz heraus aus den Ergebnissen des FIR 
Filters?

Ich hoffe ihr könnt mir helfen! Soll ich die Ergebnisse mittels FFT 
analysieren oder kann ich direkt herauslesen wie stark der 
Bandpassbereich ist, bei der Schwingung?
Gast
Hallo,

wenn Du einen Bandpass implementiert hast, dann weiß Du doch die 
Frequenz die er (aus-)filtert. Also miss die Leistung die hinten heraus 
kommt und mach, was Du damit auch immer anstellen willst.
Bei 8 Koeffizienten ist der Bandpass natürlich nicht besonders steil, so 
dann Du bei höheren Genauigkeitsanforderungen noch zusätzlich filtern 
oder via FFT analysieren musst.
Aber ohne Kristallkugel wird das nix.

Viele Grüße,
 Martin L.
Michi schrieb:
> Wie bekomme ich jetzt die Frequenz heraus aus den Ergebnissen des FIR
> Filters?

Mit einem Frequenzgenerator ein Sinussignal von 0 Hz bis fmax 
durch"wobbeln" und das Signal vom Filterausgang auf einem Oszilloskop 
betrachten. Da wo das Signal erscheint ist die untere Grenzfrequenz vom 
Filter, da wo es wieder verschwindet die obere. Oder meinst Du auf 
mathematischem Weg?
Gast
Also  mein Problem ist das:

Ich habe jetzt einen Ordnung 40 FIR Bandpass Filter genommen. Jetzt 
nehme ich die Abtastwerte jage sie durch den Filter am Ende kommen 
Zahlen raus. Wie interpretiere ich diese! Da ich ja bei 256Abtastwerte, 
256 Filterwerte bekomme.

Wenn ich jetzt zehn FIR Filter habe z.B. 128Hz - 132Hz, 136Hz - 
138Hz,...., 160Hz - 164Hz.

Woran erkenne ich jetzt welche Frequenz am stärksten Vertreten ist auf 
mathematischem Weg.

Ich danke für eure Hilfe
Der Frequenzgang läßt sich zum Beispiel mit Scilab plotten, wenn die 
Filterkoeffizienten in die Übertragungsfunktion umgerechnet werden:

http://www.afs.enea.it/software/scilab/scilab-usermanual-directory/
> Signal Processing toolbox >frmag - magnitude of FIR and IIR filters

ähnliche Befehle sind "bode", "repfreq", "dbphi", "phasemag", je nachdem 
in welcher Form die Filterfunktion vorliegt.
Gast
Danke für die Hilfe. Habt ihr vlt irgendein Link an dem der Übergang vom 
Zeitdiskreten Signal, zu der Formel der Koeffizienten berechnung, Aufbau 
Filter bis hin zur Verarbeitung der Koeffizenten eines Bandpass Filters 
beschrieben ist?

Weil ich muss in meiner Thesis ergründen warum gerade der FIR Filter gut 
oder nicht so gut läuft!

Ich irre gerade noch zu sher herum und kann keine genauen Ergebnisse 
fördern. Ich bin reiner Informatiker hab mit ET nichts am Hut und 
deswegen brauch ich in dem Thema mehr Hilfestellng
Gast
Wenn du einen Filter mit einem Dirac-Impuls anregst erhälst du als 
Antwort ein Signal über welches du eine FFT machen kannst. Das Ergebnis 
ist der Frequenzgang des Filters.

Einfacher ist es einfach mit Matlab oder SciLab oder ... die Filter 
auszuwerten.

Beschreibe doch bitte einfach (ausführlich mit vernünftiger 
Satzstruktur) was du genau machen möchtest.

Hast du Eingangs- und Ausgangssignal gegeben und sollst das Filter 
rekonstruieren?

Oder ist es eine mathematische Spielerei? Wenn du festellten möchtest, 
welche Frequenz ein bestimmter Bandpass am besten passieren lässt dann 
leite doch einfach die Laplace-Transformierte seiner 
Übertragungsfunktion ab und suche dir das Maximum.
Du schaust Dir einfach den Amplitudengang an in dem du deine berechneten 
Koeffizienten in die Formel der Z-Transformation einsetzt:

x(z)=sum von 0 bis 40 X(k)*z^(-k)

X(k) ist in diesem Fall dein Koeffizientenwert

Aus dieser Summenformel bildest Du durch mathematische Umformung deine 
Übertragungsfunktion G(z) und dann ersetzt Du für k = e^jwT um den 
Frequenzgang zu bilden. Danach bildest den Betrag von G(z) um auf deinen 
Amplitudengang zu kommen. Jetzt kannst Du den Amplitudengang betrachten 
in dem Du alle Frequenzen nacheinander einsetzt. Würde wie bereits 
gesagt, dass ganze mit Matlab berechnen. Es sei denn Du rechnest gerne 
von Hand.

Hoffe ich konnte dir weiterhelfen.

Viele Grüße, Timo
Gast
Okay entschuldigung für meine Satzstruktur. Weihnachten ging nicht ganz 
ohne Spuren an mir vorbei.

Also ich soll eine Software erstellen, die Noten in einem Audiosignal 
erkennt. Als Input habe ich Abtastwerte des Signals. Jetzt versuche ich 
zu erkennen welche Noten gespielt wurden. Dazu schneide ich zunächst die 
Noten aus dem Signal aus (Ich schaue wo eine Note anfängt und wo 
aufhört). Dann will ich diese Abschnitte mit ihren Abtastwerten 
analysieren. Ich fenstere diese Werte mit einem Hamming Fenster. Jetzt 
will ich hierbei die Bandpass Filter einsetzen:

z.B.

128 - 132HZ Note C
140 - 148Hz Note A
...

Ich würde gern wissen wie ich mittels Filter dies analysieren kann und 
erkennen welches Band am stärksten vertreten ist.

Ich habe diesen kompletten Ansatz funktionsfähig mit einer FFT 
umgesetzt. Jetzt soll ich mit Filterumsetzung ein Vergleich ziehen.

Ich hoffe ihr könnt mir helfen.
Gast
Ich würde dir zu diesem Thema Lektüre von Rick Lyons empfehlen. Die ist 
vergleichsweise leicht zu verstehen.

Eine FFT (bzw. allgemeiner DFT) ist im Prinzip auch nur ein n-faches 
Filter. Die einzelnen Lobes sind die Ausgangswerte der Filter.

Das mit dem Notenausschneiden würde ich bleiben lassen (Stichwort 
Filtereinschwingzeit). Warum nicht einfach die benötigten X Filter 
parallel auf dem Signal rechnen lassen. Ein zusätzlicher Algorithmus 
versucht die einzelnen Noten zu erkennen, bspw. indem er die Einhüllende 
berechnet und laut-leise Übergänge erkennt. In der Mitte eines 
"laut"-Intervalls schaut man sich dann einfach die Ausgangswerte der 
Filter an und nimmt den mit dem größten (dafür muss logischerweise noch 
eine RMS-Berechnung oder Ähnliches an den Filterausgang). Das klappt 
aber logischerweise nicht mit zusammenhängend gespielten Noten.
Dort könnte ich mir vorstellen, dass man in einem "laut"-Intervall 
zusätzlich auf Änderungen in den Filterausgangswerten achtet, um 
Notenwechsel zu erkennen.

Wie gehst du das Problem an?
Welche Software wird verwendet?
Warum muss es ein FIR-Filter sein?
Gast
Hey danke für die Antwort.

Also es muss kein FIR Filter genommen werden, es geht nur darum eine 
andere Technik als die FFT zu verwenden um Vergleichsergebnisse zu 
produzieren.
Welche würden sich hierfür eignen?

Ich programmiere die Software komplett selber, mit allen Einzelteilen. 
Die Software steht auch soweit und jetzt geht es daran zu optimieren und 
andere Wege zu finden.

Das Notentrennen hat mit der FFT schon sehr gut funktioniert, da ich die 
Note nach dem Schneiden künstlich gestreckt habe, sodass ich genügend 
Werte hatte zum analysieren.

Okay kann vlt jemand anhand eines einfachen Sinus mit 16 Abtastwerten 
mal ein Filter berechnen und mir dies schicken? Das ich eine 
Beispielrechnung habe.

Ich bin auch via ICQ erreichbar, falls jemand mir jemand da besser 
helfen kann, gebe ich ihm die Nummer.

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 16 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.