[comp.dsp] Using system ID for FIR filter design?

kyleb@tekfdi.FDI.TEK.COM (Kyle Bernard) (11/09/90)

I am beginning to look into using system identification techniques
for FIR filter design.  Specifically, I want to use system ID to develop
a digital FIR filter whose response matches that of an existing analog
bandpass filter.

I have looked through some of the available literature but there is so
much of it that I'm having trouble determining where to start.  Can anyone
suggest articles or books which would serve well as a start?  Also, is
anyone currently working on similar ideas?  Can you relate any words of
wisdom?

Thanks,
Kyle.

-- 
uucp:	    tektronix!tekfdi!honda!kyleb
US Mail:    Kyle Bernard, Microwave and RF Instruments, Tektronix, Inc.
	    Box 500  MS 58-072, Beaverton OR 97077
Phone:	    503-627-3522

mcmahan@netcom.UUCP (Dave Mc Mahan) (11/09/90)

 In a previous article, kyleb@tekfdi.FDI.TEK.COM (Kyle Bernard) writes:
>I am beginning to look into using system identification techniques
>for FIR filter design.  Specifically, I want to use system ID to develop
>a digital FIR filter whose response matches that of an existing analog
>bandpass filter.

I'm not sure I quite understand your usage of the term 'system ID'.  From
what you describe, it sounds like you mean 'impulse response'.  Is this true?
Given an impulse response for any linear time invariant system, you can
directly create an FIR filter very simply and mechanically.  Impulse response
of a system is derived by one of several means.  I personally like to
stimulate the circuit to be copied with an impulse.  This is normally a
pulse of very short duration with respect to the system being analyzed.
'Short duration' is sort of defined by the system under test.  It could be
1 second or 1 picosecond depending on the system.  Recording of the output
of the system yields the impulse response directly.  This process can also
be done using a step function and various other known signals.  The recorded
response must then be post-processed to yield the impulse response.  Is this
what you are wanting to know about?

>Kyle.

>uucp:	    tektronix!tekfdi!honda!kyleb

     -dave


-- 
Dave McMahan                            mcmahan@netcom.uucp
					{apple,amdahl,claris}!netcom!mcmahan

bobc@hplsla.HP.COM (Bob Cutler) (11/10/90)

Hewlett-Packard sells an instrument that has the capability you want
built-in.  It's called an HP 3563A Control Systems Analyzer.  The
analyzer has two analog inputs (100kHz) two digital inputs (256 ksamples
per sec),  an analog source and a digital source.   It also has two
curve-fitters, one for the s-domain and one for the z-domain.  

For your application, the z-domain curve-fitter would be applied to a
frequency response data which was measured using the analog inputs or 
or synthesized using an s-domain model (e.g. poles/zeros).  The curve-
fitter produces a pole-zero model which can be easily translated into
a difference equation for use in a digital filter.  Unlike the usual s->z 
transforms such as the bilinear, impulse-invarient, or step-invarient 
methods (which are also available in the analyzer), the curve-fitter can 
be made to use any specified filter topology.  For example, an N pole 
analog filter can be approximated by an M tap FIR or IIR filter where 
M is not a function of N.   

Another advantage of using curve-fitting is that a weighting function can 
be used to emphasise areas of the the frequency response function for which 
a close approximation is important.  This is similar to pre-warping with 
the bi-linear transform except that it's not limited to a single frequency 
point. It's also possible, before curve-fitting, to pre-distort the frequency
response data to account for things like the sin(x)/x rolloff that will
occur if the analog signal is reconstructed using a D/A converter.

The only dissadvantage of using the curve-fitting approach to get from s->z, 
as compared to a method like the bi-linear transform, is that, for IIR 
filters, the curve-fitter doesn't always produce a z-domain model which 
is stable.  Usually when this happens, the sample rate and/or the filter 
order is too low.


					Bob Cutler
                                        KE7ZJ
					Hewlett-Packard
					Lake Stevens Instrument Division
					Everett, WA 98205.

larry@rsiatl.UUCP (Larry Kahhan) (11/10/90)

If you're looking to fit a complex frequency response curve to an arbitrary
transfer function, I've found that MathCAD works quite well. I've used
this technique for both "s" and "z" domain transfer functions with equal
success. The only proviso is that convergeance is heavily influence by the
choice of initial conditions, so sometimes a little manual "tweaking" of
initial conditions is required.

Another advantage of using MathCAD is that after a solution is found, the
transfer function response can be plotted against the original data set for a visual
clue as to goodness of fit.

Larry Kahhan - NRA, NRA-ILA, CSG, GSSA , & GOA 

maury@tellabs.com (Maurice Givens) (11/13/90)

You can do what you wish by using an adaptive filter.  Use
the adaptive filter in a system identification configuratio,
and use white noise as an input.  The adaptive filter will
adjust its coefficients to match that of the bandpass filter.

Also, if you know the transfer function of the desired filter,
the adaptive filter will calculate the coefficients needed
for implementation.