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.
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.