fir | R Documentation |
This function is a FIR filter that filters out a selected frequency section of a time wave (low-pass, high-pass, low-stop, high-stop, bandpass or bandstop frequency filter).
fir(wave, f, channel = 1, from = NULL, to = NULL, bandpass = TRUE, custom = NULL,
wl = 512, wn = "hanning", rescale=FALSE, listen = FALSE, output = "matrix")
wave |
an R object. |
f |
sampling frequency of |
channel |
channel of the R object, by default left channel (1). |
from |
start frequency (in Hz) where to apply the filter. |
to |
end frequency (in Hz) where to apply the filter. |
bandpass |
if |
custom |
a vector describing the frequency response of a custom filter.
This can be manually generated or obtained with |
wl |
window length of the impulse filter (even number of points). |
wn |
window name, see |
rescale |
a logical, if |
listen |
a logical, if |
output |
character string, the class of the object to return, either
|
This function is based on the reverse of the Fourier Transform
(fft
) and on a convolution (convolve
) between the
wave to be filtered and the impulse filter.
A new wave is returned. The class
of the returned object is set with the argument output
.
Jerome Sueur
Stoddard, P. K. (1998). Application of filters in bioacoustics. In: Hopp, S. L., Owren, M. J. and Evans, C. S. (Eds), Animal acoustic communication. Springer, Berlin, Heidelberg,pp. 105-127.
ffilter
, bwfilter
, preemphasis
, lfs
, afilter
a<-noisew(f=8000,d=1)
# low-pass
b<-fir(a,f=8000,to=1500)
spectro(b,f=8000)
# high-pass
c<-fir(a,f=8000,from=2500)
spectro(c,f=8000)
# band-pass
d<-fir(a,f=8000,from=1000,to=2000)
spectro(d,f=8000)
# band-stop
e<-fir(a,f=8000,from=1500,to=2500,bandpass=FALSE)
spectro(e,f=8000)
# custom filter manually generated
myfilter1<-rep(c(rep(0,32),rep(1,32)),4)
g<-fir(a,f=8000,custom=myfilter1)
spectro(g,f=8000)
# custom filter generated using spec()
data(tico)
myfilter2<-spec(tico,f=22050,at=0.7,wl=512,plot=FALSE)
b<-noisew(d=1,f=22050)
h<-fir(b,f=22050,custom=myfilter2)
spectro(h,f=22050)
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.