
This function returns the mean frequency spectrum (i.e. the mean relative amplitude of the frequency distribution) of a time wave. Results can be expressed either in absolute or dB data.
meanspec(wave, f, wl = 512, wn = "hanning", ovlp = 0, fftw = FALSE,
norm = TRUE, PSD = FALSE, PMF = FALSE, FUN = mean, correction = "none", dB = NULL,
dBref = NULL, from = NULL, to = NULL, identify = FALSE,
col = "black", cex = 1, plot = 1, flab = "Frequency (kHz)",
alab = "Amplitude", flim = NULL, alim = NULL, type ="l", ...)
an R object.
sampling frequency of wave
(in Hz). Does not need to be specified if embedded in wave
.
length of the window for the analysis (even number of points, by default = 512).
window name, see ftwindow
(by default "hanning"
).
overlap between two successive analysis windows (in %).
if TRUE
calls the function FFT
of the
library fftw
. See Notes of spectro
.
if TRUE
the mean spectrum is normalised (i. e. scaled) by its maximum.
if TRUE
return Power Spectra Density,
i. e. the square of the spectra.
if TRUE
return Probability Mass Function,
i. e. the probability distribution of frequencie.
The function to apply on the rows of the STFT matrix, by
default mean
for a mean spectrum but could be other as
median
or var
for a median spectrum or variance spectrum.
a character vector of length 1 to apply an
amplitude ("amplitude") or an energy ("energy") correction
to the FT window. This argument is useful only when one wish to obtain
absolute values that is when norm=FALSE
and PMF=FALSE
.
By default no correction is applied ("none").
a character string specifying the type dB to return: "max0" for a maximum dB value at 0, "A", "B", "C" and "D" for common dB weights.
a dB reference value when dB
is not NULL
. NULL
by default
but should be set to 2*10e-5 for a 20 microPa reference (SPL).
start mark where to compute the spectrum (in s).
end mark where to compute the spectrum (in s).
to identify frequency and amplitude values on the plot with the help of a cursor.
colour of the spectrum.
pitch size.
if 1
returns frequency on x-axis, if 2
returns
frequency on y-axis, (by default 1
).
title of the frequency axis.
title of the amplitude axis.
range of frequency axis (in kHz).
range of amplitude axis.
if plot
is TRUE
, type of plot that should be drawn.
See plot
for details (by default "l" for lines).
other plot
graphical parameters.
If plot
is FALSE
, meanspec
returns a two columns matrix,
the first column corresponding to the frequency axis, the second column
corresponding to the amplitude axis.
If identify
is TRUE
, spec
returns a list with
two elements:
the frequency of the points chosen on the spectrum
the relative amplitude of the points chosen on the spectrum
The argument peaks
is no more available
(version > 1.5.6). See the function fpeaks
for peak(s) detection.
spec
,fpeaks
,
localpeaks
, dynspec
,
corspec
, diffspec
, simspec
, fft
.
# NOT RUN {
data(orni)
# compute the mean spectrum of the whole time wave
meanspec(orni,f=22050)
# compute the mean spectrum of a time wave section (from 0.32 s to 0.39 s)
meanspec(orni,f=22050,from=0.32,to=0.39)
# different window lengths
op<-par(mfrow=c(3,1))
meanspec(orni,f=22050,wl=256)
title("wl=256")
meanspec(orni,f=22050,wl=1024)
title("wl=1024")
meanspec(orni,f=22050,wl=4096)
title("wl=4096")
par(op)
# different overlap values (almost no effects here...)
op<-par(mfrow=c(3,1))
meanspec(orni,f=22050)
title("ovlp=0")
meanspec(orni,f=22050,ovlp=50)
title("ovlp=50")
meanspec(orni,f=22050,ovlp=95)
title("ovlp=95")
par(op)
# use of flim to zoom in
op<-par(mfrow=c(2,1))
meanspec(orni,f=22050)
title("zoom in")
meanspec(orni,f=22050,wl=512,flim=c(4,6))
par(op)
# comparaison of spectrum and mean spectrum
op<-par(mfrow=c(2,1))
spec(orni,f=22050)
title("spec()")
meanspec(orni,f=22050)
title("meanspec()")
par(op)
# log scale on frequency axis
meanspec(orni, f=22050, log="x")
# median spectrum
meanspec(orni,f=22050, FUN=median)
# variance spectrum
meanspec(orni,f=22050, FUN=var)
# }
Run the code above in your browser using DataLab