# A Simple Complex Down-conversion Scheme

*f*/4 (one fourth the sample rate). I managed to obtain one such scheme that is computationally efficient, and it might be of some mild interest to you guys. The simple complex down-conversion scheme is shown in Figure 1(a).

_{s}It works like this: say we have a real *x*_{R}(*n*) input bandpass signal having the spectrum shown in Figure 1(b), and for our example the sample rate is *f _{s}* = 24 kHz. The Delay/Hilbert transform filter combination in Figure 1(a) attenuates the negative frequency spectral components of

*X*

_{R}(

*f*) to produce the complex

*u*

_{I}(

*n*) +

*ju*

_{Q}(

*n*) signal whose spectrum is provided in Figure 1(c). (The first Delay function in the top path is a cascade of unit delay elements, whose length is the group delay of the Hilbert filter, needed to time-synchronize the

*u*

_{I}(

*n*) and

*u*

_{Q}(

*n*) sequences.) The follow-on downsample by four (discard all but every fourth sample) performs our desired frequency translation and produces the complex

*v*(

*m*) sequence having the spectrum shown in Figure 1(d) where the new sample rate is 6 kHz.

**Figure 1**

The compensation filter in Figure 1(a) is used to compensate for the non-flat frequency magnitude response of the Hilbert filter in order to widen the down-converter's usable passband width. (The Delay function after the downsampling in the top path is needed to time-synchronize the *y*_{I}(*m*) and *y*_{Q}(*m*) sequences.) To make this complex down-converter computationally efficient, I suggest the implementation shown in Figure 2, where the compensation filter's coefficients are *h*_{c}(0) = -1/32, and *h*_{c}(1) = 1/2 + 1/16.

**Figure 2**

If the *x*_{R}(*n*) input signal's bandwidth is no greater than *f _{s}*/6, then Figure 2's Hilbert filter attenuates

*x*

_{R}(

*n*)'s undesired negative-frequency spectral components, at the

*y*

_{c}(

*n*) output, by approximately 35 dB. That much attenuation may not be something to write home about, but keep in mind that this down-converter requires no multipliers because the multiplies by the

*h*

_{c}(0) and

*h*

_{c}(1)

*coefficients can be implemented with binary shifts and adds. Now at the expensive of two multiplies per output sample, the compensation filter coefficients can be set to*

*h*

_{c}(0) = -0.02148 and

*h*

_{c}(1) = 0.54128 to attenuate

*x*

_{R}(

*n*)'s undesired negative-frequency spectral components by roughly 45 dB.

Again, I thought some readers might find this little downconversion scheme to be interesting. If you have any questions, or comments, please let me know.

Copyright © 2008, Richard Lyons, All Rights Reserved

**Previous post by Rick Lyons:**

Computing Chebyshev Window Sequences

**Next post by Rick Lyons:**

Free DSP Books on the Internet

- Comments
- Write a Comment Select to add a comment

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.

Registering will allow you to participate to the forums on ALL the related sites and give you access to all pdf downloads.