Last Modified: June 25, 2019

Applies a median filter of rank to a signal.

Rank is **right rank** if **right rank** is greater than zero. Rank is **left rank** if **right rank** is less than zero.

A Boolean that specifies the initialization of the internal state of the node.

True | Initializes the internal state to zero. |

False | Initializes the internal state to the final state from the previous call of this node. |

This node automatically initializes the internal state to zero on the first call and runs continuously until this input is True.

This input is available only if you wire a double-precision, floating-point number to **signal**.

**Default: **False

Input signal to filter.

This input accepts the following data types:

- Double-precision, floating-point number
- 1D array of double-precision, floating-point numbers
- Waveform
- 1D array of waveforms

If you wire an array or waveform to **signal**, the number of elements, *n*, in **signal** must be greater than **right rank**. If the number of elements in **signal** is less than or equal to **right rank**, the node sets **filtered signal** to an empty array and returns an error.

Number of elements used to compute the median filter to the left side.

**left rank** must be greater than or equal to 0.

**Default: **2

Number of elements used to compute the median filter to the right side.

If **right rank** is less than 0, the node assumes **right rank** is equal to **left rank**. **right rank** must be less than the number of elements in **signal**.

**Default: **-1

Error conditions that occur before this node runs.

The node responds to this input according to standard error behavior.

Standard Error Behavior

Many nodes provide an **error in** input and an **error out** output so that the node can respond to and communicate errors that occur while code is running. The value of **error in** specifies whether an error occurred before the node runs. Most nodes respond to values of **error in** in a standard, predictable way.

**Default: **No error

Error information.

The node produces this output according to standard error behavior.

Standard Error Behavior

**error in** input and an **error out** output so that the node can respond to and communicate errors that occur while code is running. The value of **error in** specifies whether an error occurred before the node runs. Most nodes respond to values of **error in** in a standard, predictable way.

This node obtains the elements of **filtered signal** using the following equation.

${Y}_{i}=\mathrm{Median}\left({J}_{i}\right)\text{\hspace{0.17em}}\mathrm{for}\text{\hspace{0.17em}}i=0,\text{\hspace{0.17em}}1,\text{\hspace{0.17em}}2,\text{\hspace{0.17em}}\mathrm{...},\text{\hspace{0.17em}}n-1$

where

- Y is
**filtered signal** *n*is the number of elements in**signal***J*_{i}is a subset of**signal**centered about the*i*^{th}element of**signal**- The indexed elements outside the range of
**signal**equal zero.

The following equation describes *J*_{i}.

${J}_{i}=\{{X}_{i-rl},{X}_{i-rl+1},K,{X}_{i-1},{X}_{i},{X}_{i+1},K,{X}_{i+rr-1},{X}_{i+rr}\}$

where rl is the filter **left rank**, and rr is the filter **right rank**.

The following illustration shows the computation of *Y*_{i}.

**Where This Node Can Run: **

Desktop OS: Windows

FPGA: Not supported

Web Server: Not supported in VIs that run in a web application