Scilab Website | Contribute with GitLab | Mailing list archives | ATOMS toolboxes
Scilab Online Help
6.0.2 - English

Change language to:
Français - 日本語 - Português - Русский

Please note that the recommended version of Scilab is 2024.1.0. This page might be outdated.
See the recommended documentation of this function

Scilab Help >> Signal Processing > Filters > filter


filters a data sequence using a digital filter


[y,zf] = filter(B, A, x [,zi])



real vector : the coefficients of the filter numerator in decreasing power order, or a polynomial.


real vector : the coefficients of the filter denominator in decreasing power order, or a polynomial.


real row vector : the input signal


real row vector of length max(length(a),length(b))-1: the initial condition relative to a "direct form II transposed" state space representation. The default value is a vector filled with zeros.


real row vector : the filtered signal.


real row vector : the final state. It can be used to filter a next batch of the input signal.


This function filters a data sequence using a digital filter using a "direct form II transposed" implementation.

The filter canonical form is :

                H(z) = \frac{B(z)}{A(z)} = \frac{b_0 + b_1 z^{-1} + \dots + b_n z^{-n}}{a_0 + a_1 z^{-1} + \dots + a_n z^{-n}}

The algorithm uses the highest degree between degree(a) and degree(b) as value for n.

If the polynomial form is used for B (resp. for A) then a polynomial or a scalar must be used for A (resp. B).


Oppenheim, A. V. and R.W. Schafer. Discrete-Time Signal Processing, Englewood Cliffs, NJ: Prentice-Hall, 1989, pp. 311-312.


x = [1 zeros(1,9)]
h = [0 0 1];
res = filter(h, 1, x) //This creates a delay of 2 elements

z = poly(0, "z");
B = 1;
A = z^2;
// B/A is z^(-2)
// the resulting filter is also a delay of 2 elements
res = filter(B, A, x)

//Integrator filter
x = ones(1,10)
B = 1;
A = [1 -1];
res = filter(B, A, x)

See also

  • flts — time response (discrete time, sampled system)
  • rtitr — discrete time response (transfer matrix)
  • ltitr — discrete time response (state space)
Report an issue
<< filt_sinc Filters find_freq >>

Copyright (c) 2022-2024 (Dassault Systèmes)
Copyright (c) 2017-2022 (ESI Group)
Copyright (c) 2011-2017 (Scilab Enterprises)
Copyright (c) 1989-2012 (INRIA)
Copyright (c) 1989-2007 (ENPC)
with contributors
Last updated:
Thu Feb 14 14:57:17 CET 2019