Hello, For my application I need to design a filter which CLOSELY matches the frequency response, both in amplitude and phase, of a provided analog prototype filter. This is an old problem, I know... I've tried bilinear transform and impulse invariant methods, as provided by MATLAB's functions. They are not enough, I need better performance. I've also read of covariance-invariant method, and about frequency domain filtering. As for the covariance-invariant method, I know there are some IEEE papers, like the one by Perl J. and Scharf, L.L. "Covariance-Invariant Digital Filtering", Trans on Acoustics, Speech and Signal Processing, Vol. 25, No. 2. April 1977, pp. 143-151. But this is not part of the susbscriptions which I am allowed to with my IEEE membership. And as for the frequency domain digital filtering, I understand that it consists on taking the FFT of the input signal (complex cefficients), take the complex form of the desired frequency response, multiply them, and perform inverse FFT (IFFT). Is it that simple? What should be taken into account? I mean, about FFT length, widowing funtions, overlap, sampling frequency, etc... Could someone please explain me, and/or guide me to information (preferably free) on the Internet about the topics? Searching at Google for iir filter "covariance invariant" simply guides me to the IEEE paper. Thank you in advance, JaaC
Precise Filter Design
Started by ●January 9, 2005
Reply by ●January 9, 20052005-01-09
Jaime A. Aranguren C., SanJaaC Electronics wrote:> Hello, > > For my application I need to design a filter which CLOSELY matchesthe> frequency response, both in amplitude and phase, of a provided analog > prototype filter. This is an old problem, I know... > > I've tried bilinear transform and impulse invariant methods, as > provided by MATLAB's functions. They are not enough, I need better > performance. I've also read of covariance-invariant method, and about > frequency domain filtering.I'm probably revealing my infinite ignorance on the subject, but what are the constraints on the design? "Analog prototype" makes me think IIR implementation, but does it have to be? Can you afford a long FIR implementation? And how are the precision constraints formulated? Do you need an exact match, point-wise matches or does an LMS match suffice (i.e. do you need to minimize the L1 norm, the L2 norm or the L infinite norm)? *IF* you can afford a long (i.e. many coefficients) FIR implementation and *IF* it is sufficient to minimize the error in the L2 norm, you ought to be able to use some sort of software package to design your filter. Just my 2c... Rune
Reply by ●January 9, 20052005-01-09
Hi Rune, Thanks for the reply. Yes, at the beginning it is an IIR filter, but it is not mandatory that this sort of digital filter should be used, but it is preferred. I'm looking for an exact match, if possible. I've read that filtering in the frequency domain is a sort of efficiency increase for long FIR filtering. Could you plesae enlighten on that? JaaC
Reply by ●January 9, 20052005-01-09
Jaime A. Aranguren C., SanJaaC Electronics wrote:> Hi Rune, > > Thanks for the reply. > Yes, at the beginning it is an IIR filter, but it is not mandatorythat> this sort of digital filter should be used, but it is preferred. I'm > looking for an exact match, if possible. I've read that filtering in > the frequency domain is a sort of efficiency increase for long FIR > filtering. Could you plesae enlighten on that? > > JaaCSorry, don't think I can help much. I have found what little I know about frequency domain filtering in Rick Lyons' book. I think you'll be better off consulting the book directly instead of having the material filtered and obfuscated by my shortcuts and misunderstandings. With some luck, Rick himself might even be lurking here... Rune
Reply by ●January 9, 20052005-01-09
On 9 Jan 2005 09:50:44 -0800, "Jaime A. Aranguren C., SanJaaC Electronics" <jaime.aranguren@ieee.org> wrote:>>For my application I need to design a filter which CLOSELY matches the >>frequency response, both in amplitude and phase, of a provided analog >>prototype filter. This is an old problem, I know...http://melvyl.cdlib.org:80/F/H3UA418793QIB1YM87QRR8UNISPBXBMUVBRP133E6N87Q8L3IY-12897?func=full-set-set&set_number=005561&set_entry=000001&format=999
Reply by ●January 9, 20052005-01-09
in article 1105293044.208388.31870@c13g2000cwb.googlegroups.com, Jaime A. Aranguren C., SanJaaC Electronics at jaime.aranguren@ieee.org wrote on 01/09/2005 12:50:> For my application I need to design a filter which CLOSELY matches the > frequency response, both in amplitude and phase, of a provided analog > prototype filter. This is an old problem, I know... > > I've tried bilinear transform and impulse invariant methods, as > provided by MATLAB's functions. They are not enough, I need better > performance.what is your sample rate and how high are the frequencies of interest relative to Nyquist? can your digital filter have a much higher order than the analog filter? the bilinear transform only substitutes a first order term of s = Fs * ln(z) into the analog H(s). have you tried more terms? it will increase the order of H(z). (i know some folks said that this does not guarantee stability but that does not seem right to me.) -- r b-j rbj@audioimagination.com "Imagination is more important than knowledge."
Reply by ●January 9, 20052005-01-09
robert bristow-johnson wrote:> in article 1105293044.208388.31870@c13g2000cwb.googlegroups.com, Jaime A. > Aranguren C., SanJaaC Electronics at jaime.aranguren@ieee.org wrote on > 01/09/2005 12:50: > > >>For my application I need to design a filter which CLOSELY matches the >>frequency response, both in amplitude and phase, of a provided analog >>prototype filter. This is an old problem, I know... >> >>I've tried bilinear transform and impulse invariant methods, as >>provided by MATLAB's functions. They are not enough, I need better >>performance. > > > what is your sample rate and how high are the frequencies of interest > relative to Nyquist? can your digital filter have a much higher order than > the analog filter? the bilinear transform only substitutes a first order > term of > > s = Fs * ln(z) > > into the analog H(s). have you tried more terms? it will increase the > order of H(z). (i know some folks said that this does not guarantee > stability but that does not seem right to me.) > >Doing so wouldn't take into account any reconstruction effects from the usual zero-order hold DAC arrangement -- in fact, with a low sample rate the ZOH effect may be messing things up more than the z-domain approximation. -- Tim Wescott Wescott Design Services http://www.wescottdesign.com
Reply by ●January 10, 20052005-01-10
Hi Robert, My sample rate is 240 Hz. The filters is some sort of band pass filter, bell shaped. Frequencies of interest are from 0.05 Hz up to 40Hz, being the maximum at 8.8 Hz. Could you please give me some example on how to get a IIR filter designed with more terms than what's proided by MATLAB's bilinear function? This one gives me a 6th order IIR filter, implemented as three Second Order Sections. TIA. JaaC
Reply by ●January 10, 20052005-01-10
Thanks, Rune. I'll have a look at his UDSP, section 10.10 "Fast FIR filtering using the FFT" seems to be the place. Regards, JaaC
Reply by ●January 10, 20052005-01-10
"robert bristow-johnson" <rbj@audioimagination.com> wrote in message news:BE071B4A.3B6B%rbj@audioimagination.com...> in article 1105293044.208388.31870@c13g2000cwb.googlegroups.com, Jaime A. > Aranguren C., SanJaaC Electronics at jaime.aranguren@ieee.org wrote on > 01/09/2005 12:50: > > > For my application I need to design a filter which CLOSELY matches the > > frequency response, both in amplitude and phase, of a provided analog > > prototype filter. This is an old problem, I know... > > > > I've tried bilinear transform and impulse invariant methods, as > > provided by MATLAB's functions. They are not enough, I need better > > performance. > > what is your sample rate and how high are the frequencies of interest > relative to Nyquist? can your digital filter have a much higher order than > the analog filter? the bilinear transform only substitutes a first order > term of > > s = Fs * ln(z) > > into the analog H(s). have you tried more terms? it will increase the > order of H(z). (i know some folks said that this does not guarantee > stability but that does not seem right to me.) > > r b-j rbj@audioimagination.comOne issue that r b-j is perhaps hinting at is that a digital filter designed with the bilinear transform is an excellent match to the analog prototype until you get "near" the Nyquist rate. I use "near" in quotes because the exact definition depends on how much error you can tolerate. One solution to this is to upsample your input data to a higher sample rate, which will put your filter's cut-off frequencies farther from the Nyquist. I don't know if this is practical for your problem, but with a significantly large enough amount of computing power, it seems you should be able to find a high enough sample rate to make the match "close enough". Another question for r b-j and others, I've heard of using an alternate definition for the bilinear transform in order to alter the mapping between the s and z domains but don't know much about this topic. For example, the standard BLT yields a good match up until maybe about half Nyquist and then it diverges, reaching the analog value at infinity at Nyquist. Could one use an alternate mapping that for example made the digital filter match well up to say .95*Nyquist and then diverge _really_ fast? Or maybe even more unusual to have a mapping where the bulk of the error was in the low frequency terms? How does one go about this?






