MatchCoefDPZ: Find Digital Match to Analog Poles/Zeros

Description Usage Arguments Details Value Note Author(s) See Also Examples

View source: R/MatchCoefDPZ.R

Description

Calculates digital poles and zeros to match a continuous instrument response given in poles, zeros, and sensitivity. Discretization effects mean that the given poles and zeros do not work for finite sample rates, with discrepancies increasing as the time interval increases. This function uses a Markov Chain Monte Carlo (MCMC) routine to match the responses.

Usage

1
2
MatchCoefDPZ(PZ, dt, N, niter = 50000, burn = 0, sigfac = 1, fh =
0.25/dt, k = 0.001, verbose = TRUE)

Arguments

PZ

List including poles and zeros of instrument response

dt

Sample interval (s)

N

Number of samples to use when matching response (higher to match lower frequencies)

niter

Number of iterations in Markov Chain Monte Carlo

burn

Burn-in period of MCMC

sigfac

Factor by which standard deviations are reduced in MCMC

fh

Highest frequency to try to match (default 0.25 * sampling rate)

k

Weight to give to misfit for frequencies over fh–should be low to prevent high frequencies from being matched at the expense of low frequencies

verbose

Logical: if TRUE, progress updates are printed to the screen

Details

Large N allow it to match very low frequencies, but take longer to calculate. Large niter means longer calculation time, but probably a closer match. The burn-in period should be set to zero unless you want the posterior distribution of the poles and zeros. Large sigfac means that the MCMC makes smaller jumps, meaning it explores the sample space more slowly, but is less likely to make large jumps away from the interesting region. Note that the standard deviations of proposal distributions of the model parameters are proportional to the magnitude of the "guess" model–meaning that model parameters identically equal to zero (such as zeros at the origin) are fixed.

Discretization effects often make it difficult to match higher frequencies. Close match of somewhat high frequencies is done at the expense of poor match of very high frequencies. If very high frequencies are not interesting, fh should be left at its default value. Otherwise, it should be set to the highest interesting frequency.

Value

List including the following elements:

b

Moving Average polynomial coefficients

a

Autoregressive polynomial coefficients

analogresp

Continuous "analog" response

digitalresp

Response of digital filter

inv

Detailed MCMC results

error

Geometric root-mean-square error between digital and analog response

DPZ

Digital Poles and Zeros

Note

MakeDPZ is a higher-level routine and should be used for most applications.

Author(s)

Jake Anderson

See Also

MakeDPZ

Examples

1
2
3
4
5
# Response of Guralp CMG-40T

PZ = list(poles = c(-0.149 + 0.149i, -0.149 - 0.149i, -503, -1010,
-1130), zeros = c(0, 0), Knorm = 574095649, Sense = 800)
# MatchCoefDPZ(PZ, dt = 0.01, N = 10000) # takes minutes to run

Example output

Loading required package: signal

Attaching package: 'signal'

The following objects are masked from 'package:stats':

    filter, poly

Loading required package: RSEIS
Loading required package: pracma

Attaching package: 'pracma'

The following objects are masked from 'package:RSEIS':

    detrend, hypot, logspace, peaks, trapz

The following objects are masked from 'package:signal':

    conv, ifft, interp1, pchip, polyval, roots


Attaching package: 'TDD'

The following object is masked from 'package:RSEIS':

    ReadInstr

TDD documentation built on May 2, 2019, 4:51 a.m.

Related to MatchCoefDPZ in TDD...