Learn R Programming

seewave (version 1.6.3)

ffilter: Frequency filter

Description

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).

Usage

ffilter(wave, f, from = FALSE, to = FALSE, bandpass = TRUE,
custom = NULL, wl = 512, wn = "hanning", fftw = FALSE, output="matrix")

Arguments

Value

  • If plot is FALSE, a new wave is returned. The class of the returned object is set with the argument output.

Details

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.

See Also

afilter,lfs,fir

Examples

Run this code
a<-noisew(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)

Run the code above in your browser using DataLab