# Butterworth filter with low-pass at 0.1 Hz (order = 4)
filter <- butter(4, 0.1, "low")
# TRUE
rcond_filter_ar(filter$a) > .Machine$double.eps
diagnose_filter(filter$b, filter$a, 500)
# Bad filter (order is too high)
filter <- butter(50, 0.1, "low")
rcond_filter_ar(filter$a) > .Machine$double.eps
# filtfilt needs to inverse a singular matrix
diagnose_filter(filter$b, filter$a, 500)
Run the code above in your browser using DataLab