
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 

integrator :: (Num a) => a > [a] > [a]   fos_df1 :: (Num a) => a > a > a > [a] > [a]   fos_df2 :: (Num a) => a > a > a > [a] > [a]   fos_df2t :: (Num a) => a > a > a > [a] > [a]   biquad_df1 :: (Num a) => a > a > a > a > a > [a] > [a]   biquad_df2 :: (Num a) => a > a > a > a > a > [a] > [a]   biquad_df2t :: (Num a) => a > a > a > a > a > [a] > [a]   iir_df1 :: (Num a) => (Array Int a, Array Int a) > [a] > [a]   iir_df2 :: (Num a) => (Array Int a, Array Int a) > [a] > [a] 


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.4 