---
name: "lowpass"
section: "9"
platform: "linux"
package: "linuxcnc-uspace"
version: "1:2.9.4-2+deb13u1"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/lowpass"
---

# lowpass(9)

Low-pass filter

## NAME

lowpass - Low-pass filter

## SYNOPSIS

**loadrt lowpass \[count=*N*\|names=*name1*\[,*name2...*\]\]**

## FUNCTIONS

- **lowpass.***N* (requires a floating-point thread)

  ## PINS

- **lowpass.*N*.in float in**

  - **lowpass.*N*.out float out**

   out += (in - out) \* gain

- **lowpass.*N*.load bit in**

  When TRUE, copy **in** to **out** instead of applying the filter equation.

## PARAMETERS

- **lowpass.*N*.gain float rw**

  ## NOTES

**gain** pin setting

The digital filter implemented is equivalent to a unity-gain continuous-time single-pole low-pass filter that is preceded by a zero-order-hold and sampled at a fixed period.  For a pole at **-a** (radians/seconds) the corresponding continuous-time lowpass filter LaPlace transfer function is:

**H(s) = a/(s + a)**

For a sampling period **T** (seconds), the gain for this Hal lowpass component is:

**gain = 1 - e^(-a \* T)**

e = 2.71828 https://en.wikipedia.org/wiki/E\_(mathematical\_constant)

**Examples:**\
      T = 0.001 seconds (typical servo thread period)\
      a = (2\*pi\*100)    (**100Hz** bandwidth single pole)\
   gain = **0.466**

     T = 0.001 seconds (typical servo thread period)\
      a = (2\*pi\*10)     ( **10Hz** bandwidth single pole)\
   gain = **0.0609**

     T = 0.001 seconds (typical servo thread period)\
      a = (2\*pi\*1)      ( **1Hz** bandwidth single pole)\
   gain = **0.0063**

## AUTHOR

Jeff Epler

## LICENSE

GPL
