series_iir function applies an Infinite Impulse Response (IIR) filter to a numeric dynamic array (series). This filter processes the input series using coefficients for both the numerator (feedforward) and denominator (feedback) components, creating a filtered output series that incorporates both current and past values.
You can use series_iir when you need to apply digital signal processing techniques to time-series data. This is particularly useful for smoothing noisy data, removing high-frequency components, implementing custom filters, or applying frequency-selective transformations to time-series measurements.
For users of other query languages
If you come from other query languages, this section explains how to adjust your existing queries to achieve the same results in APL.Splunk SPL users
Splunk SPL users
In Splunk SPL, signal processing typically requires external tools or complex manual calculations with 
streamstats. In APL, series_iir provides built-in digital filtering capabilities for array data.ANSI SQL users
ANSI SQL users
In SQL, implementing IIR filters requires complex recursive queries or user-defined functions. In APL, 
series_iir provides this functionality as a built-in operation on array data.Usage
Syntax
Parameters
| Parameter | Type | Description | 
|---|---|---|
| array | dynamic | A dynamic array of numeric values (input series). | 
| numerator | dynamic | A dynamic array of numerator (feedforward) coefficients. | 
| denominator | dynamic | A dynamic array of denominator (feedback) coefficients. | 
Returns
A dynamic array containing the filtered output series after applying the IIR filter defined by the numerator and denominator coefficients.Use case examples
- Log analysis
- OpenTelemetry traces
- Security logs
In log analysis, you can use Run in PlaygroundOutput
This query applies an IIR filter to smooth request duration measurements, reducing noise while preserving the underlying trend.
series_iir to smooth noisy request duration measurements, making trends and patterns more visible.Query| id | durations | smoothed | 
|---|---|---|
| u123 | [50, 120, 45, 200, 60] | [50, 91, 62, 128, 88] | 
| u456 | [30, 35, 80, 40, 45] | [30, 33, 54, 46, 45] | 
List of related functions
- series_sum: Returns the sum of series elements. Use for simple aggregation instead of filtering.
- series_stats: Returns statistical measures. Use for statistical analysis instead of signal processing.
- series_abs: Returns absolute values. Often used after IIR filtering to analyze magnitude.
- make_series: Creates time-series from tabular data. Often used before applying series_iirfor signal processing.