I was just curious...

$$x[n] {\longrightarrow} \boxed{h[n]} {\longrightarrow} y[n]$$

I've never seen a real world filter where the coefficient of $h[n]$ were complex, or where $x[n]$ was a complex sequence.

But, the DSP book always makes a big deal about conjugate symmetric sequences, which implies that either $x[n]$ or $h[n]$ is composed of complex numbers.

What would the real world use case be for the following three scenarios:

  1. complex $x[n]$, real $h[n]$
  2. real $x[n]$, complex $h[n]$
  3. complex $x[n]$, complex $h[n]$

Do complex numbers exist in real world implementations?

  • $\begingroup$ what do you mean by x[n], h[n] and y[n]? $\endgroup$
    – AlexTP
    Commented Jun 24, 2020 at 17:15
  • $\begingroup$ Related: this answer. $\endgroup$
    – Matt L.
    Commented Jun 24, 2020 at 21:04
  • 3
    $\begingroup$ Just as much as "Real Numbers" exist! You could equally say neither exist in the real world as both are abstractions we use to describe the real world. We can use either equally-- it is just unfortunate that we named the real numbers "real"! $\endgroup$ Commented Jun 24, 2020 at 21:56
  • $\begingroup$ "[...] the DSP book always makes a big deal about conjugate symmetric sequences [...]" Could you share which book you mean and where they mention that? $\endgroup$
    – Matt L.
    Commented Jun 25, 2020 at 5:48
  • $\begingroup$ @DanBoschen This! (Just wrote a pretty much identical comment below one of the answers, before reading your comment.) If a signal is two-dimensional and you want to filter it, you can just call it 'complex' and go ahead with a 1-D complex filter. :-) $\endgroup$
    – Eike P.
    Commented Jun 25, 2020 at 9:33

5 Answers 5


Absolutely! Conjugates are mentioned in textbooks because conjugation has no effect on real signals, but it does on complex ones. This way, formulations are more general and apply to both real and complex valued signals. Complex numbers don't exist themselves, they are a mathematical construct.

Having said that, their mathematical properties can be replicated using real systems. You can separate the real and imaginary parts and treat them individually as real signals, but you must use additional hardware in order to do so. This manifests as needing more wires to handle both components, as well as additional memory to store complex values.

This is especially straight forward in the digital domain. However, I'm going to use continuous time signals to avoid introducing sample rates and is cleaner to present.

1. Complex $x(t)$, Real $h(t)$ - Moving Average Filter

Let's say we have a complex signal which is noisy and you want to smooth it out. One way to do this would be to employ a moving average filter on the signal. This requires that the filter be applied separately to both real and imaginary parts. In this example the input signal $x(t) $ is an arbitrary complex triangular signal with noise added. The moving average filter is given by

$$h(t) = \frac{1}{L}$$

So the output is

$$y(t) = x(t)*h(t) = \frac{1}{L}\int_{-\infty}^{\infty}x(t - \tau)d\tau$$

The plot below shows the filter smoothing out the complex input signal.

enter image description here

We have processed a complex signal with a real-valued system. This is a very specific example as there are many types of real-valued systems that operate on complex (quadrature) inputs.

2. Real $x(t)$, Complex $h(t)$ - Bandpass Filter Design Using Lowpass

Using the frequency shift property of the fourier transform, you can yield a bandpass filter design given a lowpass filter $h(t)_{LP}$. Using this property, we can move the lowpass filter to be centered around a desired frequency $f_0$ and is given by

$$h(t)_{BP} = h(t)_{LP} \space e^{j2{\pi}f_0t}$$

Doing this makes $h(t)_{BP}$ complex and can be used to filter a signal.

Let's say we have an input signal that contains frequency components at $f_0 = 200 kHz$ and $2f_0 = 400 kHz$ but we only want $f_0$. We can start with an appropriate lowpass filter $h(t)_{LP}$ and apply the frequency shift to yield the new filter and process the signal.

$$x(t) = cos(2{\pi}f_0t) + cos(2{\pi}(2f_0)t) $$ $$h(t) = h(t)_{LP} \space e^{j2{\pi}f_0t} $$

Below we can see the initial lowpass filter and the bandpass filter we design using frequency shifting. The new filter performs as intended and we are left with the sinusoid at $f_0$.

enter image description here enter image description here

We have processed a real signal with a complex-valued system.

3. Complex $x(t)$, Complex $h(t)$ - Radar LFM Pulse Compression

In pulse-Doppler radar systems, a technique called pulse compression is employed to achieve both good pulse widths (better energy on target) while maintaining fine range resolution. This is usually done via matched filters to achieve the highest SNR possible for a given target return.

A popular modulation scheme is linear-frequency modulation (LFM). The complex LFM signal transmitted with a chirp bandwidth $\beta$ and pulse width $\tau$ is

$$s(t) = e^{j{\pi}\frac{\beta}{\tau}t^2}$$

For the following example, we'll be using a bandwidth of 10 MHz and a pulse width of 10 $\mu$s. Below shows the real and imaginary parts of the LFM pulse.

enter image description here

The matched filter for this waveform is given by

$$h(t) = s(-t)^* = e^{-j{\pi}\frac{\beta}{\tau}t^2}$$

The return signal from a target arrives at a delay of $t_d$, so the signal we will process with the matched filter is

$$x(t) = s(t-t_d)$$

Convolution with a matched filter yields the cross-correlation output as

$$y(\tau) = x(t) * h(t) = \int_{-\infty}^{\infty}x(t)h(t+\tau)dt$$

Using the delay $\tau$, we can determine the range of the target since we know our pulse travels at the speed of light. Below we see the output of the matched filter for the nominal zero-delay case and for a target at 300 m.

enter image description here

We have processed a complex signal with a complex-valued system.

  • 10
    $\begingroup$ Complex numbers don't exist themselves, they are a mathematical construct. Well, aren't real numbers a mathematical construct, too? I don't see any inherent difference between the two. Both are mathematical abstractions of things we observe in the world. The fact that we are more used to talking about real numbers doesn't mean they are more 'real'. :-) $\endgroup$
    – Eike P.
    Commented Jun 25, 2020 at 9:25
  • $\begingroup$ More on point: in your second example, isn't what you call a low-pass filter also a band-pass filter, just at a lower frequency? Also, out of curiosity, is the output signal real again? If yes, how can one see this? $\endgroup$
    – Eike P.
    Commented Jun 25, 2020 at 9:29
  • 2
    $\begingroup$ @jhin output signal must be complex since the positive frequency would no longer be complex conjugate symmetric since the filter would now eliminate the negative half spectrum. Even though what he calls a low-pass filter is indeed passing a “band” of frequencies, this is meeting the definition of a low pass filter— it is passing all the low frequencies. A bandpass is one that blocks all low and all high frequencies and can be complex as shown or real if it had an identical band with opposite phase in the negative frequencies. $\endgroup$ Commented Jun 25, 2020 at 10:42
  • 1
    $\begingroup$ @jhin The OP seemed to be comfortable with having "real" numbers as the axiomatic base of understanding. That way, making the extension to complex numbers as a mathematical construct is an easier step and avoids getting metaphysical. I hope my statement didn't assert that real numbers are actually "real". $\endgroup$
    – Envidia
    Commented Jun 25, 2020 at 17:39
  • 1
    $\begingroup$ All numbers are a mathematical concept (and they all matter), so let's get metaphysical: Would numbers exist if the Universe didn't? I vote yes. $\endgroup$ Commented Jun 26, 2020 at 22:25

Software-defined radio (SDR) models real band-pass signals as complex baseband signals. All signals and filters operate on complex numbers.

  • $\begingroup$ But, if you sample a real signal $x_c(t)$, using the formula, $x_d[n] = x_c(nT)$ then the signal $x_d[n]$ is still real.... then if you consider the ideal LPF in continuous domain $h_c(t) = \frac{\Omega_c}{\pi}\text{sinc}(\Omega_c t)$, which converts in the discrete coefficients of: $h_d[n] = \frac{\omega_c}{\pi}\text{sinc}(\omega_c n)$ , and both $h(t)$ and $h[n]$ are real also... so where do complex numbers enter into the time domain anywhere? is there an app? Sure, if you convert to frequency domain you get complex numbers,,,but, my question was only about complex numbers in time domain. $\endgroup$
    – pipen
    Commented Jun 24, 2020 at 17:49
  • $\begingroup$ @pipen You can read about OFDM, where we start with complex symbols in Frequency domain and perform an IFFT operation to get complex valued time-domain symbols. This complex time-domain symbols is then transmitted over channel. And before transmission, we often perform some pulse shaping and filtering on these time-domain complex symbols. Also, a lot of digital processing happens in time-domain received complex symbols at OFDM receiver end too. $\endgroup$
    – DSP Rookie
    Commented Jun 24, 2020 at 21:18

All the other responses are excellent, especially Envidia's, so not to take away from those but I want to add this very intuitive view that bottom lines it quickly:

Consider the spectrums below that start with a real signal (positive and negative frequencies are complex conjugate symmetric). This is what we could measure with a single scope probe (one stream of real numbers), and in this case represents a passband signal.

If we multiply the passband signal with a complex LO (which requires two streams of real numbers to represent, such as commonly given as $I+jQ$ (In-phase for the real and Quadrature for the imaginary) or even one stream as magnitude and the other as phase). So the top signal as a real signal we can call $I_1$, and the Complex Local Oscillator (LO) we can denote as $I_2+jQ_2$, so the product in time would be implemented as $I_1 I_2 + jI_1 Q_2$, requiring two real multipliers and an adder to actually implement (yet the implementation if this represents "real-life" is just as much a representation of a complex number as $I + j Q$ is).

Notably the product results in the third spectrum where the right half of the original spectrum has been shifted to baseband, yet a high negative frequency remains. This is a complex signal (so I will call it $x(t)$ to align with the OP's question). Here is one example of a complex $x(t)$ with a real $h(t)$: specifically we wish to filter the resulting complex signal $x(t)$ to remove the high frequency component and be left with the complex baseband signal. Notably we do not want to change the spectrum which means our filter should be complex conjugate symmetric (a real filter) whose response will be equal on the positive and negative half spectrums.

If we instead wished to modify the positive and negative half spectrums (a common application of this is equalization where something else along the way caused such a distortion that we want to undo), then this would be one example application for a complex $x(t)$ with a complex $h(t)$ as demonstrated on the very last line.

Similary but not shown, we could have a real signal which would have a symmetric spectrum but we wish to introduce a assymmetry, and one example is predistortion, where instead of equalization compensating after a complex (assymetric) distortion has been introduced, we can distort the spectrum before it goes throught the distortion to pre-compensate-- this would be one example application of a real $x(t)$ with a complex $h(t)$.



You should explore how are these complex time-domain symbols transmitted over channel (atmosphere or wire) using modulated waveforms. Also, a good starting point would be to figure out that complex numbers are nothing but 2 orthogonal/perpendicular dimensions.

When we say $x = 3 + 3i$, we are basically saying we have a pair of numbers which lie in perpendicular directions with each other, meaning, projection of one on the other is nil. Think about how can we achieve this with real world finite length electromagnetic waveforms. Real world waveforms because we need to communicate here in this world and finite length because we need to communicate some information in finite amount of time. We cannot take forever to do that.

Do you think one full cycle of $\sin{2\pi t}$ and $\cos{2\pi t}$ are orthogonal to each other in some sense? The nice method of measuring orthogonality is taking inner products of the two functions, which will be: $$\int^{1}_{0}\sin(2 \pi t).\cos(2\pi t)dt = \int^{1}_{0}\frac{1}{2}\sin(4 \pi t)dt = 0$$ As you can see that the inner-product is 0, hence these 2 waveforms are orthogonal to each other. And more importantly, they exist in nature, we call them EM Waves.

Since we have established that these two finite length ($t=0$sec to $t=1$sec) are perpendicular to each other. We can now create a real world complex waveform in time-domain which will be equivalent to $x = 3 + 3i$. How? By making $\cos2\pi t, \ t \in [0,1]$ as real axis and $\sin2\pi t, \ t\in[0,1]$ as imaginary axis. So, our complex time-domain waveform becomes : $$x_c(t) = 3\cos(2\pi t) + 3\sin(2\pi t), \ t\in [0,1]$$ This waveform completely exists in nature and can be used to communicate a complex QAM symbol. I have simplified tremendously to convey the picture as simply as possible. I hope you get the idea.

Also, you can even go to higher dimensions and transmit real world existing waveforms in N-dimensions, provided you have N orthogonal waveforms corresponding to each dimension. A simple example would be 4 rectangular pulses of length $\frac{T}{4}$ centered at $\frac{T}{8}, \frac{3T}{8}, \frac{5T}{8} \ and \ \frac{7T}{8}$. So, one complete 4-dimensional symbol would take time $T$ to be represented on these orthogonal waveforms.


Here is a real-life application on adaptive filtering on real signals. And watchout! We used 1-tap complex filters, filters with only one modulus/phase coefficient, which we called "unary filters".

It was patented in Method of adaptive filtering of multiple seismic reflections, published in a limited form in Geophysics: Adaptive multiple subtraction with wavelet-based complex unary Wiener filters, and used in a company (CGG) for the task called demultiple, codename WAFEL. Here is the story.

Waves bounce back between subsurface layers. They are called multiples. Some geophysical models can predict them, but are imperfect. One should adapt them in amplitude and phase, adaptively along the depth. One thus performs adaptive filtering on the models, to subtract them to the data, and recover useful seismic reflections. Generally, this is performed in several passes, on overlapping windows of large and small sizes, to compensate big lags and small shifts. This requires to tune the length of real adaptive filters.

We work on a lifted implementation of this, in the complex domain. The first step was to transform the 1D signal into a 2D complex wavelet scalogram (CWT). Then, the adaptive filtering was performed in the wavelet domain, independently on each (complex) subband frame, as it was an individual complex signal. And on those sliding windows, the complex $a$ filter was exactly 1-tap. Each frame being adaptively filtered, they were all inverse transformed into a real matched-filtered signal. It was really fast: it sufficed to solve

$$a_\textrm{opt} = \arg \min_a \|d-am\|^2$$

where $d$ and $m$ where windows of complex coefficients in a wavelet subband. Indeed, the equivalent filter in the time domain would have been real and long. The evaluation with sound geophysical interpretation was complicated, but the speed of the process was an argument of choice:

seismic adaptive filtering with unary filters in the wavelet domain


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.