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?
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?
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.
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
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
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.
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?
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.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.