There are 9 messages in this thread.
You are currently looking at messages 0 to 9.
I have created a fractional delay line with resolution 1/L of the input sample time by interpolating a lowpass FIR prototype by L and extracting subfilters by striding through the interpolated response starting at different points. The various subfilters give different fractional delays. What I don't like about it is that the frequency response varies by subfilter. The -3 dB cutoff moves. I am stuck with a fixed-length FIR filter due to hardware constraints. Can anyone recommend a technique that yields consistent frequency response for the subfilters? An allpass would be fine. Or tell me that it is impossible. Thanks, John______________________________
John wrote: > I have created a fractional delay line with resolution 1/L of the > input sample time by interpolating a lowpass FIR prototype by L and > extracting subfilters by striding through the interpolated response > starting at different points. The various subfilters give different > fractional delays. > > What I don't like about it is that the frequency response varies by > subfilter. The -3 dB cutoff moves. Aha! I had encountered exactly this problem before. If you want to decimate the original prototype filter into N subfilters, you have to raise the requirement of the passband flatness of the original filter approximately by the factor of N. This ensures the worst case. > I am stuck with a fixed-length FIR filter due to hardware constraints. > Can anyone recommend a technique that yields consistent frequency > response for the subfilters? An allpass would be fine. Or tell me that > it is impossible. I don't know if there is a systematic approach for this problem; I did it by tweaking the requirements to the original filter. Also, you can design each of the subfilters independently for best results at the fixed length. Vladimir Vassilevsky DSP and Mixed Signal Design Consultant http://www.abvolt.com______________________________
On Feb 8, 2:50=A0pm, Vladimir Vassilevsky <nos...@nowhere.com> wrote: > John wrote: > > I have created a fractional delay line with resolution 1/L of the > > input sample time by interpolating a lowpass FIR prototype by L and > > extracting subfilters by striding through the interpolated response > > starting at different points. The various subfilters give different > > fractional delays. > > > What I don't like about it is that the frequency response varies by > > subfilter. The -3 dB cutoff moves. > > Aha! I had encountered exactly this problem before. > > If you want to decimate the original prototype filter into N subfilters, > you have to raise the requirement of the passband flatness of the > original filter approximately by the factor of N. This ensures the worst > case. > > > I am stuck with a fixed-length FIR filter due to hardware constraints. > > Can anyone recommend a technique that yields consistent frequency > > response for the subfilters? An allpass would be fine. Or tell me that > > it is impossible. > > I don't know if there is a systematic approach for this problem; I did > it by tweaking the requirements to the original filter. Also, you can > design each of the subfilters independently for best results at the > fixed length. > > Vladimir Vassilevsky > DSP and Mixed Signal Design Consultanthttp://www.abvolt.com Hey Vlad, it sounded like the OP interpolated the impulse response as opposed to decimating the impulse response. I've had excellant results when decimating impulse responses. I think the OP needs to adjust his specifications for desinging the filter before its impulse response gets decimated. I.e., where to map the don't care regions etc. Clay______________________________
On Feb 8, 10:57=A0am, John <sampson...@gmail.com> wrote: > I have created a fractional delay line with resolution 1/L of the > input sample time by interpolating a lowpass FIR prototype by L and > extracting subfilters by striding through the interpolated response > starting at different points. The various subfilters give different > fractional delays. > > What I don't like about it is that the frequency response varies by > subfilter. The -3 dB cutoff moves. > > I am stuck with a fixed-length FIR filter due to hardware constraints. > Can anyone recommend a technique that yields consistent frequency > response for the subfilters? An allpass would be fine. Or tell me that > it is impossible. > > Thanks, > > John John You do not say how you designed your basic filter. It matters. Techniques like the Remez-exchange optimized filters meet their specs only with the complete set of designed values. Neither subsets of the coefficients of a scaled prototype filter nor local interpolations of the coefficients of the prototype filter are required to meet the original specifications and often don't. Window designs like the Kaiser-Bessel design a waveform that meets your specification. You can then use the Kaiser-Bessel formula to generate samples of that waveform at the delays you desire and they will meet the original specification. Dale B. Dalrymple______________________________
On 2/8/2010 1:18 PM, Clay wrote: > On Feb 8, 2:50 pm, Vladimir Vassilevsky<nos...@nowhere.com> wrote: >> John wrote: >>> I have created a fractional delay line with resolution 1/L of the >>> input sample time by interpolating a lowpass FIR prototype by L and >>> extracting subfilters by striding through the interpolated response >>> starting at different points. The various subfilters give different >>> fractional delays. >>> What I don't like about it is that the frequency response varies by >>> subfilter. The -3 dB cutoff moves. >> Aha! I had encountered exactly this problem before. >> >> If you want to decimate the original prototype filter into N subfilters, >> you have to raise the requirement of the passband flatness of the >> original filter approximately by the factor of N. This ensures the worst >> case. >> >>> I am stuck with a fixed-length FIR filter due to hardware constraints. >>> Can anyone recommend a technique that yields consistent frequency >>> response for the subfilters? An allpass would be fine. Or tell me that >>> it is impossible. >> I don't know if there is a systematic approach for this problem; I did >> it by tweaking the requirements to the original filter. Also, you can >> design each of the subfilters independently for best results at the >> fixed length. >> >> Vladimir Vassilevsky >> DSP and Mixed Signal Design Consultanthttp://www.abvolt.com > > Hey Vlad, it sounded like the OP interpolated the impulse response as > opposed to decimating the impulse response. I've had excellant results > when decimating impulse responses. I think the OP needs to adjust his > specifications for desinging the filter before its impulse response > gets decimated. I.e., where to map the don't care regions etc. > > Clay FWIW, I've done something in-between with good results. i.e., design a FIR with a reasonably large number of taps, then interpolate it, (usually with an FFT), up to some very large number of taps (like 4k, 8k, whatever). The implemented filters are usually 8 taps or so, so there are often potentially 512 to 1024 potential subfilters. A worry I had long ago was that the DC gain might differ among the subfilters, as well as stop-band attenuation and other metrics. Since, as it usually is in my case, this was for a comm system if the characteristics of the subfilters differed much it would probably be noticeable in the system performance. I spent a lot of time on analysis, even though the system was running in sims and the lab over all the operating conditions with essentially no measurable implementation loss in the digital processing, and eventually convinced myself that it was a non-issue. I didn't do anything special in the original filter design, and used the same techniques that I'd always used (which included Parks-McClellan with Remez-exchange) and was just careful about the interpolation process. -- Eric Jacobsen Minister of Algorithms Abineau Communications http://www.abineau.com______________________________
On Feb 8, 6:11 pm, Eric Jacobsen <eric.jacob...@ieee.org> wrote: > On 2/8/2010 1:18 PM, Clay wrote: > > > On Feb 8, 2:50 pm, Vladimir Vassilevsky<nos...@nowhere.com> wrote: > >> John wrote: > >>> I have created a fractional delay line with resolution 1/L of the > >>> input sample time by interpolating a lowpass FIR prototype by L and > >>> extracting subfilters by striding through the interpolated response > >>> starting at different points. The various subfilters give different > >>> fractional delays. > >>> What I don't like about it is that the frequency response varies by > >>> subfilter. The -3 dB cutoff moves. > >> Aha! I had encountered exactly this problem before. > >> > >> If you want to decimate the original prototype filter into N subfilters, > >> you have to raise the requirement of the passband flatness of the > >> original filter approximately by the factor of N. This ensures the worst > >> case. > >> > >>> I am stuck with a fixed-length FIR filter due to hardware constraints. > >>> Can anyone recommend a technique that yields consistent frequency > >>> response for the subfilters? An allpass would be fine. Or tell me that > >>> it is impossible. > >> I don't know if there is a systematic approach for this problem; I did > >> it by tweaking the requirements to the original filter. Also, you can > >> design each of the subfilters independently for best results at the > >> fixed length. > > > > Hey Vlad, it sounded like the OP interpolated the impulse response as > > opposed to decimating the impulse response. I've had excellant results > > when decimating impulse responses. I think the OP needs to adjust his > > specifications for desinging the filter before its impulse response > > gets decimated. I.e., where to map the don't care regions etc. > > FWIW, I've done something in-between with good results. i.e., design a > FIR with a reasonably large number of taps, then interpolate it, > (usually with an FFT), up to some very large number of taps (like 4k, > 8k, whatever). The implemented filters are usually 8 taps or so, so > there are often potentially 512 to 1024 potential subfilters. > > A worry I had long ago was that the DC gain might differ among the > subfilters, as well as stop-band attenuation and other metrics. there is a way to guarantee that the DC gain remains constant between subfilters (without the crude "let's adjust all the taps for this fractional delay to normalize DC gain"). when you design your ideal FIR LPF (from which you draw your polyphase coefs from), shoot for a target gain in the passband to be 1/sinc(k/N), instead of 1, where M*N is the length of the FIR and M is the number of fractional delays. and spec your design program to get you an FIR that is N-1 samples short of what it really spec'd to be which is M*N sample long (so it should be (M-1)*N+1 long). then convolve that IR with an N-sample rectangular pulse (of height 1/N), which imposes a sinc(k/N) scaling to the frequency response in both passband and stopband. this puts zeros at all non-zero integer multiples of the sampling frequency. now, for the moment, it escapes me why that means the DC gain for all the different fractional delays is the same. if it was pure non-zero DC in the original bandlimited signal, in the sampled and interpolated signal it would show up at 0 Hz but all of the other images are wiped out by the sinc() function in the frequency response. that means when resampled, there are no images to fold back and fuck things up. that means no resampling error and infinite S/N, the DC coming out is exactly the DC going in. that means that each subfilter has the same DC gain. does this make sense, guys? i really can't remember the perfect reasoning for why this worked, and that's the best i can think of. Eric, Clay, Vlad, Dale is there a more direct math that proves this, why is it that when you multiply the frequency response by the sinc() does it mean that all the subfilters have the same DC gain? r b-j______________________________
On Feb 8, 3:11=A0pm, Eric Jacobsen <eric.jacob...@ieee.org> wrote: .>... .> FWIW, I've done something in-between with good results. =A0 i.e., design a .> FIR with a reasonably large number of taps, then interpolate it, .> (usually with an FFT), .>... .> =A0I didn't do anything special .> in the original filter design, and used the same techniques that I'd .> always used (which included Parks-McClellan with Remez-exchange) and was .> just careful about the interpolation process. Interpolation based in the response of the complete coefficient set should work fine. Desampling to a subset of optimized coefficient set or interpolation from only near coefficients shouldn't be counted on to meet the original specs.. Dale B. Dalrymple______________________________
On Feb 8, 3:18=A0pm, Clay <c...@claysturner.com> wrote: > On Feb 8, 2:50=A0pm, Vladimir Vassilevsky <nos...@nowhere.com> wrote: > > > > > John wrote: > > > I have created a fractional delay line with resolution 1/L of the > > > input sample time by interpolating a lowpass FIR prototype by L and > > > extracting subfilters by striding through the interpolated response > > > starting at different points. The various subfilters give different > > > fractional delays. > > > > What I don't like about it is that the frequency response varies by > > > subfilter. The -3 dB cutoff moves. > > > Aha! I had encountered exactly this problem before. > > > If you want to decimate the original prototype filter into N subfilters= , > > you have to raise the requirement of the passband flatness of the > > original filter approximately by the factor of N. This ensures the wors= t > > case. > > > > I am stuck with a fixed-length FIR filter due to hardware constraints= . > > > Can anyone recommend a technique that yields consistent frequency > > > response for the subfilters? An allpass would be fine. Or tell me tha= t > > > it is impossible. > > > I don't know if there is a systematic approach for this problem; I did > > it by tweaking the requirements to the original filter. Also, you can > > design each of the subfilters independently for best results at the > > fixed length. > > > Vladimir Vassilevsky > > DSP and Mixed Signal Design Consultanthttp://www.abvolt.com > > Hey Vlad, it sounded like the OP interpolated the impulse response as > opposed to decimating the impulse response. I've had excellant results > when decimating impulse responses. I think the OP needs to adjust his > specifications for desinging the filter before its impulse response > gets decimated. I.e., where to map the don't care regions etc. > > Clay Thanks for the replies, they were very helpful. When I design a larger filter to begin with, then decimate it, the results are much better. John______________________________
On Feb 9, 6:32=A0am, John <sampson...@gmail.com> wrote: > Thanks for the replies, they were very helpful. When I design a larger > filter to begin with, then decimate it, the results are much better. > that's what yer s'posed to do. r b-j______________________________