I want to do sample rate conversion by subsequently upsampling with factor I=5, and then downsampling with factor D=9.
I have designed a nyquist sample rate conversion filter h() of length M, with matlab's filterbuilder tool for interpolation factor I=5, and decimation factor D=9. Since D > I, I have chosen the normalized cutoff frequency of the filter to be at 1/9, by setting "Band" under filter specifications to 9.
Then I compute I polyphase filters pk(n), which have length K=M/I by sampling h() according to:
pk(n) = h(k + n*I), for k=0,...,I-1 and n=0,...,K-1.
Then I only compute the output samples for each polyphase filter, which are sampled by the downsampling operation. In other words, I compute the output y[m], by sampling the outputs of the polyphase filters yk according to:
y[m] = yk[ floor( m * D / I ) ] k = ( m * D ) modulo I
Thus, I do not compute samples of yk that are not used in the output.
I apply these polyphase filter's first to do sample rate conversion for the rows of the image. Then I apply the same filters to do sample rate conversion for the columns.
However, I get a distorted output image which still, clearly contains alias:
Does anyone know If I'm conceptually doing anything wrong?