Re: filter design
- From: "Rune Allnor" <allnor@xxxxxxxxxxxx>
- Date: 30 Aug 2005 18:32:58 -0700
laki wrote:
> Hi,
>
> Suppose I want to design a digital filter for some application. There
> are some options to do this:
> - weighted least squares design
> - minimax design
> - filter design based on 'windows' (fir1, fir2)
> - equiripple design (remez)
>
> Which method is the most used (in education, in industry)? Which method
> results in a filter satisfying the filter requirements the best?
FIR filter design by the window methods is probably the most widely
used method during general DSP classes and in education. The method
is relatively simple but does not necessarily provide "good" filters.
It is not obvious how to optimize the number of coefficients, and
it is not easy to control the gain, attenuation and ripple.
The Parks-McClellan algorithm seems to be better suited to solve such
problems, but is not all that obvious to understand or implement.
I am not sure how good the matlab implementation (REMEZ, FIRPM) is.
For IIR filter design, there is the design by analogue prototype,
which has some historical significance and is relatively straight-
forward, although it requires a lot of algebra to get through.
The main problem with this method is that it is difficult to find
good recipes for implementation. Most recent DSP texts only sketches
the outlines of the method, leaving out some of the crucial details.
As for matlab, I am not impressed by the BUTTER, CHEB1 and CHEB2
functions in the Signal Processing Toolbox. It is well known that
IIR filters should be implemented as a cascade of 1st and 2nd order
primitives. As far as I can tell, the matlab functions do not
export the filters on that form.
I did find a method by Steiglitz for optimizing filters with respect
to a frequency-domain response function, published in the early
1970ies. The main difficulty there, was that the methods relied on
a nonlinear conjugate gradient optimization method. Apart from that,
the paper seemed to have all the difficult detailed worked out.
So back to answering your question: The simple, but perhaps obsolete,
methods are used in education because they are easily understood
and can be implemented in terms of closed-form formulae. These
methods are "best" with respect to gained results for invested
effort.
In industry, one is willing to spend $$$ or time getting more
sophisticated desing methods, based on numerical optimization
schemes. These filters might be able to do the job in fewer flops
than the filters designed by the "simple" methods.
So it is basically up to you, how much time or $$$ are you willing
to spend to get your hands on the sophisticated methods, and whether
the added cost is worth the perhaps small improvement.
Rune
.
- References:
- filter design
- From: laki
- filter design
- Prev by Date: Re: Any Fast CORDIC algorithm for phase calculation. (vector mode)
- Next by Date: Re: Getting started
- Previous by thread: Re: filter design
- Next by thread: Programmable MP3 players?
- Index(es):
Relevant Pages
|