Chosing polyphase interpolation coefficients I'm writing code for a 3x polyphase interpolator using a total of 9 coefficients. This is organized as 3 parallel FIR branches with 3-taps each that are summed at the 3x sampling rate.

The problem I have is the impulse response looks correct (I get my 9 filter coefficients as output) but when I use a real signal that is a smooth Gaussian area near the peak has 'digital noise'. I have confirmed by debug printouts the code is calculating what I want it to. It seems the combination of the input signal &amp; the coefficients really does generate a non-monotonic output.

as reference I used the info at this site: [polyphase filter faq][1]

What am I missing? How do I avoid this? My coefficients are:
[4066   6261    8133    9391    9834    9391    8133    6261    4066]

The inputs sample rate is 100Mh and the output is 300Mh. I choose the filter coefficients to have a bandwidth &lt; 50Mh.



Adding followup information. I looked at the step response and it oscillated every 3 output samples. The output to a step should be the sum of the coefficients in a branch. I noticed the 3 coefficients of the 3 branches did not all add to the same value. By deduction, I changed the coefficient 6261 to 5878. Now the coefficients are:
coeff = [4066   5878    8133    9391    9834    9391    8133    5878    4066] and the response is much better.

See new plot: 

Thanks,
Brian
At Peter K's suggestion I am submitting my solution as the answer. In the poly phase filter the 9 coefficients were all symmetric about the center but gave poor ripple performance. When arranged in the format of a poly-phase filter the 3 coefficients in the 3 branches did not add up to the same value for all three branches. By making a slight edit to the 1 coefficient at +/-3 positons from the center all the branches added up to the same value and the results are as shown.

To get better performance then that shown I need to increase the # of coefficients to N=15 (wanting to keep N a multiple of L=3 and odd).

Brian