Another representation of Frerking’s method

Frerking’s method is found in Frerking, M. E., Digital Signal Processing in Communications Systems, Chapman & Hall, 1994, pp. 171-174. It is a method for creating a frequency-translating FIR filter by translating the filter coefficients to a bandpass filter and then convolving with the input samples (to simultaneously mix to baseband and decimate). The method involves creating multiple bandpass filters so as to maintain the linear phase property of the FIR filter. The number of bandpass filters (sets of coefficients) required is defined as P, and this value is also, therefore, the number of unique {\phi} as shown below. The method can really be defined as doing the following:

            {{b}_k[n]} = h[n]e^{j({\phi}_k + 2{\pi}n\frac{f}{{F}_s})}

where {b}_k are the bandpass filters from k=0 to k=P. {h[n]} is the original low pass filter coefficient set of length N, f is the translation frequency, and {F}_s is the input sampling frequency. {{\phi}_k} is the starting phase of the NCO (numerically controlled oscillator) being multiplied element by element with the low pass filter where

{\phi}_k = 2{\pi}Rk{\frac{f}{{F}_s}}

and where the minimum integer value P is determined by the equation given by Frerking:

PR\frac{f}{{F}_s} = int,\ \ 1 \leq P \leq {F}_s

where R is the integer decimation rate. The maximum value of P would then be {F}_s, assuming f and {F}_s are integers.

Then, to filter and decimate,

{y[m]} = {y[Rl]} = \sum\limits_{n=0}^N x[Rl-n]{b}_{(n{\bmod}P)}[n]

where {y[m]} is each baseband decimated sample, and {x[l]} is the input samples. By decimation, the output number of samples, M = \frac{L}{R} where L is the input number of samples (although to avoid zero-padding for convolution, M< {\frac{L}{R}} ).

Our new sampling rate will be

{F}_{new} = \frac{{F}_{s}}{R}

However, by using a single bandpass filter, a new method could be used. The starting phase of the NCO on the filter coefficient set is pulled out from the sum, and then phase correction is done on the decimated samples after the convolution step.

{{b}[n]} = h[n]e^{j({2{\pi}n\frac{f}{{F}_s}})}

{y[m]} = {y[Rl]} = e^{j{\phi}_k} \sum\limits_{n=0}^N x[Rl-n]{b[n]},\ \ k = m{\bmod}P

Both methods are equivalent:

e^{j{\phi}_k} \sum\limits_{n=0}^N x[Rl-n]h[n]e^{j(2{\pi}n\frac{f}{{F}_s})} = \sum\limits_{n=0}^N x[Rl-n]h[n]e^{j({\phi}_k + 2{\pi}n\frac{f}{{F}_s})}

Frerking’s method requires NP multiplications before convolution, and for it to be most computationally efficient, it requires storing P sets of N coefficients. For a small value of P and a large value of M output samples, the number of multiplications would be minimized by this method. However, the worst case for using Frerking’s method is a large value of {F}_s, M \ge {F}_s, and an unknown f, meaning that the storage requirements would be for P = {F}_s number of sets of filter coefficients.

For the case when there exists a small value of M or a large value of P or N, the new modified method might be more computationally efficient, as N + M - \lfloor {\frac{M}{P}} \rfloor multiplications are required in this method. However, the new method is more memory efficient in all cases where P > 1 because only one set of filter coefficients is required to be stored in all cases.

For an unknown integer value f and an unknown decimation rate (or where R is not a submultiple of {F}_s), processing would have to accommodate P = {F}_s, and so Frerking would be optimal where

N{F}_s < N + M - \lfloor{\frac{M}{{F}_s}}\rfloor

and the new method would be optimal for

N{F}_s > N + M - \lfloor{\frac{M}{{F}_s}}\rfloor