Hallo,
ich möchte ein Audiosignal von der Soundkarte als FFT Spektrum grafisch darstellen.
Die FFT Auflösung (Binbreite) sollte einstellbar sein.
Mit welchen Paketen kann man dass realisieren ?
Gruß Frank
Audiosignal als FFT Spektrum darstellen
-
- Beiträge: 3444
- Registriert: Mo 11. Sep 2006, 10:24
- OS, Lazarus, FPC: svn (Window32, Linux x64, Linux ARM (QNAP) (cross+nativ)
- CPU-Target: X32 / X64 / ARMv5
- Wohnort: Krefeld
Re: Audiosignal als FFT Spektrum darstellen
Sowas habe ich schonmal in einem DAW-Programm mit der eingebauten Sprache gemacht. Deshalb nur ein paar Stichworte:
Die eigentliche FFT sollte kein Problem sein. Dafür gibt es bestimmt mehrere Pascal Funktionen.
Standard_FFT überführt mathematisch ein Array von komplexen Zahlen in ein gleich großes Array anderer komplexer Zahlen. Da die Audio-Daten aber reell sind ist das ineffektiv. Es gibt einen Algorithmus der für reelle inpüut-daten wesentlich schneller ist.
Alternativ gibt es auch einen Algorithmus, der reelle Stereo-Daten so schnell bearbeitet wie komplexe Mono-Daten.
Für FFT von Realtime-Audio-Daten brauchst Du einen Algorithmus, um "gleitende" Fenster "häppchenweise" zu konvertieren. (Stichwort "sinc")
-Michael
Die eigentliche FFT sollte kein Problem sein. Dafür gibt es bestimmt mehrere Pascal Funktionen.
Standard_FFT überführt mathematisch ein Array von komplexen Zahlen in ein gleich großes Array anderer komplexer Zahlen. Da die Audio-Daten aber reell sind ist das ineffektiv. Es gibt einen Algorithmus der für reelle inpüut-daten wesentlich schneller ist.
Alternativ gibt es auch einen Algorithmus, der reelle Stereo-Daten so schnell bearbeitet wie komplexe Mono-Daten.
Für FFT von Realtime-Audio-Daten brauchst Du einen Algorithmus, um "gleitende" Fenster "häppchenweise" zu konvertieren. (Stichwort "sinc")
-Michael
-
- Beiträge: 478
- Registriert: Fr 13. Sep 2013, 12:07
- OS, Lazarus, FPC: Debian Bullseye (L 2.2.0)
- CPU-Target: 64Bit
- Wohnort: Rügen
Re: Audiosignal als FFT Spektrum darstellen
Das Problem der Real Daten bekommt man mit einer Hilbert transformation gelöst - habe ich in GNU Radio getestet.
Die Frage ist eigentlich mit welchen Paketen bekomme ich das in freepascal hin ?
- Zugriff auf die Soundkarte
- verarbeiten der Audio Daten
- Darstellung im Form
Gruß Frank
Die Frage ist eigentlich mit welchen Paketen bekomme ich das in freepascal hin ?
- Zugriff auf die Soundkarte
- verarbeiten der Audio Daten
- Darstellung im Form
Gruß Frank
- af0815
- Lazarusforum e. V.
- Beiträge: 6198
- Registriert: So 7. Jan 2007, 10:20
- OS, Lazarus, FPC: FPC fixes Lazarus fixes per fpcupdeluxe (win,linux,raspi)
- CPU-Target: 32Bit (64Bit)
- Wohnort: Burgenland
- Kontaktdaten:
Re: Audiosignal als FFT Spektrum darstellen
DL3AD hat geschrieben:Die Frage ist eigentlich mit welchen Paketen bekomme ich das in freepascal hin ?
- Zugriff auf die Soundkarte
Das ist OS-Spezifisch. Ev. über vlc, gstreamer oder ffmpeg kann man da OS unabhängig lösen. Man muss dann immer auf eine unabhängige Plattform ausweichen um das OS spezifische zu vermeiden.
Blöd kann man ruhig sein, nur zu Helfen muss man sich wissen (oder nachsehen in LazInfos/LazSnippets).
-
- Beiträge: 575
- Registriert: Sa 22. Okt 2016, 23:12
- OS, Lazarus, FPC: W10, L 2.2.6
- CPU-Target: 32+64bit
- Wohnort: Dresden
Re: Audiosignal als FFT Spektrum darstellen
Hallo Frank,
vielleicht nützt dir das was: https://github.com/gyrotron/MAAplot
Von hier: https://www.lazarusforum.de/viewtopic.php?f=29&t=8217
Nachtrag:
FFT: https://forum.lazarus.freepascal.org/in ... ic=14485.0
2. Beitrag von Laksen.
73 Maik
vielleicht nützt dir das was: https://github.com/gyrotron/MAAplot
Von hier: https://www.lazarusforum.de/viewtopic.php?f=29&t=8217
Nachtrag:
FFT: https://forum.lazarus.freepascal.org/in ... ic=14485.0
2. Beitrag von Laksen.
73 Maik
LG Maik
Windows 10,
- Lazarus 2.2.6 (stable) + fpc 3.2.2 (stable)
- Lazarus 2.2.7 (fixes) + fpc 3.3.1 (main/trunk)
Windows 10,
- Lazarus 2.2.6 (stable) + fpc 3.2.2 (stable)
- Lazarus 2.2.7 (fixes) + fpc 3.3.1 (main/trunk)