Spektrogramme

Auf Infraschall-Seiten werden auch oft Spektrogramme gezeigt. Spektrogramme sind zeitaufgelöste Fourietransformationen. Sie werden berechnet, in dem man ein Fenster über die Zeitreihe schiebt. Spektrogramme sind somit dreidimensionale Daten:

  • x-Achse: Startzeit des Fensters [Sekunden oder Uhrzeit]
  • y-Achse: Frequenz [Hz]
  • z-Achse: Schalldruck [dB]

Berechnung in R

Zur Berechnung von Spektrogrammen in R, muss man einmalig das R-Paket "oce" installieren.

install.packages('oce')

Danach kann man mit meinem Infrasonic-Paket die Daten für das Spektrogramm berechnen lassen:

x=infrasonic.calcFFT(d,matrix_output = TRUE,res=0.1)

Der Parameter "res" (resolution) legt die Frequenzauflösung und somit die Auflösung der y-Achse fest. Eine Höhere Frequenzauflösung benötigt jedoch eine größere Fensterlänge und bedingt damit eine schlechtere Zeitauflösung. Hier müssen somit je nach Aufgabenstellung Anpassungen vorgenommen werden.

Die Rückgabe der obigen Funktion ist eine Liste mit drei Elementen: t (==x-Achse), freq (==y-Achse), db (==z-Werte). Das Plotten des Spektrogramms übernimmt die Funktion "imagep" aus dem oce-Paket. Der komplette R-Code sieht wie folgt aus:

library(oce)
library(infrasonic)
d=read.csv2("Messung.2020-03-25 13:06:06.csv") # Datensatz der mit infrasonic.saveDate gespeichert wurde
x=infrasonic.calcFFT(d,matrix_output = TRUE,res=0.1)
imagep(x = as.POSIXct(as.character(d$t_abs[1]))+x$t,
       y = x$freq,
       z = t(x$db),
       col = oce.colorsTemperature,
       ylab = 'Frequency [Hz]',
       xlab = 'Time [s]',
       zlab = 'dB re 20µPa',
       drawPalette = T,
       decimate = F,
       zlim=c(20,60) # hier sollte je noch Infraschallniveau Anpassungen erfolgen
)

## oder man nutzt die im Infrasonic-Paket eingebaute Funktion
infrasonic.plotSpectrogram(d)

 

Spektrogramm

Das Spetrogramm zeigt eine 4 Stunden Infraschallmessung in unserer Küche. Gut zu erkennen sind drei breite Bänder bei 6, 12.5 und 20.5 Hz. Diese Bänder stammen von den Balkendecken in unserem Haus. Zur "Tagesschauzeit" war niemand in den Zimmern oberhalb der Küche (Anfang Spektrogramm). Die leuchtenden senkrechten Striche zeigen erhöhtes Infraschallniveau in allen Frequenzen. Ursache sind Öffnen und Schließen von Türen sowie Laufen auf der Treppe.

Die einzige klare durchgängie Linie liegt bei 16.5Hz und mit Einschränkungen bei 18.5Hz. Dies sind die ersten Oberschwingungen der Infraschallsignale der Mälzerei (vgl. Infraschallsignale in Harsdorf). Die Hauptschwingungen sind bei ganz genauem Blick ebenfalls im Spektrogramm zu erahnen, jedoch nur ganz schwach über dem Hintergrund. Mittelt man alle Einzel-FFTs erhält man die bereits vorgestellte Frequenz-Datstellung:

Spektrogramm2D

 

 

 

Diese Webseite verwendet Cookies. weitere Informationen