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: 6766
- 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
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.DL3AD hat geschrieben:Die Frage ist eigentlich mit welchen Paketen bekomme ich das in freepascal hin ?
- Zugriff auf die Soundkarte
Blöd kann man ruhig sein, nur zu Helfen muss man sich wissen (oder nachsehen in LazInfos/LazSnippets).
-
- Beiträge: 582
- Registriert: Sa 22. Okt 2016, 23:12
- OS, Lazarus, FPC: W10, L 3.8
- 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: 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: 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 3.8 (stable) + fpc 3.2.2 (stable)
- Lazarus 4.99 (trunk) + fpc 3.3.1 (main/trunk)
Windows 10,
- Lazarus 3.8 (stable) + fpc 3.2.2 (stable)
- Lazarus 4.99 (trunk) + fpc 3.3.1 (main/trunk)