LabVIEWForum.de
Frequenzband isolieren und Vergleichen - Druckversion

+- LabVIEWForum.de (https://www.labviewforum.de)
+-- Forum: LabVIEW (/Forum-LabVIEW)
+--- Forum: LabVIEW Allgemein (/Forum-LabVIEW-Allgemein)
+---- Forum: Grafik & Sound (/Forum-Grafik-Sound)
+---- Thema: Frequenzband isolieren und Vergleichen (/Thread-Frequenzband-isolieren-und-Vergleichen)



Frequenzband isolieren und Vergleichen - ssk - 18.07.2007 11:07

HI!

Ich bin Praktikant und soll ein VI erstellen, dass ein bestimmtes Geräusch (eine Art Pfeifen) aus einem Audiosignal herausfiltert, und beim Abgleich mit einem anderen Audiosignal "erkennt" und bescheid sagt.

Zunächst vorneweg:

Ich will NICHT, dass ihr meine Arbeit macht und ich mich zurücklehnen kann, aber meine praktische Erfahrung mit LabVIEW ist, naja, arg überschaubar (3 Tage). Ich habe die beigepackten Dokumente gelesen und auch ausgiebig in der Hilfe und in den Beispielen gestöbert. Theoretisch habe ich auch ne idee wie ich das machen will, allerdings brauche ich jetzt eure Hilfe, ob ich das so machen kann, wie ich mir das vorstelle und wenn ja wie...

Ich würde nämlich zunächst das Audiosignal mit Pfeifen mithilfe von Fourierananlyse in seine Sinus- und Cosinuswellen zerlegen. Dann dieselbe Prozedur mit dem Audiosignal ohne Pfeifen. Wenn ich jetzt die beiden Ergebnisse "voneinander abziehe" bleibt ja quasi nurnoch das Pfeifen übrig...Wenn ich das Pfeifen nun also isolierrt habe, lasse ich den Rechner dann jedes neu hereinkommende Audiosignal auch wieder schön in seine Sinus- und Cosinuswellen zerlegen und überprüfen, ob die für das Pfeifen charackteristischen Wellen da auch wieder drin vorhanden sind.

Ist das so oder so ähnlich oder irgendwie allgemein möglich? Wenn ja bitte helft mir herauszufinden wie...

Danke schonmal im Vorraus

Sascha


Frequenzband isolieren und Vergleichen - dc6xs - 18.07.2007 11:31

' schrieb:HI!

Ich bin Praktikant und soll ein VI erstellen, dass ein bestimmtes Geräusch (eine Art Pfeifen) aus einem Audiosignal herausfiltert, und beim Abgleich mit einem anderen Audiosignal "erkennt" und bescheid sagt.

Zunächst vorneweg:

Ich will NICHT, dass ihr meine Arbeit macht und ich mich zurücklehnen kann, aber meine praktische Erfahrung mit LabVIEW ist, naja, arg überschaubar (3 Tage). Ich habe die beigepackten Dokumente gelesen und auch ausgiebig in der Hilfe und in den Beispielen gestöbert. Theoretisch habe ich auch ne idee wie ich das machen will, allerdings brauche ich jetzt eure Hilfe, ob ich das so machen kann, wie ich mir das vorstelle und wenn ja wie...

Ich würde nämlich zunächst das Audiosignal mit Pfeifen mithilfe von Fourierananlyse in seine Sinus- und Cosinuswellen zerlegen. Dann dieselbe Prozedur mit dem Audiosignal ohne Pfeifen. Wenn ich jetzt die beiden Ergebnisse "voneinander abziehe" bleibt ja quasi nurnoch das Pfeifen übrig...Wenn ich das Pfeifen nun also isolierrt habe, lasse ich den Rechner dann jedes neu hereinkommende Audiosignal auch wieder schön in seine Sinus- und Cosinuswellen zerlegen und überprüfen, ob die für das Pfeifen charackteristischen Wellen da auch wieder drin vorhanden sind.

Ist das so oder so ähnlich oder irgendwie allgemein möglich? Wenn ja bitte helft mir herauszufinden wie...

Danke schonmal im Vorraus

Sascha

Die Idee ist nicht verkehrt, aber Du könntest Dir auch mal den LMS-Algorithmus für ein adaptives Filter anschauen, damit könnte man auch das Störsignal unterdrücken und erkennen.

BTW: LabVIEW kann FFT, ist vielleicht etwas schneller als die "normale" Fourier-Zerlegung. Allerdings sollte man bei der FFT etwas aufpassen, denn da gibt es einige Stolperstellen.

Eventuell ist auch eine Filterung vor dem Vergleichen nicht verkehrt, denn wenn dein Störsignal z.B. nur im Frequenzbereich von 1-3kHz auftritt, lohnt es ja nicht umbedingt von 0Hz- 20kHz zu berechnen und zu vergleichen. Ist halt die Frage wie viel Rechenleistung Du zur verfgung hast.

Gruß, Rob


Frequenzband isolieren und Vergleichen - ssk - 18.07.2007 13:47

danke für die schnelle Antwort!

Habe ich die Funktionsweise von diesem LMS-Algorithmus richtig verstanden, wenn ich denke, dass er zum ermittelt von Ausgleichsgraphen bestimmt ist? Das ist zumindest das, was ich aus dem, was ich aus der Hilfe und der Beispielsammlung gegezogen habe. Wie kann ich das denn für meine Zwecke nutzen?

Da ich halt noch blutiger Anfänger bin, wäre es super, wenn ihr mir irgendwelche Beispiel-VIs sagen könntet, wo ich sowas ähnlich mal in "live" sehen kann...

Vielen Dank


Frequenzband isolieren und Vergleichen - dc6xs - 18.07.2007 14:02

' schrieb:danke für die schnelle Antwort!

Habe ich die Funktionsweise von diesem LMS-Algorithmus richtig verstanden, wenn ich denke, dass er zum ermittelt von Ausgleichsgraphen bestimmt ist? Das ist zumindest das, was ich aus dem, was ich aus der Hilfe und der Beispielsammlung gegezogen habe. Wie kann ich das denn für meine Zwecke nutzen?

Da ich halt noch blutiger Anfänger bin, wäre es super, wenn ihr mir irgendwelche Beispiel-VIs sagen könntet, wo ich sowas ähnlich mal in "live" sehen kann...

Vielen Dank

Dafür kann man den LMS-Algo auch nutzen, bei einem adaptiven Filter wird er genutzt um die Filterkoeffizienten zubestimmen.
Im Endeffekt vergleichst Du das saubere Signal mit dem gefilterten Stösignal und drehst solange an den Filterkoeffizienten bis die Differenz des beiden Signale 0 ist.
Blockdiagramm eines adapativen Filtes in der englischen Wikipedia x(n) is das gestörte Signal, d(n) das saubere Signal, welches Du als Referenz hast.

Ob es da was als fertiges VI im ExampleFinder gibt, hab ich gerade nicht im Kopf,
aber zumindest verschiedene Filter-Bausteine gibts in LV(Kann natürrlich sein das die nicht im BasisPaket mit enthalten sind).
Ansonsten such doch mal bei NI auf der webseite ob sich da nicht auch was zu findet.

Gruß, Rob


Frequenzband isolieren und Vergleichen - ssk - 19.07.2007 12:23

HA!

Habe jetzt erstmal ein Programm zusammengeschustert, das klappt. Es zwar noch nicht alle features, die es später einmal haben soll, aber das Grundsätzlivh funktioniert.

Zuerst habe ich, quasi Barfuß, drei .wavs aufgenommen, einmal ein Rauschen, dann ein Rauschen mit Pfeifen und noch ein Rauschen, um zu überprüfen, ob das VI möglicher-, und fälschlicherweise auch auf ein anderes Signal ohne Pfeifen anspringt.

Die Dateien kann ich jetzt in dem VI laden, woraufhin es Fourier-analysiert wird. Das Pfeifen hat, na klar, ein charakeristischen Peak im Leistungspektrogramm, den die beiden Rauschsignale nicht haben. Also hab ich den Signalabschnitt mit ebendiesem Peak extrahiert und einen oberen Grenzwert festgelegt. Wenn ich die Dtei mit Pfeifen abspiele warnt er, wenn die Dateien "mit ohne Pfeifen" abgespielt werden, sagt er, dass alles OK sei.

Das ist wahrscheinlich jetzt sehr unelegant, aber es funktioniert!

Wenn ich jetzt morgen ein Mikrofon bekomme, dann ändere ich doch nurnoch, dass das Signal, was Analysiert wird nicht mehr aus dem Speicher kommt, ondern vom Mikorofn direkt. Kann LabVIEW, bzw. mein Laptop (Toughbook CF-30, 2x 1,6 GHz, 512 MB RAM) das in Echtzeit? Wenn nein, dann wäre wahrscheinlich eine Alternative, das eingehende Signal in kleine "Häppchen" zerlegt zwischenzuspeichern und dann durch die FFT zu jagen, oder?

Danke für Eure Hilfe,

Sascha