check_filter: Check 'Arma' filter

View source: R/filter-utils.R

check_filterR Documentation

Check 'Arma' filter

Description

Check 'Arma' filter

Usage

check_filter(b, a, w = NULL, r_expected = NULL, fs = NULL)

Arguments

b

moving average (MA) polynomial coefficients.

a

auto-regressive (AR) polynomial coefficients.

w

normalized frequency, ranging from 0 to 1, where 1 is 'Nyquist'

r_expected

attenuation in decibel of each w

fs

sample rate, used to infer the frequencies and formatting print message, not used in calculation; leave it blank by default

Value

A list of power estimation and the reciprocal condition number of the AR coefficients.

Examples



# create a butterworth filter with -3dB (half-power) at [1, 5] Hz
# and -60dB stop-band attenuation at [0.5, 6] Hz

sample_rate <- 20
nyquist <- sample_rate / 2

specs <- buttord(
  Wp = c(1, 5) / nyquist,
  Ws = c(0.5, 6) / nyquist,
  Rp = 3,
  Rs = 60
)
filter <- butter(specs)

# filter quality is poor because the AR-coefficients
# creates singular matrix with unstable inverse,
# this will cause `filtfilt` to fail
check_filter(
  b = filter$b, a = filter$a,

  # frequencies (normalized) where power is evaluated
  w = c(1, 5, 0.5, 6) / nyquist,

  # expected power
  r_expected = c(3, 3, 60, 60)

)



ravetools documentation built on Sept. 11, 2024, 9:06 p.m.