Audiosignal als FFT Spektrum darstellen

Antworten
DL3AD
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

Audiosignal als FFT Spektrum darstellen

Beitrag von DL3AD »

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

mschnell
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

Beitrag von mschnell »

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

DL3AD
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

Beitrag von DL3AD »

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

Benutzeravatar
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

Beitrag von af0815 »

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

sstvmaster
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

Beitrag von sstvmaster »

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

Antworten