Let's say I have an I/Q modulation, ie. QPSK.

I can simulate an the effects of an AWGN channel by adding to my QPSK symbols the realizations of a complex normal.

$\mathcal{CN}(0,\frac{1}{\mathrm{SNR}}) = \mathcal{N}(0,\frac{1}{2 \mathrm{SNR}}) + j \quad \mathcal{N}(0,\frac{1}{2 \mathrm{SNR}})$

with $\mathrm{SNR} = 10^\frac{\mathrm{SNR_{db}}}{10}$

I should also be able to generate a baseband waveform with my QPSK symbols, ie using a 15kHz carrier, add gaussian noise to my baseband signal and then make a soft demodulation.

Using the same variance on both channel models, I observe a lower SNR on the soft decoded symbols than if I directly apply the noise realizations over the I/Q constellation.

Why are both different? Shouldn't I expect even better SNR when applying AWGN to the baseband waveform, as the noise isn't band limited?

What's the relation between the noise variance applied to the constellation and the noise variance applied to the baseband signal?


Defining the quadrature carriers as:

$\phi_1=\sqrt{\frac{2}{T}}\cos(2 \pi f_c t),\quad 0 \le t \le T$

$\phi_2=\sqrt{\frac{2}{T}}\sin(2 \pi f_c t),\quad 0 \le t \le T$

With $T$ the symbol interval and $f_c$ the carrier frequency.

The baseband waveform for an I/Q symbol $s_i=[s_{i1} s_{i2}]$ is:

$s(t)=s_{i1} \phi_1 + s_{i2} \phi_2$

The received waveform at the output of the AWGN channel is

$x(t)=s(t)+ w(t)$

With $w(t)$ a continuous-time wide-sense-stationary white noise process.

Assuming perfect coherence, the demodulation performed by a correlator is:

$\hat{s}_{i1}=\int_0^T x(t) \phi_1 dt = s_{i1}+\mathrm{w_{i1}}$

$\hat{s}_{i2}=\int_0^T x(t) \phi_2 dt = s_{i2}+\mathrm{w_{i2}}$

I'm looking for the relation between $w(t)$ and the I/Q noise $[\mathrm{w_{i1}}, \mathrm{w_{i2}}]$.

My waveform simulation will sample $x(t)$.

  • $\begingroup$ You should add more detail about "adding gaussian noise" in the second model. If I understand well, the first model is discrete time while the second one is continuous time, right? Maybe this answer could help dsp.stackexchange.com/a/8632/26081 $\endgroup$
    – AlexTP
    Commented May 17, 2019 at 9:08
  • $\begingroup$ Thank @AlexTP, your comment helped me to better define the problem. I've edited the question. $\endgroup$
    – xvan
    Commented May 17, 2019 at 19:54
  • $\begingroup$ I believe your edited question has been well adressed by the answer I have cited. More specifically, take a look at the comment where we came up with something like $\textrm{var}(\mathrm{w_{i1}}) = T \times \textrm{noise spectral density of } \omega(t)$ $\endgroup$
    – AlexTP
    Commented May 17, 2019 at 20:29

1 Answer 1


I think that the question by OP xvan has several misconceptions in it and these propagate into the answer that he has provided for his own question.

  • Define
    \begin{align}\phi_1(t) &= \sqrt{\frac 2T}\cos(2\pi f_ct),~ 0 \leq t \leq T,\\ \phi_2(t) &= -\sqrt{\frac 2T}\sin(2\pi f_ct),~ 0 \leq t \leq T, \end{align} where $f_c$ is the carrier frequency are two orthogonal unit energy RF signals and thus $$s(t) = s_{I}\phi_1(t)+s_{Q}\phi_1(t)\tag{1}$$ is a RF QPSK signal with rectangular baseband pulses (unless, of course, $s_I$ and $s_Q$ are themselves some suitably chosen pulse shapes (e.g. raised-cosine) whose dependence on $t$ has been suppressed by the OP. (Note that I have inverted $\phi_2(t)$ for reasons that will become apparent soon). $s(t)$ as defined in $(1)$ is a real-valued signal and one does not add complex Gaussian noise to it; one must add (real-valued continuous-time) white Gaussian noise to $s(t)$ to get $x(t)$. It is also helpful to assume that $f_cT$ is an integer, and if not, at least that $f_T \gg 1$.
  • The complex-valued baseband symbol $[s_1, s_2]$ (or $\mathbf s = s_1+js_2$ if one likes) takes on values $\left[\pm \sqrt{\mathcal E_b}, \pm \sqrt{\mathcal E_b}\right]$ where $\mathcal E_b$ is the signal energy per bit. These are the constellation points in the complex baseband equivalent of the RF signal $(1)$. Thus, \begin{align} s(t) &= \pm\sqrt{\frac{2\mathcal E_b}{T}}\cos(2\pi f_ct) \mp \sqrt{\frac{2\mathcal E_b}{T}}\cos(2\pi f_ct)\\ &= \Re\left(\mathbf s \sqrt{\frac 2T}\exp(j2\pi f_c t)\right) \tag{2} \end{align} showing that the QPSK signal is the real part of the result of (amplitude-)modulating the complex baseband signal $\mathbf s$ onto the complex carrier $\sqrt{\frac 2T}\exp(j2\pi f_c t)$. Note also that if I had stuck with the OP's definition of $\phi_2(t)$, $(2)$ would have been $$s(t) = \Re\left(\mathbf s \sqrt{\frac 2T}\exp(-j2\pi f_c t)\right)$$ which would have been a disaster since I don't believe in negative frequencies on Mondays, Wednesdays and Fridays.

  • To the signal in $(1)$, we add continuous-time white Gaussian noise $W(t)$ which is a hypothetical zero-mean process with autocorrelation function $R_W(t) = \frac{N_0}{2}\delta(t)$ where $\delta(t)$ is the Dirac delta, that is, the power spectral density (PSD) $S_W(f)$ has value $\frac{N_0}{2}$ for all $f, -\infty < f < \infty$. Hypothetical because the noise has infinite power. More practically, the result of passing $W(t)$ through a BIBO filter with transfer function $H(f)$ results in a zero-mean WSS Gaussian process with PSD $\frac{N_0}{2}|H(f)|^2$ while $\int_{0}^{T} \phi_i(t)W(t) \,\mathrm dt$ is a zero-mean Gaussian random variable with variance \begin{align} \sigma^2 &= E\left[\int_{0}^{T} \phi_i(t)W(t) \,\mathrm dt\int_{0}^{T} \phi_i(u)W(u) \,\mathrm du\right]\\ &= E\left[\int_{0}^{T} \int_{0}^{T}\phi_i(t)\phi_i(u)W(t) W(u) \,\mathrm dt \,\mathrm du\right]\\ &= \int_{0}^{T} \int_{0}^{T}\phi_i(t)\phi_i(u)E[W(t)W(u)] \,\mathrm dt \,\mathrm du\\ &= \int_{0}^{T} \int_{0}^{T}\phi_i(t)\phi_i(u)\frac{N_0}{2}\delta(t-u) \,\mathrm dt \,\mathrm du\\ &= \int_{0}^{T} \phi_i(u)\left[\int_{0}^{T}\phi_i(t)\frac{N_0}{2}\delta(t-u) \,\mathrm dt\right] \,\mathrm du\\ &= \frac{N_0}{2}\int_{0}^{T} \phi_i^2(u)\,\mathrm du\\ &= \frac{N_0}{2} \end{align} since $\phi_1(t)$ and $\phi_2(t)$ are unit-energy signals. A calculation similar to the one above shows that $\int_{0}^{T} \phi_1(t)W(t) \,\mathrm dt$ and $\int_{0}^{T} \phi_2(t)W(t) \,\mathrm dt$ are uncorrelated random variables and hence independent random variables since they are jointly Gaussian random variables. In short, for $i=1,2$, \begin{align} \hat{s}_i &= \int_{0}^{T} x(t)\phi_i(t) \,\mathrm dt\\ &= \int_{0}^{T} [s(t) + W(t)] \phi_i(t) \,\mathrm dt\\ &= s_i + W_i \end{align} where $s_i$ has value $\pm \sqrt{\mathcal E_b}$ while $W_1$ and $W_2$ are independent Gaussian random variables with identical variance $\frac{N_0}{2}$.

Now, the OP wants to sample $x(t)$ a large number of times (perhaps multiple samples per period of the carrier) and use the samples presumably to simulate the operations of the correlators in the receivers to make sure that the correlators are doing what the math says that they are doing. This is a whole different kettle of fish since one cannot sample white noise in any meaningful sense and what the variance of the samples turns out to be depends on the details of the actual sampling device and not any model of the device that one might devise in MATLAB. If the "sampler" effectively grabs a very very short segment of $x(t)$ and returns the average value of $x(t)$ over that segment, then model that, and not that the sampler puts out the instantaneous value of $x(t)$.

But, let's take a more realistic/charitable view and assume that the noise process is band-limited white noise whose PSD has value $\frac{N_0}{2}$ only for $|f| \in \left[f_c-\frac 1T, f_c+\frac 1T\right]$ which is the nominal null-to-null passband for the QPSK signal. The noise autocorrelation function $R_W(t)$ is thus $\frac{N_0}{2}\operatorname{sinc}\left(\frac tT\right)\cos(2\pi f_ct)$ from which the most important take-away is that samples from $W(t)$ that are spaced $T$ seconds apart are independent, but samples spaced less than $\frac{1}{2f_c}$ seconds apart are very definitely correlated. The samples are indeed Gaussian random variables and thus the Riemann sums that be used are indeed Gaussian random variables, but we can't just add up the variances of the variables in the sum; they are correlated random variables and so we must take the covariances into account as well. This messes up the calculations and getting it all straightened out is beyond what one should expect in an answer in a forum such as dsp.SE. What the OP has written in his own answer is not quite right, but is not correctable in a few words.


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.