Skip to content

Low-pass differentiating FIR filter design

What it does

This utility designs a linear-phase FIR filter that differentiates low-frequency signal content while attenuating higher frequencies.

When to use it

Use it when a processing chain requires a reproducible low-pass differentiator with an explicit constant delay.

Canonical ID: tools.lpd_filter

Inputs

Name Meaning Type Unit Requirements
sampling_frequency Sampling frequency for which the differentiating filter is designed. real scalar Hz greater than: 0; no NaN; finite
stop_frequency Frequency at which the low-pass differentiating response reaches its stop band. real scalar Hz greater than: 0; no NaN; finite

Parameters

Name Meaning Type Unit Default Requirements
pass_frequency Optional end of the differentiating pass band. real scalar Hz stop_frequency - 0.2 greater than: 0
order Even FIR filter order. integer scalar sample automatic greater than: 0

Outputs

Name Meaning Type Unit
filter_coefficients FIR numerator coefficients of the designed differentiating filter. real vector 1/s
delay Constant linear-phase delay introduced by the FIR filter. real scalar sample

How it works

The requested sampling, pass, and stop frequencies define an even-order antisymmetric FIR response. The returned delay can be used to align the filtered signal with the original samples.

Interpretation and limitations

The coefficients are tied to the requested sampling frequency and should be redesigned when it changes. The delay must be handled explicitly in causal processing chains.

References

  • Jesús Lázaro et al. (2014). Pulse rate variability analysis for discrimination of sleep-apnea-related decreases in the amplitude fluctuations of pulse photoplethysmographic signal in children. IEEE Journal of Biomedical and Health Informatics. doi:10.1109/JBHI.2013.2267096

Implementations and technical resources

Python source | MATLAB source

Normative JSON | Validation cases