Google

main
dspblog
cyclic_signals
FFT_interpolation
FFT_interpolation_how_does_it_work
FFT_smoothness_cyclic
discrete_time_reconstruction
discrete_time_reconstruction2
Nyquist_on_the_edge
FFT_delay_special_case
Fourier_reconstruction
pulse_and_Nyquist
FFT_complexError
matlabOctave
matlab_upsampling
matlab_downsampling
FFT_delay
FFT_filter_example
FFT_interpolation_example
FFT_bin_frequencies
fit_signal
FFT_peaksearch_audio_example
matlab_binary_readwrite
Octavesvg
C
FFTW_example
looprecord
SNR
SNR3
SNR_example_96kAudio
SNR_FFT_correlation_example
lua
luagpib
luasplit
luadump
mnoofltk
wxLuaDll
wxLua_loadAsDll
wxLua_HelloWorld
wxLua_simpleButton
wxLua_resourceManagement
wxLua_XMLparser
DSP
IQ_LO
IQ_LO_2
optimum_receiver
DSP_basics
sampleRateChange_terms
dirac_pulse
freqresp_s
zfilter_example
freqresp_z
freqresp_z_sign
misc
zero_forcing_equalizer_example
nonminphase_inverse
periodic_spectrum
lagrange_multipliers
Entropy
RC_chopper
TRex450_setup
EP100
EP100SE
EP100Gremlins
essential_spares
tail_rotor
motoradjustment
blade_balancing
blade_repair
GAUI_SAE12A
Walkera43


valid html (click to verify)



prevupnextdisable ads

IIR background

Summary

  • Where does the 1 in the denominator come from?
  • Where is a_{0}?
  • What's the story behind the minus sign in figure 1?

Sign of the recursive branch

Figure 1 shows the structure of an IIR filter.
Figure 1: IIR filter
Note the negative sign in the recursive branch.
Its frequency response is:

H(z)=\frac{b_{0}+b_{1}z^{-1}+b_{2}z^{-2}+\ldots+b_{m}z^{-m}}{1+a_{1}z^{-1}+a_{2}z^{-2}+\ldots+a_{m}z^{-m}}

This convention is for example used by Matlab (Octave) functions, when dealing with filter coefficients.

Many other references do not use the minus sign:
Figure 2: IIR filter, without the minus sign

In this case, the coefficients need to be redefined:

H(z)=\frac{b_{0}+b_{1}z^{-1}+b_{2}z^{-2}+\ldots+b_{m}z^{-m}}{1-\hat{a}_{1}z^{-1}-\hat{a}_{2}z^{-2}-\ldots-\hat{a}_{m}z^{-m}}
If the “total” minus sign of the recursive branch is omitted, it needs to be factored into the denominator coefficients: \hat{a}_{k}=-a_{k}.

Background

The connection between the frequency response and the filter structure is not as straightforward as it seems:
By definition, the lowest coefficient in the recursive branch (denominator) is a_{1}.
The reason is that an undelayed branch weighted with a_{0} would simply give a constant factor of \frac{1}{1 \pm a_{0}} in the frequency response, and could be factored into the numerator coefficients.

Instead, the 1 in the denominator comes from the well-known feedback loop equation:

G_{loop}(f)=\frac{1}{1+G(f)}

Figure 3: Frequency response of a feedback loop
Here it is shown for f, but it works just as well for z instead.

Note that the recursive branch of an IIR filter can be considered a FIR filter (lacking the direct branch a_{0}) in a feedback loop!
A negative sign in the feedback loop gives a positive sign for G(f) in the denominator.
The frequency response of the recursion branch is obtained by replacing G(f) with A(z) (where a_{1} is the lowest-order coefficient).
Inserting it into above equation and multiplying with the forward branch (b coefficients) gives H(z).


prevupnextdisable ads

© Markus Nentwig 2007-2008
The content of this page is provided without any warranty and may not be reproduced without permission.

Comments? Questions?

Please send me a mail! mnentwig@elisanet.fi