3

I try to use the AWGN Channel model of MATLAB to build my simulation model, but the explanation of the relationship between Es/N0 and SNR in the official manual of MATLAB makes me confused.

It says that :

\begin{align} E_s/N_0 \ \text{(dB)}&= 10\log_{10}(T_{sym}/T_{samp})+SNR\ \text{(dB)}\quad\text{for complex input signals}\\ E_s/N_0 \ \text{(dB)}&= 10\log_{10}(0.5T_{sym}/T_{samp})+SNR\ \text{(dB)}\quad\text{for real input signals} \end{align}

I wonder why there is a $3\ \rm dB$ difference whether the signal is complex or real.

Gilles
  • 3,386
  • 3
  • 21
  • 28
Wtswkz
  • 151
  • 1
  • 6
  • You sure those aren't backwards? I would think you'd see the 0.5 factor in the complex case since you don't want to double the noise b/c of the real and imaginary components. – BigBrownBear00 Aug 14 '20 at 10:38
  • I not sure if I get your point. Do you mean that the official manual of MATLAB is wrong? To be honest, I think the 0.5 factor should appear in the complex case, too. Because for a specific noise power (variance), the bandwidth of a baseband complex signal is B, and the bandwidth of a passband real signal is 2B, just as showed in the MATLAB manual, thus the noise spectral density in complex case is twice in the real case. – Wtswkz Aug 14 '20 at 13:05

2 Answers2

1

Ignoring quantisation noise, if you anti alias filter a signal at 2x the nyquist rate and then sample at 2x the nyquist rate then you capture twice the bandwidth of thermal noise. The discrete signal power remains the same because the PSD of the signal doubles but it is averaged over 2x as many samples, half of which are equal to 0. The discrete noise PSD remains the same but is now present over 2x as many samples, therefore the noise power is double. The SNR therefore halves.

If you reconstruct the signal above after filtering and oversampling, as you increase the oversampling factor (with anti aliasing filter to half this sampling frequency) the signal power doesn't change, the noise power doesn't change, the PSDs are $T_s = 2\pi/f_s$ times greater than the discrete PSDs in the event that a brick wall filter is used. As continuous power is the integral of the PSD of the reconstructed signal, the power of noise is double when the sampling rate doubles as it has double the bandwidth, but the power of the signal remains the same. Continuous SNR also halves when the sampling rate doubles. The $2\pi$ factor introduced by multiplying by $T_s$ is normalised by $1/2\pi$ in the continuous power formula.

$E_s/N_0$ is essentially the SNR of the symbol, within the symbol bandwidth, so the SNR if the signal were filtered to the symbol bandwidth before sampling or oversampling. SNR is 2x smaller than the $E_s/N_0$ when you oversample by a factor of 2. This is because only noise within the symbol bandwidth is considered.

Discrete $E_s$ is the sum of the PSD, and continuous $E_s$ is discrete $E_s$ multiplied by $T_s = 2\pi/f_s$ if using a brick wall filter. The sum of the signal PSD is always the same regardless of sampling rate and the sum of the noise PSD is the same because only the noise in the symbol samples are considered.

$N_0$ is the noise PSD when the time signal is complex because there's a $N_0/2$ noise added in the I time channel and $N_0/2$ added in the Q time channel. When this is demodulated to baseband, if the negative half of the frequency spectrum is not the complex conjugate of the positive half and contains useful data, then the bandwidth is considered to be B and not 2B because there's is no mirror of B, and the noise PSD is $N_0$, but if it is the complex conjugate then the other half is considered to be a mirror of B, the useful bandwidth, and therefore the bandwidth is denoted 2B with $N_0/2$ noise (which almost never happens for a complex signal, because usually complex exponentials are used meaning there is no image). The 'complex baseband' matlab depiction with $N_0$ PSD has no mirror, though visually misleading, and the bandwidth is $B$ and not $2B$. Furthermore, if only a real channel is used, when it is demodulated (with just cos) you end up with $N_0/2$ and a $B$ bandwidth, or $N_0/4$ with a $2B$ bandwidth.

I postulate 2 reasons for this difference in the real and complex matlab definition:

  1. For a real signal $E_s$ is half that of a complex signal, but $N_0$ is still referring to $N_0$ and not the actual noise $N_0/2$

  2. It may be that $N_0$ is referring to $N_0/2$ but it is only taking into consideration the signal in the useful symbol bandwidth $E_s/4$ and not the full symbol bandwidth, but the noise in the full symbol bandwidth $N_0/4 + N_0/4 = N_0/2$ and comparing those.

Lewis Kelsey
  • 259
  • 2
  • 12
  • Whoa, thanks for you answer. I think your answer is almost correct. But there are some points I cannot agree with.
    1.
    – Wtswkz Sep 11 '21 at 15:47
  • You say that the useful energy is half is because of the useful bandwidth is half. I guess you want to express that the useful energy in a real time channel is half that of a complex channel. But I think no matter for a real signal or for a complex signal, the whole signal power is useful power, except the noise power in it. That's to say, for a real signal, the signal power equals to the real part of the signal which is useful energy as you called it, because there is no imagine part.
  • – Wtswkz Sep 11 '21 at 16:05
  • For a complex signal, it's true that the power of the real part is half of the whole signal power. But the power of the imagine part is part of the useful energy, too. – Wtswkz Sep 11 '21 at 16:06
  • I don't think the SNR would halve if the sampling rate is doubled. For a specific signal, the signal power, noise power and signal bandwidth are determined, they can't be changed by increasing the sampling rate. I think the sampling bandwidth is not equivalent to the signal bandwidth. When the sampling bandwidth is doubled, for this digital system, N0 is halved, which makes the noise power is unchanged. Thus, the SNR is doubled in my opinion when the sampling rate is doubled.
  • – Wtswkz Sep 11 '21 at 16:17
  • You can find a evidence by doing a sampling noise experiment. Suppose you generate a noise sequence of zero mean, and sigma standard variance. Then you can get two different sub-sequences by selecting one data in different interval. Then, calculate the variance of the two sub-sequences, you will find they both are the square of sigma, which is the power of the noise. – Wtswkz Sep 11 '21 at 16:22
  • For this question that I asked one year ago, It's really bothered me for some time. But one day it suddenly comes to me the answer is quiet simple, I just been mislead by the spectrum explanation below in the MATLAB AWGN manual. I have put my answer to the MATLAB community. I'll give the link below as my answer to this question. Welcome to discuss with me. Thanks! – Wtswkz Sep 11 '21 at 16:29
  • @Wtswzk So useful bandwidth is half, useful power is half, so useful energy is the same.. my mistake. In which case this has captured my attention then. as for 2) The intrinsic SNR of the symbol itself within the baud rate bandwidth doesnt half -- this is what Es/N0s for, but the SNR within the sampling rate bandwidth does – Lewis Kelsey Sep 13 '21 at 16:39
  • https://www-users.york.ac.uk/~dajp1/Introductions/GSW_Equivalent_Baseband.pdf 'The equivalent baseband symbol energy is twice the real passband symbol energy.' this is the same as saying the complex symbol energy is twice the real passband symbol energy. Well that is because all the energy is at the baseband symbol as opposed to split between the negative and positive passbands (where there are 2 symbols, 1 in each) – Lewis Kelsey Sep 13 '21 at 17:40
  • @Wtswzk https://uk.mathworks.com/help/comm/ug/awgn-channel.html it seems to me that theyre still making the comparison against N0 instead of N0/2 i.e. theyre referring to the fixed value N0, and not using N0 to represent N0/2 i.e. the actual noise level in the real passband. In which case SNR at passband is the same as the SNR at baseband, but Es/N0 in the passband is 1/2 that of the complex passband at baseband – Lewis Kelsey Sep 13 '21 at 18:26
  • I've changed my answer. – Lewis Kelsey Sep 14 '21 at 01:10
  • I think I still think differently with you. Even thought it seems that the noise level is N0/2 as showed in the double side spectrum of a passband signal, but the actual noise level should be N0, and the actual signal power is S. For passband signals, if looking at the positive side band of the double-side spectrum, the SNR equals to (S/2)/(N0/2B) = S/(N0B), same result as when looking at the one-side spectrum. I think the definition of SNR for complex signals or real signals, or baseband signals/passband signals should be same. – Wtswkz Sep 14 '21 at 03:21
  • What confused me in the first time is because that I think the SNR in the formula of real signals is the SNR of real signals only, but it's not, I think MATLAB regard the SNR is SNR of a complex signal too. MATLAB AWGN take all the input signals as complex signals by default, and there is no place to tell AWGN the input signal is actually a real signal, So, there is no way to tell AWGN that the SNR I set is SNR of a real signal. – Wtswkz Sep 14 '21 at 03:30
  • And I think another misleading thing is the spectrums posted in https://uk.mathworks.com/help/comm/ug/awgn-channel.html, which can easily makes a beginner think that complex signals is a kind of baseband lowpass signal, and real signals is a kind of passband signal. – Wtswkz Sep 14 '21 at 03:31
  • @Wtswkz this is my final conclusion – Lewis Kelsey Oct 16 '21 at 15:18
  • This was my understanding: https://dsp.stackexchange.com/questions/54251/psd-of-complex-white-gaussian-noise/54253#54253 (am I wrong??). I think it conflicts with how you view real and complex baseband equivalent signals and where to use No and No/2. (I could be wrong and would like to resolve if so!) – Dan Boschen Jan 10 '22 at 16:54