Learn R Programming

IRISSeismic (version 1.0.7-1)

butterworth: Apply Butterworth filter

Description

The butterworth method of Trace objects returns a new Trace where data in the @data slot have been modified by applying a Butterworth filter.

Usage

butterworth(x, n, low, high, type)

Arguments

x
a Trace object
n
filter order
low
frequency used in low- or stop/band-pass filters
high
frequency used in high or stop/band-pass filters
type
type of filter -- 'low', 'high', 'pass' or 'stop'

Value

A new Trace object is returned.

Details

This method creates a Butterworth filter with the specified characteristics and applies it to the Trace data.

When only n and low are specified, a high pass filter is applied. When only n and high are specified, a low pass filter is applied. When n and both low and high are specified, a band pass filter is applied. To apply a band stop filter you must specify n, low, high and type='stop'

See Also

signal::butter, signal::filter

Examples

Run this code
  ## Not run: 
# # Open a connection to IRIS DMC webservices
# iris <- new("IrisClient")
# 
# # Trying to match the results in figure 2a of
# #
# # "Determination of New Zealand Ocean Bottom Seismometer Orientation
# #  via Rayleigh-Wave Polarization", Stachnik et al. 
# #
# # geode.colorado.edu/~sheehan/pdf/StachnikNZorientation-SRL2012.pdf
# 
# starttime <- as.POSIXct("2009-02-18 22:01:07",tz="GMT")
# endtime <- starttime + 630
# verticalLines <- starttime + seq(30,630,100)
# 
# # Get data
# stZ <- getSNCL(iris,"ZU.NZ19..BHZ",starttime,endtime)
# st2 <- getSNCL(iris,"ZU.NZ19..BH2",starttime,endtime)
# st1 <- getSNCL(iris,"ZU.NZ19..BH1",starttime,endtime)
# 
# # Demean, Detrend, Taper
# trZ <- DDT(stZ@traces[[1]],TRUE,TRUE,0.05)
# tr2 <- DDT(st2@traces[[1]],TRUE,TRUE,0.05)
# tr1 <- DDT(st1@traces[[1]],TRUE,TRUE,0.05)
# 
# # Bandpass filter
# trZ_f <- butterworth(trZ,2,0.02,0.04,type='pass')
# tr2_f <- butterworth(tr2,2,0.02,0.04,type='pass')
# tr1_f <- butterworth(tr1,2,0.02,0.04,type='pass')
# 
# # 3 rows
# layout(matrix(seq(3)))
# 
# # Plot
# plot(trZ_f)
# abline(v=verticalLines,col='gray50',lty=2)
# plot(tr2_f)
# abline(v=verticalLines,col='gray50',lty=2)
# plot(tr1_f)
# abline(v=verticalLines,col='gray50',lty=2)
# 
# # Restore default layout
# layout(1)
#   ## End(Not run)

Run the code above in your browser using DataLab