Hi all,
As we all know, designing IIR filters is easy enough
for low filter order but is far more difficult when
higher order filters are required to meet design
contraints like low passband ripple, narrow transition
bands and high levels of attenuation in the stopband.
I'm currently working on a program for designing IIR
filters and this software has recently produced a LP
filter with the following specs:
Order : 18
Passband : 0 - 0.2*fs < 0.1 dB ripple
Stopband : 0.25*fs - 0.5*fs > 100 dB attenuation
This was achieved with a single overnight run on a
450Mhz Pentium III machine. I am now trying to design
a 16th order filter to meet the same specs.
I'm therefore asking people here the following questions:
0) How big and how "difficult" are the IIR filters you
have designed?
1) What methods and/or software was used to design
them?
TIA,
Erik
--
+-----------------------------------------------------------+
Erik de Castro Lopo nospam@mega-nerd.com (Yes it's valid)
+-----------------------------------------------------------+
A sufficiently advanced programming error is
indistinguishable from the Windows 95 Operating System.
|
|
0
|
|
|
|
Reply
|
Erik
|
9/6/2003 12:41:23 AM |
|
Erik de Castro Lopo wrote:
>
> Hi all,
>
> As we all know, designing IIR filters is easy enough
> for low filter order but is far more difficult when
> higher order filters are required to meet design
> contraints like low passband ripple, narrow transition
> bands and high levels of attenuation in the stopband.
>
> I'm currently working on a program for designing IIR
> filters and this software has recently produced a LP
> filter with the following specs:
>
> Order : 18
> Passband : 0 - 0.2*fs < 0.1 dB ripple
> Stopband : 0.25*fs - 0.5*fs > 100 dB attenuation
Another run of this program (4.5hrs) produced a 13th order
filter meeting the same specs. Obviously, some more work
is needed to find the minimum order for a given design
spec.
Erik
--
+-----------------------------------------------------------+
Erik de Castro Lopo nospam@mega-nerd.com (Yes it's valid)
+-----------------------------------------------------------+
From Time magazine, "Numbers" section:
$5 million: Estimated annual cost for a 10-year program that
would identify large asteroids most threatening
to earth.
$75 million: Budget for "Deep Impact", a film about the
devastation caused when a comet hits earth.
|
|
0
|
|
|
|
Reply
|
Erik
|
9/6/2003 11:46:21 PM
|
|
Hi Erik
What is so special about these IIR filters. It seems to me like
you're software takes a very long time to run. I have used
filter design software packages like ONEoverT and QEDesign
and they will generate IIR filters of this order immediately.
Please enlighten me about the particular filters you are designing
and why it takes so long to produce them.
Thanks
Bob
Erik de Castro Lopo <nospam@mega-nerd.com> wrote in message news:<3F592C33.DD349F59@mega-nerd.com>...
> Hi all,
>
> As we all know, designing IIR filters is easy enough
> for low filter order but is far more difficult when
> higher order filters are required to meet design
> contraints like low passband ripple, narrow transition
> bands and high levels of attenuation in the stopband.
>
> I'm currently working on a program for designing IIR
> filters and this software has recently produced a LP
> filter with the following specs:
>
> Order : 18
> Passband : 0 - 0.2*fs < 0.1 dB ripple
> Stopband : 0.25*fs - 0.5*fs > 100 dB attenuation
>
> This was achieved with a single overnight run on a
> 450Mhz Pentium III machine. I am now trying to design
> a 16th order filter to meet the same specs.
>
> I'm therefore asking people here the following questions:
>
> 0) How big and how "difficult" are the IIR filters you
> have designed?
> 1) What methods and/or software was used to design
> them?
>
> TIA,
> Erik
|
|
0
|
|
|
|
Reply
|
stenasc
|
9/7/2003 10:13:50 PM
|
|
Erik de Castro Lopo <nospam@mega-nerd.com> wrote in message news:<3F592C33.DD349F59@mega-nerd.com>...
....
> I'm therefore asking people here the following questions:
>
> 0) How big and how "difficult" are the IIR filters you
> have designed?
i have chained together maybe 4 or 5 biquads in cascade. the noise
starts to get to be a little bad by then.
> 1) What methods and/or software was used to design
> them?
only used analog prototypes with BLT. never an "optimized" (prony)
method. i'm pretty much a luddite.
r b-j
|
|
0
|
|
|
|
Reply
|
rbj
|
9/7/2003 11:46:22 PM
|
|
Erik de Castro Lopo <nospam@mega-nerd.com> writes:
> As we all know, designing IIR filters is easy enough
> for low filter order but is far more difficult when
> higher order filters are required to meet design
> contraints like low passband ripple, narrow transition
> bands and high levels of attenuation in the stopband.
>
> I'm currently working on a program for designing IIR
> filters and this software has recently produced a LP
> filter with the following specs:
>
> Order : 18
> Passband : 0 - 0.2*fs < 0.1 dB ripple
> Stopband : 0.25*fs - 0.5*fs > 100 dB attenuation
>
> This was achieved with a single overnight run on a
> 450Mhz Pentium III machine. I am now trying to design
> a 16th order filter to meet the same specs.
>
> I'm therefore asking people here the following questions:
>
> 0) How big and how "difficult" are the IIR filters you
> have designed?
> 1) What methods and/or software was used to design
> them?
Erik,
Matlab's cheby2 technique gives a direct answer that appears to
satisfy your constraints.
Your program should certainly NOT be taking hours to calculate it!
Ciao,
Peter K.
>> [B,A] = cheby2(18, 100, 0.5)
B =
Columns 1 through 4
0.00167583914216 0.01249479541868 0.05282702120282 0.15939804265706
Columns 5 through 8
0.37690207631117 0.73227013789108 1.20191856962356 1.69522872823393
Columns 9 through 12
2.07598674519837 2.21972389625291 2.07598674519838 1.69522872823395
Columns 13 through 16
1.20191856962359 0.73227013789110 0.37690207631118 0.15939804265707
Columns 17 through 19
0.05282702120282 0.01249479541868 0.00167583914216
A =
Columns 1 through 4
1.00000000000000 -0.27631970006174 3.19751214254060 -0.15685969461355
Columns 5 through 8
4.13926117356269 0.60689917820044 2.95082770636540 0.89016501910416
Columns 9 through 12
1.32135245849798 0.51502467236824 0.38906643866660 0.15367372690642
Columns 13 through 16
0.07255803834919 0.02422454070134 0.00756108751837 0.00179848550988
Columns 17 through 19
0.00033713574499 0.00004258794833 0.00000281030149
--
Peter J. Kootsookos
"Na, na na na na na na, na na na na"
- 'Hey Jude', Lennon/McCartney
|
|
0
|
|
|
|
Reply
|
p
|
9/8/2003 12:51:04 AM
|
|
Peter J. Kootsookos wrote:
> Erik de Castro Lopo <nospam@mega-nerd.com> writes:
>
>> As we all know, designing IIR filters is easy enough
>> for low filter order but is far more difficult when
>> higher order filters are required to meet design
>> contraints like low passband ripple, narrow transition
>> bands and high levels of attenuation in the stopband.
>>
>> I'm currently working on a program for designing IIR
>> filters and this software has recently produced a LP
>> filter with the following specs:
>>
>> Order : 18
>> Passband : 0 - 0.2*fs < 0.1 dB ripple
>> Stopband : 0.25*fs - 0.5*fs > 100 dB attenuation
>>
>> This was achieved with a single overnight run on a
>> 450Mhz Pentium III machine. I am now trying to design
>> a 16th order filter to meet the same specs.
>>
>> I'm therefore asking people here the following questions:
>>
>> 0) How big and how "difficult" are the IIR filters you
>> have designed?
>> 1) What methods and/or software was used to design
>> them?
>
> Erik,
>
> Matlab's cheby2 technique gives a direct answer that appears to
> satisfy your constraints.
>
> Your program should certainly NOT be taking hours to calculate it!
>
> Ciao,
>
> Peter K.
>
>>> [B,A] = cheby2(18, 100, 0.5)
> ...
Hi Peter (and Erik),
Matlab caused a lot of pain when I tried to design even lower order
filters (4th order Butterworth), when the relation between
cutoff-frequency and sampling frequency decreases:
try this: 4th order HPF and LPF (independently) at 1.5Hz (Fs=48kHz).
I agree, that the calculation is very quick (Matlab 6.5), but if you
work with this filter, you'll find that it tends to be instable.
In fact, Matlab wasn't able to calculate a stable set of
coefficients, although I used the superior approach which doesn't
use [b,a] = ... , but with state space equations.
Supported by the development team of Mathworks we found the optimum
solution for most of the cutoff-frequencies I needed, but this
certain one could only be solved by changing the frequency to
1.495Hz.
Reason behind: internal calculations which search for iterative
results (roots, poly()-function), stop iteration too quickly -
obviously a tradeoff to improve the speed of the calculations.
I don't blame Matlab for it, because they find a compromise which
satisfies most of the users - and probably most want quick results.
But there's no option for maximum precision which I would have
taken, even if it would have worked a whole night.
So it might be possible that Eriks program isn't to be blamed for a
long calculation time - but I would require a solution for the
above filters and for all butterworth filters of 4th order and
downto 0.25Hz @ 48kS/s.
If it can provide this, it's superior to Matlab in this area.
Note: I work with 32bit floating point filter processing,
coefficients might even be 40bit, if necessary, but to my opinion
32bit should be enough. However, internal calculation during
coefficient calculation might require at least 64bit power.
Note: The described filters are not just for engineer's
satisfaction. I really intend to use them for a product we sell.
Bernhard
--
before sending to the above email-address:
replace deadspam.com by foerstergroup.de
|
|
0
|
|
|
|
Reply
|
Bernhard
|
9/8/2003 6:07:36 AM
|
|
"Peter J. Kootsookos" wrote:
>
> Erik,
>
> Matlab's cheby2 technique gives a direct answer that appears to
> satisfy your constraints.
>
> Your program should certainly NOT be taking hours to calculate it!
Hi Peter,
Thanks for the reality check :-).
Maybe the example I gave was not a good one because a direct
result was so readily available.
The software I'm working on is intended to find filters other
than standard low/high/band pass. In particular, it should find
filters which meet arbitrary magnitude response requirements,
possibly with simultaneous phase response requirements as well
as finding solutions where the more traditional methods produced
filters with instability problems in particular implementations
(as Bernhard Holzmayer was suggesting).
More importantly, it should recognise when a specification can
be easily met using more standard methods :-).
Cheers,
Erik
--
+-----------------------------------------------------------+
Erik de Castro Lopo nospam@mega-nerd.com (Yes it's valid)
+-----------------------------------------------------------+
"It's far too easy to make fun of Microsoft products, but it takes a
real man to make them work, and a god to make them do anything useful"
-- Anonymous
|
|
0
|
|
|
|
Reply
|
Erik
|
9/8/2003 8:44:04 AM
|
|
robert bristow-johnson wrote:
>
> Erik de Castro Lopo <nospam@mega-nerd.com> wrote in message news:<3F592C33.DD349F59@mega-nerd.com>...
> ...
> > I'm therefore asking people here the following questions:
> >
> > 0) How big and how "difficult" are the IIR filters you
> > have designed?
>
> i have chained together maybe 4 or 5 biquads in cascade. the noise
> starts to get to be a little bad by then.
Hi Robert,
Since its you saying this, i have to resume that you are
talking about implementations using 24 bit fixed point
arithmetic :-). Correct?
Erik
--
+-----------------------------------------------------------+
Erik de Castro Lopo nospam@mega-nerd.com (Yes it's valid)
+-----------------------------------------------------------+
Q: How do you stop a Windows NT machine from crashing?
A: Shut it down and switch it off.
|
|
0
|
|
|
|
Reply
|
Erik
|
9/8/2003 8:45:21 AM
|
|
Erik de Castro Lopo <nospam@mega-nerd.com> wrote in
news:3F5C4040.9FDD1568@mega-nerd.com:
> "Peter J. Kootsookos" wrote:
>>
>> Erik,
>>
>> Matlab's cheby2 technique gives a direct answer that appears to
>> satisfy your constraints.
>>
>> Your program should certainly NOT be taking hours to calculate it!
>
> Hi Peter,
>
> Thanks for the reality check :-).
>
> Maybe the example I gave was not a good one because a direct
> result was so readily available.
>
> The software I'm working on is intended to find filters other
> than standard low/high/band pass. In particular, it should find
> filters which meet arbitrary magnitude response requirements,
> possibly with simultaneous phase response requirements as well
> as finding solutions where the more traditional methods produced
> filters with instability problems in particular implementations
> (as Bernhard Holzmayer was suggesting).
>
> More importantly, it should recognise when a specification can
> be easily met using more standard methods :-).
>
> Cheers,
> Erik
Erik,
I don't have any suggestions but I am very interested in a filter program
that does a good job at matching arbitrary responses. One of the filters
that comes to mind is the standard A Weighting filter. It is defined (by
standard) in the s plane and therefore does not map perfectly into the z
plane.
Can your program accept a function written as H(s) as a target?
Al Clark
Danville Signal Processing, Inc.
--------------------------------------------------------------------
Purveyors of Fine DSP Hardware and other Cool Stuff
Available at http://www.danvillesignal.com
|
|
0
|
|
|
|
Reply
|
Al
|
9/8/2003 7:35:33 PM
|
|
Bernhard Holzmayer wrote:
>
> Peter J. Kootsookos wrote:
>
> > Erik de Castro Lopo <nospam@mega-nerd.com> writes:
> >
> >> As we all know, designing IIR filters is easy enough
> >> for low filter order but is far more difficult when
> >> higher order filters are required to meet design
> >> contraints like low passband ripple, narrow transition
> >> bands and high levels of attenuation in the stopband.
> >>
> >> I'm currently working on a program for designing IIR
> >> filters and this software has recently produced a LP
> >> filter with the following specs:
> >>
> >> Order : 18
> >> Passband : 0 - 0.2*fs < 0.1 dB ripple
> >> Stopband : 0.25*fs - 0.5*fs > 100 dB attenuation
> >>
> >> This was achieved with a single overnight run on a
> >> 450Mhz Pentium III machine. I am now trying to design
> >> a 16th order filter to meet the same specs.
> >>
> >> I'm therefore asking people here the following questions:
> >>
> >> 0) How big and how "difficult" are the IIR filters you
> >> have designed?
> >> 1) What methods and/or software was used to design
> >> them?
> >
> > Erik,
> >
> > Matlab's cheby2 technique gives a direct answer that appears to
> > satisfy your constraints.
> >
> > Your program should certainly NOT be taking hours to calculate it!
> >
> > Ciao,
> >
> > Peter K.
> >
> >>> [B,A] = cheby2(18, 100, 0.5)
> > ...
>
> Hi Peter (and Erik),
>
> Matlab caused a lot of pain when I tried to design even lower order
> filters (4th order Butterworth), when the relation between
> cutoff-frequency and sampling frequency decreases:
> try this: 4th order HPF and LPF (independently) at 1.5Hz (Fs=48kHz).
>
> I agree, that the calculation is very quick (Matlab 6.5), but if you
> work with this filter, you'll find that it tends to be instable.
> In fact, Matlab wasn't able to calculate a stable set of
> coefficients, although I used the superior approach which doesn't
> use [b,a] = ... , but with state space equations.
>
> Supported by the development team of Mathworks we found the optimum
> solution for most of the cutoff-frequencies I needed, but this
> certain one could only be solved by changing the frequency to
> 1.495Hz.
>
> Reason behind: internal calculations which search for iterative
> results (roots, poly()-function), stop iteration too quickly -
> obviously a tradeoff to improve the speed of the calculations.
>
> I don't blame Matlab for it, because they find a compromise which
> satisfies most of the users - and probably most want quick results.
> But there's no option for maximum precision which I would have
> taken, even if it would have worked a whole night.
>
> So it might be possible that Eriks program isn't to be blamed for a
> long calculation time - but I would require a solution for the
> above filters and for all butterworth filters of 4th order and
> downto 0.25Hz @ 48kS/s.
Is that a high pass or low pass filter?
Erik
--
+-----------------------------------------------------------+
Erik de Castro Lopo nospam@mega-nerd.com (Yes it's valid)
+-----------------------------------------------------------+
"The day Microsoft makes something that doesn't suck is probably the
day they start making vacuum cleaners." -- Ernst Jan Plugge
|
|
0
|
|
|
|
Reply
|
Erik
|
9/8/2003 8:12:36 PM
|
|
Al Clark wrote:
>
> Erik,
>
> I don't have any suggestions but I am very interested in a filter program
> that does a good job at matching arbitrary responses. One of the filters
> that comes to mind is the standard A Weighting filter. It is defined (by
> standard) in the s plane and therefore does not map perfectly into the z
> plane.
>
> Can your program accept a function written as H(s) as a target?
Not at the moment, but give any abritrary H(s) and a sample rate,
it should be possible to turn that into a combined magnitude/phase
response which can then be matched.
Erik
--
+-----------------------------------------------------------+
Erik de Castro Lopo nospam@mega-nerd.com (Yes it's valid)
+-----------------------------------------------------------+
"MS apparently now has a team dedicated to tracking problems with Linux
and publicizing them. I guess eventually they'll figure out this back
fires..." -- William Burrow
|
|
0
|
|
|
|
Reply
|
Erik
|
9/8/2003 8:15:44 PM
|
|
"Erik de Castro Lopo" <nospam@mega-nerd.com> wrote in message
news:3F5A70C7.50C784DE@mega-nerd.com...
> Erik de Castro Lopo wrote:
> >
> > Hi all,
> >
> > As we all know, designing IIR filters is easy enough
> > for low filter order but is far more difficult when
> > higher order filters are required to meet design
> > contraints like low passband ripple, narrow transition
> > bands and high levels of attenuation in the stopband.
> >
> > I'm currently working on a program for designing IIR
> > filters and this software has recently produced a LP
> > filter with the following specs:
> >
> > Order : 18
> > Passband : 0 - 0.2*fs < 0.1 dB ripple
> > Stopband : 0.25*fs - 0.5*fs > 100 dB attenuation
>
> Another run of this program (4.5hrs) produced a 13th order
> filter meeting the same specs. Obviously, some more work
> is needed to find the minimum order for a given design
> spec.
>
> Erik
It looks to me like a standard 10th-order elliptic filter can meet your
specs, and actually have a stopband attenuation of over 104 dB.
Alternatively, it could get exactly 100 dB attenuation and have a passband
ripple of 0.035 dB. I assume that matlab could generate these, though I
haven't tried it. An elliptic filter can be generated very quickly using
standard techniques that don't require extensive search or iteration. Is
there some other constraint or problem that makes a standard elliptical
filter not work here?
--
Eric Backus
R&D Design Engineer
Agilent Technologies, Inc.
425-356-6010 Tel
|
|
0
|
|
|
|
Reply
|
Eric
|
9/8/2003 9:40:57 PM
|
|
Erik de Castro Lopo wrote:
> Bernhard Holzmayer wrote:
>> ...
>> Matlab caused a lot of pain when I tried to design even lower
>> order filters (4th order Butterworth), when the relation between
>> cutoff-frequency and sampling frequency decreases:
>> try this: 4th order HPF and LPF (independently) at 1.5Hz
>> (Fs=48kHz).
>> ...
>
> Is that a high pass or low pass filter?
>
> Erik
Both.
I started with this (for LPF):
Fs = 48000;
qz = quantizer('single',[32,8]);
[b,a] = butter(4, fy / (Fs/2) );
[sos,g] = tf2sos(b,a);
The result was poor. Applying a hint from Mathworks, I changed to:
Fs = 48000;
qz = quantizer('single',[32,8]);
[z,p,k] = butter(4, fy / (Fs/2) );
[sos,g] = zp2sos(z,p,k);
Results were ok, except at 1.5Hz.
At 1.5Hz I shifted the frequency to fy=1.495Hz until I succeeded.
Note: The internal stability method isstable() failed in my special
situation and had to be replaced by a patched version from
Mathworks.
Bernhard
--
before sending to the above email-address:
replace deadspam.com by foerstergroup.de
|
|
0
|
|
|
|
Reply
|
Bernhard
|
9/9/2003 9:08:20 AM
|
|
Erik de Castro Lopo <nospam@mega-nerd.com> wrote in message news:<3F5C408D.A4753D8F@mega-nerd.com>...
> robert bristow-johnson wrote:
> >
> > Erik de Castro Lopo <nospam@mega-nerd.com> wrote in message news:<3F592C33.DD349F59@mega-nerd.com>...
> > ...
> > > I'm therefore asking people here the following questions:
> > >
> > > 0) How big and how "difficult" are the IIR filters you
> > > have designed?
> >
> > i have chained together maybe 4 or 5 biquads in cascade. the noise
> > starts to get to be a little bad by then.
>
> Hi Robert,
>
> Since its you saying this, i have to resume that you are
> talking about implementations using 24 bit fixed point
> arithmetic :-). Correct?
yes. (for 4 or 5 biquads.)
long ago i implemented some filtering on the MC68000 (wasn't real time
but i wanted it done that day). that was 16 bit, didn't know all of
the tricks i know now and it was pretty bad for more than 4th order.
r b-j
(remotely in North Dakota)
|
|
0
|
|
|
|
Reply
|
rbj
|
9/9/2003 8:52:59 PM
|
|
|
13 Replies
209 Views
(page loaded in 0.159 seconds)
Similiar Articles: IIR filter design - comp.dspHi all, As we all know, designing IIR filters is easy enough for low filter order but is far more difficult when higher order filters are required ... IIR filter design using xilinx blockset - comp.soft-sys.matlab ...I am mahadev a student of vit india .. i was not able to design the iir filter. I got the sos from FDA tool and num and den from [b,a]=sos2tf(sos) bu... band-pass iir filter pole zero - comp.soft-sys.matlabI have the following parameters are trying to design a simple band pass filter by zero pole placement and need some help please nyquist frequency =... Converting IIR filter to different sample rates - comp.dsp ...IIR filter design - comp.dsp... give any abritrary H(s) and a sample rate ... various design methods for infinite impulse response filters (so called IIR filters). fir lpf implementation - comp.soft-sys.matlabIIR filter design - comp.dsp fir lpf implementation - comp.soft-sys.matlab I have to implement fir and iir filter as I am new to the subject, if a make fault ... Octave design in filter design toolbox - comp.soft-sys.matlab ...IIR filter design using xilinx blockset - comp.soft-sys.matlab ... implement biquad filter in octave or matlab - comp.dsp IIR filter design using xilinx blockset - comp ... Free online FIR design tool - comp.dspIIR filter design - comp.dsp Free online FIR design tool - comp.dsp band-pass iir filter pole zero - comp.soft-sys.matlab Free online FIR design tool - comp.dsp ... New WinFilter Digital Filter design freeware tool release ...This software can design as well IIR filters as FIR filters and can generate the C and VHDL code. The filter coefficients are now quantizied in float, 16-bit or 8-bit. question about filter design vhdl - comp.arch.fpgaIIR filter design - comp.dsp question about filter design vhdl - comp.arch.fpga Another question, how would I do it if I ... implementation of IIR filters, where you can ... Butterworth filter - comp.soft-sys.matlabChoose highpass and IIR -> Butterworth and specify your filter. Once you have designed your filter ... Electronics Tutorial about Butterworth Filter Design and designing ... FIR and IIR? - comp.dspIIR filter gain - where to do it? - comp.dsp IIR filter design - comp.dsp IIR filter gain - where to do it? - comp.dsp FIR and IIR? - comp.dsp FIR and IIR? - comp.dsp ... Numerical Errors when calculating a Minimum version FIR Filter ...IIR filter design - comp.dsp Numerical Errors when calculating a Minimum version FIR Filter ... IIR filter design - comp.dsp Numerical Errors when calculating a Minimum ... implement biquad filter in octave or matlab - comp.dspIIR filter design using xilinx blockset - comp.soft-sys.matlab ... implement biquad filter in octave or matlab - comp.dsp IIR filter design using xilinx blockset - comp ... FIR Filter - Find stop/pass band attenuations(URGENT) - comp.soft ...IIR filter design - comp.dsp FIR Filter - Find stop/pass band attenuations(URGENT) - comp.soft ... IIR filter design - comp.dsp... bands and high levels of attenuation in ... gain of a filter - comp.soft-sys.matlabimplement biquad filter in octave or matlab - comp.dsp IIR filter design using xilinx blockset - comp.soft-sys.matlab ... IIR filter gain - where to do it? - comp.dsp ... Infinite impulse response - Wikipedia, the free encyclopediaInfinite impulse response (IIR) is a property of signal processing systems. Systems with this property are known as IIR systems or, when dealing with filter systems ... IIR Filter DesignUC Berkeley Extension: DSP I R. Kakarala IIR Filter Design Topics: IIR filter design, pole-zero ... 7/26/2012 7:46:43 AM
|