561. Fourier Analysis (Soundkarten-Tool)
- < Vorheriges Bild
- 561. Fourier Analysis (Soundkarten-Tool)
- Nächstes Bild >
von JPD
Gepostet am Freitag, 6. August 2010
Das Bild wurde 10 Mal bewertet.Du musst eingeloggt sein, um eine Bewertung abgeben zu können.
Update 02.11.2011:
In der Zwischenzeit funktioniert die Kommunikation mit der winmm.dll fehlerfrei und die Fensterfunktionen wurden zu Blackman-Harris angepasst. Musste noch einige Änderungen vornehmen, vor allem die Gamma-Korrektur wurde verbessert und dem Spektrum vom 120 db (typisch) angepasst.
Außerdem habe ich eine vu-anzeige mit 16 Bit eingebaut.
Leider bis jetzt noch früher Beta-Status.
Grüße Jan
----
Hallo zusammen,
heute möchte ich mal eines meiner kleinen Projekte vorstellen.
Ich habe mich die letzten Monate mit der Fourier-Analyse beschäftigt und mein aktueller Projektstatus sieht wie folgt aus:
- Berechnen der Frequenzanteile mit Phase (unabhängige Samplegröße)
- Berechnen des db-Wertes (bei 16 Bit bis -96,3 db)
Das Ganze läuft inzwischen in Echtzeit und könnte bald als Analyse-Tool für Soundkarten rauskommen. Zum Beispiel zum Aufzeichnen von alten Tapes oder Kontrolle am Line-In. Probleme bereitet mir noch die winmm.dll (grrrr), eventuell lässt sich hier noch etwas anderes finden (bin für jeden Ratschlag dankbar).
Hier seht ihr nur einen Test, die GUI dazu ist noch in Entwicklung.
Grüße Jan
PS: Die FFT sieht ziehmlich "verrauscht" aus, sind aber die Hintergrundgeräusche des Liedes. Ein einzelner Sinus ergibt einen schwarzen Hintergrund mit richtigem Peak.
In der Zwischenzeit funktioniert die Kommunikation mit der winmm.dll fehlerfrei und die Fensterfunktionen wurden zu Blackman-Harris angepasst. Musste noch einige Änderungen vornehmen, vor allem die Gamma-Korrektur wurde verbessert und dem Spektrum vom 120 db (typisch) angepasst.
Außerdem habe ich eine vu-anzeige mit 16 Bit eingebaut.
Leider bis jetzt noch früher Beta-Status.
Grüße Jan
----
Hallo zusammen,
heute möchte ich mal eines meiner kleinen Projekte vorstellen.
Ich habe mich die letzten Monate mit der Fourier-Analyse beschäftigt und mein aktueller Projektstatus sieht wie folgt aus:
- Berechnen der Frequenzanteile mit Phase (unabhängige Samplegröße)
- Berechnen des db-Wertes (bei 16 Bit bis -96,3 db)
Das Ganze läuft inzwischen in Echtzeit und könnte bald als Analyse-Tool für Soundkarten rauskommen. Zum Beispiel zum Aufzeichnen von alten Tapes oder Kontrolle am Line-In. Probleme bereitet mir noch die winmm.dll (grrrr), eventuell lässt sich hier noch etwas anderes finden (bin für jeden Ratschlag dankbar).
Hier seht ihr nur einen Test, die GUI dazu ist noch in Entwicklung.
Grüße Jan
PS: Die FFT sieht ziehmlich "verrauscht" aus, sind aber die Hintergrundgeräusche des Liedes. Ein einzelner Sinus ergibt einen schwarzen Hintergrund mit richtigem Peak.
- < Vorheriges Bild
- 561. Fourier Analysis (Soundkarten-Tool)
- Nächstes Bild >
Kommentare
@Vertex:
So ganz mit dem Schalldruck (gibts den überhaupt virtuell, braucht man dazu nicht noch Watt-Angaben?) habe ich das noch nicht raus. Momentan steht das Projekt mal wieder aus zeitlichen Gründen und zwecks Hochschule und laufenden Projektarbeiten.
Die db-Werte habe ich einfach mit dem Verhältnis der maximalen Amplitude und der aktuellen Amplitude berechnet. Somit kommt man bei einem Sample-Wert-Unterschied von 1 genau auf -96.3 db, was bei 16 Bit somit der Dynamik einer CD entspricht.
Beide Grafiken zeigen im Endeffekt das Gleiche, nur siehst du auf der unteren eben noch den zeitlichen Verlauf dabei. Die Höhe der Balken bzw. die Farbintensität sind ebenfalls db-Werte. So kannst du z.B. messen, welche Amplitude bzw. db-Wert ein Sinus im Signal hat. Ein Signal mit -3 db sind eben nur noch 50% usw ... . Mit diesem Tool sieht man auch wie schlecht manche OnBoard-Soundkarten sind, die bei -30 db mit Rauschen beginnen ...
Was es für mich zu tun gibt: Die winmm.dll (das geht jetzt übrigens mit 4 Buffern einwandfrei) mit meinem Tool verküpfen. Wenn ich Zeit dazu finde, werde ich das auch umsetzen und ins Code-Archiv mit Beschreibung hochstellen. Die Art die FFT zu erzeugen ist eine eigens ausgedachte und vielleicht auch noch nicht die Beste, da extrem Prozessorlastig.
Grüße Jan
So ganz mit dem Schalldruck (gibts den überhaupt virtuell, braucht man dazu nicht noch Watt-Angaben?) habe ich das noch nicht raus. Momentan steht das Projekt mal wieder aus zeitlichen Gründen und zwecks Hochschule und laufenden Projektarbeiten.
Die db-Werte habe ich einfach mit dem Verhältnis der maximalen Amplitude und der aktuellen Amplitude berechnet. Somit kommt man bei einem Sample-Wert-Unterschied von 1 genau auf -96.3 db, was bei 16 Bit somit der Dynamik einer CD entspricht.
Beide Grafiken zeigen im Endeffekt das Gleiche, nur siehst du auf der unteren eben noch den zeitlichen Verlauf dabei. Die Höhe der Balken bzw. die Farbintensität sind ebenfalls db-Werte. So kannst du z.B. messen, welche Amplitude bzw. db-Wert ein Sinus im Signal hat. Ein Signal mit -3 db sind eben nur noch 50% usw ... . Mit diesem Tool sieht man auch wie schlecht manche OnBoard-Soundkarten sind, die bei -30 db mit Rauschen beginnen ...
Was es für mich zu tun gibt: Die winmm.dll (das geht jetzt übrigens mit 4 Buffern einwandfrei) mit meinem Tool verküpfen. Wenn ich Zeit dazu finde, werde ich das auch umsetzen und ins Code-Archiv mit Beschreibung hochstellen. Die Art die FFT zu erzeugen ist eine eigens ausgedachte und vielleicht auch noch nicht die Beste, da extrem Prozessorlastig.
Grüße Jan
(Sonntag, 16. Januar 2011 um 00:41 Uhr)
Von Vertex
Da Frage ich gleich mal an der Stelle, was mich schon immer interessierte:
In der Akustik gibt man ja immer den Schwalldruckpegel als Verhältnis zum Normaldruck p0 = 20 µPa an: Lp = 10log(p~²/p0²) dB. Was macht man da softwaretechnisch? Da gibts ja nur Samplewerte von bspw. 127 bis -128 bei 8 Bit Auflösung.
Und dann noch, was in diesem FFT "Balkendiagramm" drin steht? Auf der X-Achse verläuft die Frequenz aber was stellt die Y-Achse dar? Die Energie?
Wie heißt dieses untere Diagramm? Sonogramm?
In der Akustik gibt man ja immer den Schwalldruckpegel als Verhältnis zum Normaldruck p0 = 20 µPa an: Lp = 10log(p~²/p0²) dB. Was macht man da softwaretechnisch? Da gibts ja nur Samplewerte von bspw. 127 bis -128 bei 8 Bit Auflösung.
Und dann noch, was in diesem FFT "Balkendiagramm" drin steht? Auf der X-Achse verläuft die Frequenz aber was stellt die Y-Achse dar? Die Energie?
Wie heißt dieses untere Diagramm? Sonogramm?
(Freitag, 3. September 2010 um 11:48 Uhr)
Von JPD
Werde das Projekt in der nächsten Zeit in einen Worklog verschieben, da es mir gelungen ist mit der winmm.dll glasklare Audioaufnahmen zu erstellen.
(Montag, 9. August 2010 um 20:04 Uhr)
Von vanjolo
Hallo JPD
das Design erinnert mich an Seti@home. Das ist jahrelang auf meinem Rechner gelaufen...
das Design erinnert mich an Seti@home. Das ist jahrelang auf meinem Rechner gelaufen...
(Sonntag, 8. August 2010 um 15:36 Uhr)
Von JPD
RMS wird eingebaut
Bin zur Zeit noch dran die winmm.dll so zu gestalten, dass man Sounds aufnehmen kann. Habe es eben geschafft mit 3 Buffern von je 2048 Bytes eine Aufnahme mit der winmm.dll aufzubauen. Der Windows-Audio-Recorder wäre somit in BlitzBasic möglich.
Muss nun noch die Buffer mit den Funktionen verknüpfen, optimieren und eine geeignete Struktur zum Einbauen erschaffen, das kann eben noch ein weilchen dauern.
Mfg Jan
Bin zur Zeit noch dran die winmm.dll so zu gestalten, dass man Sounds aufnehmen kann. Habe es eben geschafft mit 3 Buffern von je 2048 Bytes eine Aufnahme mit der winmm.dll aufzubauen. Der Windows-Audio-Recorder wäre somit in BlitzBasic möglich.
Muss nun noch die Buffer mit den Funktionen verknüpfen, optimieren und eine geeignete Struktur zum Einbauen erschaffen, das kann eben noch ein weilchen dauern.
Mfg Jan
(Samstag, 7. August 2010 um 10:02 Uhr)
Von Ray-Tracer
Hi, sieht interessant aus ,könnte ich gebrauchen, hast du auch sowas wie eine (rms) durchschnitts-Lautstärke-Anzeige geplant ?
Von JPD