ffilter {seewave} | R Documentation |
This function filters out a selected frequency section of a time wave (low-pass, high-pass, low-stop, high-stop, bandpass or bandstop frequency filter).
ffilter(wave, f, from = FALSE, to = FALSE, bandpass = TRUE, custom = NULL, wl = 512, wn = "hanning", Sample = FALSE)
wave |
data describing a time wave
or a Sample object created generated a wav file
with loadSample (package sound). |
f |
sampling frequency of wave (in Hz).
Does not need to be specified if wave is a Sample object. |
from |
start frequency (in Hz) where to apply the filter. |
to |
end frequency (in Hz) where to apply the filter. |
bandpass |
if TRUE a band-pass filter is applied between
from and to , if FALSE a band-stop filter is applied
between from and to (by default TRUE ). |
custom |
a vector describing the frequency response of a custom filter.
This can be manually generated or obtained with spec and meanspec .
wl is no more required. See examples. |
wl |
window length for the analysis (even number of points). |
wn |
window name, see ftwindow (by default "hanning" ). |
Sample |
if TRUE and plot is FALSE
returns an object of class Sample . |
A short-term Fourier transform is first applied to the signal
(see spectro
), then the frequency filter is applied and the new
signal is eventually generated using the reverse of the Fourier Transform
(fft
).
There is therefore neither temporal modifications nor
amplitude modifications.
A new wave is returned as a one-column matrix
or as a Sample
object if Sample
is TRUE
.
Jerome Sueur sueur@mnhn.fr
a<-noise(f=8000,d=1) # low-pass b<-ffilter(a,f=8000,to=1500) spectro(b,f=8000,wl=512) # high-pass c<-ffilter(a,f=8000,from=2500) spectro(c,f=8000,wl=512) # band-pass d<-ffilter(a,f=8000,from=1000,to=2000) spectro(d,f=8000,wl=512) # band-stop e<-ffilter(a,f=8000,from=1500,to=2500,bandpass=FALSE) spectro(e,f=8000,wl=512) # custom myfilter1<-rep(c(rep(0,32),rep(1,32)),4) g<-fir(a,f=8000,custom=myfilter1) spectro(g,f=8000)