Sign in

username:

password:



Not a member?

Search compdsp



Search tips

comp.dsp by Keywords

Adaptive Filter | ADPCM | ADSP | ADSP-2181 | Aliasing | AMR | Anti-Aliasing | ARMA | Autocorrelation | AutoCovariance | Beamforming | Bessel | Blackfin | Butterworth | C6713 | CCS | Chebyshev | CIC Filter | Circular Convolution | Code Composer Studio | Comb Filter | Compression | Convolution | Cross Correlation | DCT | Decimation | Deconvolution | Demodulation | DM642 | DSP Boards | DSP/BIOS | DTMF | Echo Cancellation | Equalization | Equalizer | ETSI | EZLITE (Ez-kit Lite) | FFT | FFTW | FIR Filter | Fixed Point | FSK | G.711 | G.723 | G.729 | Gaussian Noise | Goertzel | GPIO | Hilbert Transform | IFFT | IIR Filter | Interpolation | Invariance | JTAG | Kalman | Laplace Transform | Levinson | LPC | McBSP | MIPS | Modulation | MPEG | Multirate | Notch Filter | Nyquist | OFDM | Oversampling | Pink Noise | Pitch | PLL | Polyphase | QAM | QDMA | Quantization | Quantizer | Radar | Random Noise | Reed Solomon | Remez | Resampling | RTDX | Sampling | Sharc | TI C6711 | Undersampling | Viterbi | Wavelets | White Noise | Wiener Filter | Windowing | XDS510PP | Z Transform

Ads

Discussion Groups

Free Online Books

See Also

Embedded SystemsFPGAElectronics

Discussion Groups | Comp.DSP | FIR taps for fractional delay

There are 9 messages in this thread.

You are currently looking at messages 0 to 9.


FIR taps for fractional delay - John - 2010-02-08 13:57:00

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
______________________________
New DSP Code Snippets Section now Live.   Learn more about the reward program for contributors here.

Re: FIR taps for fractional delay - Vladimir Vassilevsky - 2010-02-08 14:50:00




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
______________________________
New DSP Code Snippets Section now Live.   Learn more about the reward program for contributors here.

Re: FIR taps for fractional delay - Clay - 2010-02-08 15:18:00

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
______________________________
New DSP Code Snippets Section now Live.   Learn more about the reward program for contributors here.

Re: FIR taps for fractional delay - dbd - 2010-02-08 15:33:00

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
______________________________
New DSP Code Snippets Section now Live.   Learn more about the reward program for contributors here.

Re: FIR taps for fractional delay - Eric Jacobsen - 2010-02-08 18:11:00

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
______________________________
New DSP Code Snippets Section now Live.   Learn more about the reward program for contributors here.

Re: FIR taps for fractional delay - robert bristow-johnson - 2010-02-08 21:44:00

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
______________________________
New DSP Code Snippets Section now Live.   Learn more about the reward program for contributors here.

Re: FIR taps for fractional delay - dbd - 2010-02-08 22:06:00

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



______________________________
New DSP Code Snippets Section now Live.   Learn more about the reward program for contributors here.

Re: FIR taps for fractional delay - John - 2010-02-09 06:32:00

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
______________________________
New DSP Code Snippets Section now Live.   Learn more about the reward program for contributors here.

Re: FIR taps for fractional delay - robert bristow-johnson - 2010-02-09 15:24:00

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
______________________________
New DSP Code Snippets Section now Live.   Learn more about the reward program for contributors here.