R-Paket "infrasonic2"

Installation und Update

Zur Installation führen die die folgenden Befehle aus:

install.packages(c("oce","signal","serial"))
install.packages("infrasonic2", repos = "http://www.bayceer.uni-bayreuth.de/R-repository", type="source")

Update geht über

update.packages(repos = "http://www.bayceer.uni-bayreuth.de/R-repository", type="source")

Nutzung des Pakets

Das Handling der Daten erfolgt über eine Liste. Diese hat drei Einträge:

1. $values: Vektor mit den Druckdaten in Pa
2. $freq: Sampling-Frequenz in Hz
3. $start: Startzeitpunkt der Messung als POSIXct

Man kann somit auch künstlich Daten erzeugen, z.B. mit dem folgenden R-Code:

values=rnorm(10001,sd=0.1)+2*sqrt(2)*sin(2*pi*seq(0,100,0.01) ## Datenreihe
d=list(values=values,freq=100,start=as.POSIXct("2021-04-06 12:00")) ## Liste

Jetzt hat man eine künstliche Datenreihe mit einem 100dB-1Hz-Sinussignal auf einem Rauschhintergrund. Die Datenreihe wurde mit 100Hz aufgenommen. Startzeitpunkt ist 06.04.2021 12:00 lokale Zeit.

Als nächstes muss man das Paket laden:

library(infrasonic2) ## Laden des Pakets

 Zum Plotten des Rohsignals gibt es den Befehl

infrasonic.plotSignal(d) ## Plotten der gesamten Rohdaten

Mit diesem Befehl sollte man bei sehr langen Datenreihen jedoch vorsichtig sein. Dies kann dazu führen, dass die Darstellung extrem lang dauert.

Plot Roh-Signal

Besser ist es über Funktionsparameter den Ausschnitt einzuschränken. Z.B.:

infrasonic.plotSignal(d,duration=10,offset=5) # 5-15 s
infrasonic.plotSignal(d,t_abs_lim=c("2021-04-06 12:00:10","2021-04-06 12:00:15")) # 10-15 s

Das Frequenzspektrum erhält man über

infrasonic.plotFFT(d) ## Frequenzspektrum

Frequenzspektrum

Die Berechnung des Schmalbandspektrums erfolgt über ein Hanning-Fenster. Die Terzpegel werden durch Summierung der Schmalbandpegel berechnet. Auch die Funktion infrasonic.plotFFT lässt sich über Parameter verändern. Interessant ist v.a. die Frequenzauflösung.

infrasonic.plotFFT(d,res=0.02) ## berechnet Schmalbandspektrum mit 0.02Hz Bin-Breite

Zum Erzeugen eines Spektrogramms gibt es die Funktion

infrasonic.plotSpectrogram(d,db_lim = c(40,100)) ## Spektrogramm

SpektrogrammDer Parameter db_lim legt die Farbskala fest. Weitere Parameter sind in der Hilfe beschrieben

?infrasonic.plotSpectrogram ## Aufrufen der Hilfeseite

 Natürlich lassen sich die Funktionen, die der Berechnung der Plots zugrunde liegen auch einzeln aufrufen. Dies geht mit der Funktion

infrasonic.calcFFT(d) ## Berechnung des Frequenzspektrums

Per default liefert diese Funktion das RMS gemittelte Spektrum. Alternativ kann man sich auch die Matrix ausgeben lassen. Dazu setzt man den Parameter matrix_output=T

Zur Berchnung der Terzpegel gibt es die Funktion

infrasonic.calcThirds(d) ## Berechnung des Terzspektrums

Rückgabe dieser Funktion ist ein data.frame. In der Spalte ws stehen die dB-Werte der Wahrnehmungsschwelle. Diese sollten zur Bewertung der Pegel herangezogen werden.

Natürlich arbeitet man nicht mit künstlich generierten Datensätzen sondern mit echten Messungen. Zum Einlesen von Messungen gibt es den Befehl

d=infrasonic.readRaw("pfad/datei_name.csv") ## Einlesen einer Messung und speichern in der Variable d 

Die Auswertung der eingelesenen Daten erfolg dann mit den oben beschriebenen Befehlen.

Diese Webseite verwendet Cookies. weitere Informationen