How to use rectangular window design to design a length-9 polyphase filter which delays an input signal by 3/5 of a sample? An expression for the 9 coefficients is required.
-
$\begingroup$ Why do you need a polyphase filter, if you just want to implement a single fractional delay. A single FIR filter will be fine for this. With 9 tabs you not going to get particularly good results. Where does that come from ? Rectangular window is also a sub-optimal design method. Why that ? $\endgroup$– HilmarCommented Jul 26, 2018 at 21:34
-
$\begingroup$ This was my exam question. :) $\endgroup$– Debasish JanaCommented Jul 26, 2018 at 22:13
3 Answers
Just sample a Sinc function at the appropriate phase offset, and truncate the FIR as needed to meet your rectangular window length requirement. You only need 1 phase for a constant delay while keeping the same sample rate.
-
$\begingroup$ i think the OP needs the $\operatorname{sinc}()$ function to be 9 taps. so a good window is needed. i would suggest a kaiser window with a $\beta \approx 5$ i think. $\endgroup$ Commented Jul 28, 2018 at 9:13
Since the question was how to specifically implement this with a polyphase filter, I offer the following:
Such a true polyphase filter structure could be done by designing the base FIR filter with 9*5 = 45 taps and then mapping this to polyphase using row to column mapping of the taps in the one 45 tap FIR filter to 5 9 tap polyphase filters. In this approach each filter out would be an additional 1/5 of the delay, so choose the 3rd filter to get 3/5.
See the Interpolator implementation at this link for further details on how to construct the Polyphase Filter: How to implement Polyphase filter?
Each output of the polyphase filters in the interpolator is a delayed version of the same signal (hence how interpolation can be performed with these structures). Each filter is an allpass filter with a different delay (hence "poly-phase").
A windowed sinc filter with 9 taps has an inherent delay of around 4 taps, so depending on the context this could be useless. A fractional delay using an allpass filter might be a better choice.
-
$\begingroup$ are you Stefan Stenzel?? $$ $$ in any case, welcome. $\endgroup$ Commented Sep 26, 2018 at 18:31
-
1$\begingroup$ Hi Robert, it is me indeed! Thanks for the welcome! $\endgroup$– StenzelCommented Sep 28, 2018 at 6:25