# Zero Order Hold with polyphase resampler

I'm trying to design a FIR filter(direct form) the coefficient of which will be used to design a polyphase resampler that does Zero-Order Hold resampling. If the direct form impulse response is triangular, then we get a linear interpolator.

Is it possible to imagine a filter response that would produce a ZOH interpolator? I have some constraints that prevent a simple MATLAB's repelem() based ZOH implementation.

• Zero-order hold means you're not actually interpolating/filtering, so the filter taps you're looking for is simply [1]. – Marcus Müller Oct 19 '16 at 18:13
• @MarcusMüller, ZOH most certainly is an interpolator. just not a very good one. – robert bristow-johnson Jan 12 '17 at 17:44
• @robertbristow-johnson well, that's certainly true :) My bad! – Marcus Müller Jan 12 '17 at 19:49

I was able to achieve this with a square pulse impulse response of length I(interpolation rate). The square impulse response in relation to an equivalent sin(x)/x and linear interpolator(triangular) response is show in the figure below. This is still not a perfect design as I see discontinuities every I samples in the resampled output.

Edit: The discontinuities are addressed by changing the transition of high-low in the square impulse response, from two samples to three sample. So instead of the transitions being (high, low) in two samples, it will be (high, mean(high,low),low) over three sample and likewise for transition from low ot high.

• What were you supposed to do exactly? – Ben Oct 28 '19 at 20:23
• To simply design a filter for ZOH step interpolation instead of using standard ring buffer approach @Ben – Naveen Nov 8 '19 at 15:42