Do Multirate Systems Have Transfer Functions?

Rick LyonsMay 30, 20113 comments

The following text describes why I ask the strange question in the title of this blog. Some months ago I was asked to review a article manuscript, for possible publication in a signal processing journal, that presented a method for improving the performance of cascaded integrator-comb (CIC) decimation filters [1].

Thinking about such filters, Figure 1(a) shows the block diagram of a traditional 2nd-order CIC decimation filter followed by downsampling by the sample rate factor R. There we see two cascaded integrators followed by two cascaded comb subfilters. Figure 1(b) shows the standard implementation of CIC decimation filtering with the downsampling by R following the last cascaded integrator. The Figure 1(b) network results in a reduced amount of data storage needed by the comb subfilters. Given the same x(n) input sequences, the Figure 1(a) and 1(b) networks generate identical y(nR) output sequences.

Fig. 1: Decimation filters: (a) CIC filter followed by downsampling;
(b) Hogenauer filter with embedded downsampling.

In the afore mentioned manuscript the authors call the Figure 1(a) network a “CIC filter”, and specifically refer to the Figure 1(b) network as a “Hogenauer filter” named after E. Hogenauer who first proposed the use of CIC filters [2].

In the manuscript the authors made, what was to me, a startling statement. They said that neither the CIC filter nor the Hogenauer filter have z-domain transfer functions! That statement surprised me because I’ve seen what was called the transfer function of a CIC filter presented on dozens of occasions in the literature of digital filters. The z-domain transfer function of a 2nd-order CIC filter is typically presented as

Anyone who’s studied CIC filters is familiar with Eq. (1).

Puzzled by that “CIC decimation filters don’t have transfer functions” statement I sent an E-mail to reference [1]’s author, DSP guru fred harris of Blackman-harris window fame, and asked him for further clarification.* Based on my E-mail interchange with Prof. harris, I now agree with him—CIC decimation filters don’t have transfer functions. The following attempts to justify that last statement.

Networks containing downsampling are not time-invariant so traditional system analysis by way of z-transforms does not apply [1],[3,4]. Here’s why I say this: Think of a linear time-invariant (LTI) filter whose x(n) input and y(n) output sequences are related by the following z-domain transfer function

If we focus only on the unit circle, and set z = e, we can write



X(e) = spectrum of the x(n) input to the filter,
Y(e) = spectrum of the y(n) output from the filter,
H(e) = frequency response of the LTI filter,
ω = our sampled-data frequency measured in radians/sample,
where 0≤ω≤2π.

Now if we concentrate on a single frequency, say 1 kHz, we can write Eq. (4) in the form of

where fs is the discrete data sample rate measured in samples/second. Stated in words, Eq. (5) tells us that the Y output spectral component at 1 kHz is the product of the filter’s H frequency response (a complex function comprising a magnitude value and a phase-angle value) at 1 kHz times the X input’s 1 kHz spectral component. For example, if the fs sample rate was 10,000 samples/second and the Y output contains a 1 kHz spectral component, then the X input must have contained a 1 kHz spectral component. This one-to-one input-to-output frequency relationship is the inherent behavior of LTI systems. So, nothing new thus far.

Now if we downsampled the filter’s output sequence by a factor of two (discarding every other sample) the “filter followed by downsampling” combination no longer has the above one-to-one input-to-output frequency relationship. For example, if the X input contained only a 4 kHz spectral component, the downsampled output will contain a 1 kHz spectral component. We can no longer measure the decimation operation’s output at 1 kHz and tell if the X input contained a 1 kHz spectral component. We have broken the one-to-one input-to-output frequency relationship required by an LTI system’s frequency response (the z-domain transfer function on the unit circle).

Returning to Figure 1(a), what I’m saying is that there is a z-domain transfer function from the x(n) input to the w(n) node (prior to downsampling), and that’s the transfer function in Eq. (1). However there is no z-domain transfer function from the x(n) input to the y(nR) output.

My above statements do not detract from the value of Eq. (1) however. That equation can be used to analyze the frequency response (by setting z = e) of a 2nd-order CIC decimation filter to determine the filter's passband and stopband responses. Once we use Eq. (1) to obtain the frequency response of the cascaded subfilters in Figure 1(a), we must then take into account the frequency folding that occurs when we downsample the final comb subfilter's output by R.

* Prof. harris prefers that no capital letters be used in the spelling of his name.

[1] G. Dolecek and F. Harris, "Design of wideband CIC compensator filter for a digital IF receiver", Digital Signal Processing magazine, Volume 19, Issue 5, September 2009, Pages 827-837.

[2] E. Hogenauer, E. "An Economical Class of Digital Filters For Decimation and Interpolation," IEEE Trans. Acoust. Speech and Signal Proc., Vol. ASSP 29, April 1981, pp. 155-162.

[3] F. Harris, Multirate Signal Processing for Communication Systems, Prentice-Hall, Upper Saddle River, New Jersey, 2004, pp. 341-358.

[4] A. Oppenheim and R. Schafer, Discrete-Time Signal Processing, 2nd Ed., Prentice Hall, Englewood Cliffs, New Jersey, 1989, pp. 240-241.

[ - ]
Comment by steveuJune 6, 2011
What you are effectively saying is simply that the limitations of any anti-alias filter lead to imperfections in a multi-rate system. I think we all know that. Try to be more positive. A darned good anti-alias filter gets us darned close to a clean transfer function for a band a little narrower than the narrowest band in the signal chain.
[ - ]
Comment by cfeltonJune 7, 2011
Thanks for the post, very good! This is often a tough topic to communicate. I often struggle in design reviews to clearly explain the multi-rate effects. At first I thought the transfer function would also fail the linearity test, aH(x[n]) = H(ax[n]) or aH(x1[n]) + bH(x2[n]) = H(ax1[n] + bx2[n]) But I don’t believe it does, the above will be true even though frequencies might be aliased. As you elegantly explain it does fail the time-invariant (shift-invariant) criteria, if y[n] = H(x[n]) then, y[n-k] = H(x[n-k]) It is interesting, from a frequency point of view, I will get the same result if I send in a shifted or not shifted version. But from a time domain (which samples are thrown away) I will not get a valid result and the above fails. Thanks again for you contributions, always enjoy them. Chris
[ - ]
Comment by akop1234April 10, 2023

Regarding the time invariant aspect, let's consider a multi-rate, and otherwise pointless, system where the input is first up-sampled (where 0s are inserted in between input samples) then the stream is down-sampled back to the original rate.  Here the response is 1 if the up/down sampling frames are aligned and 0 if the frames are not aligned.  So, it would seem that the response is predictable if the frame alignment is deterministic (by design) and known to the engineer trying to model its H(s) or H(z).  A real-world version of this system would for example include a low pass filter in between the up/down sampler (making it much less pointless) and depending on the low pass filter response the effect of the frame alignment would have more or less impact on the response.  Given this thought experiment I am forced to conclude that under certain conditions the response of the system can eighter be approximated (e.g. when the filter response is sufficiently narrow) or even analyzed perfectly (e.g., when the frame alignment is known).  Am I missing something here other than generalizing from this specific example is probably inadequate?

To post reply to a comment, click on the 'reply' button attached to each comment. To post a new comment (not a reply to a comment) check out the 'Write a Comment' tab at the top of the comments.

Please login (on the right) if you already have an account on this platform.

Otherwise, please use this form to register (free) an join one of the largest online community for Electrical/Embedded/DSP/FPGA/ML engineers: