
DSP.Filter.IIR.IIR  Portability  portable  Stability  experimental  Maintainer  m.p.donadio@ieee.org 





Description 
IIR functions
IMPORTANT NOTE:
Except in integrator, we use the convention that
y[n] = sum(k=0..M) b_k*x[nk]  sum(k=1..N) a_k*y[nk] sum(k=0..M) b_k*z^1 H(z) =  1 + sum(k=1..N) a_k*z^1 

Synopsis 



Documentation 

integrator 
:: Num a   => a  a
 > [a]  x[n]
 > [a]  y[n]
 This is an integrator when a==1, and a leaky integrator when 0 < a < 1.
y[n] = a * y[n1] + x[n] 


fos_df1 
:: Num a   => a  a_1
 > a  b_0
 > a  b_1
 > [a]  x[n]
 > [a]  y[n]
 First order section, DF1
v[n] = b0 * x[n] + b1 * x[n1] y[n] = v[n]  a1 * y[n1] 


fos_df2 
:: Num a   => a  a_1
 > a  b_0
 > a  b_1
 > [a]  x[n]
 > [a]  y[n]
 First order section, DF2
w[n] = a1 * w[n1] + x[n] y[n] = b0 * w[n] + b1 * w[n1] 


fos_df2t 
:: Num a   => a  a_1
 > a  b_0
 > a  b_1
 > [a]  x[n]
 > [a]  y[n]
 First order section, DF2T
v0[n] = b0 * x[n] + v1[n1] y[n] = v0[n] v1[n] = a1 * y[n] + b1 * x[n] 


biquad_df1 
:: Num a   => a  a_1
 > a  a_2
 > a  b_0
 > a  b_1
 > a  b_2
 > [a]  x[n]
 > [a]  y[n]
 Direct Form I for a second order section
v[n] = b0 * x[n] + b1 * x[n1] + b2 * x[n2] y[n] = v[n]  a1 * y[n1]  a2 * y[n2] 


biquad_df2 
:: Num a   => a  a_1
 > a  a_2
 > a  b_0
 > a  b_1
 > a  b_2
 > [a]  x[n]
 > [a]  y[n]
 Direct Form II for a second order section (biquad)
w[n] = a1 * w[n1]  a2 * w[n2] + x[n] y[n] = b0 * w[n] + b1 * w[n1] + b2 * w[n2] 


biquad_df2t 
:: Num a   => a  a_1
 > a  a_2
 > a  b_0
 > a  b_1
 > a  b_2
 > [a]  x[n]
 > [a]  y[n]
 Transposed Direct Form II for a second order section
v0[n] = b0 * x[n] + v1[n1] y[n] = v0[n] v1[n] = a1 * y[n] + b1 * x[n] + v2[n1] v2[n] = a2 * y[n] + b2 * x[n] 


iir_df1 
:: Num a   => (Array Int a, Array Int a)  (b,a)
 > [a]  x[n]
 > [a]  y[n]
 Direct Form I IIR
v[n] = sum(k=0..M) b_k*x[nk] y[n] = v[n]  sum(k=1..N) a_k*y[nk] v[n] is calculated with fir



iir_df2 
:: Num a   => (Array Int a, Array Int a)  (b,a)
 > [a]  x[n]
 > [a]  y[n]
 Direct Form II IIR
w[n] = x[n]  sum(k=1..N) a_k*w[nk] y[n] = sum(k=0..M) b_k*w[nk] 


Produced by Haddock version 0.8 