1

In a paper about radar, the transmitted signal expressed in low-pass equivalent form is given by $\sqrt{E}s(t)$, where $E$ is the transmitted energy, $s(t)$ satisfies $$ \int_T | s(t) |^2 dt = 1, $$ and $T$ is the pulse duration.

Here $$ s(t) = \sqrt{\frac{1}{T}} \exp(j2\pi f_c t) $$ and the received signal is $$ r(t) = \alpha s(t) + n(t) $$ and the SNR in this paper is $$ \frac{E |\alpha|^2}{\sigma^2} $$ where $\alpha$ is the reflectivity, and $\sigma^2$ is the variance of the zero-mean Gaussian noise process $n(t)$.

So if I want to generate $r(t)$ in Matlab with SNR = 10, I sample $s(t)$ with a sample period $T_S$ so I get $$ s(nT_s) = \sqrt{\frac{1}{T}} \exp(j2\pi f_c nT_S) $$

My question is: how do I calculate the noise variance, $\sigma^2$ from the above so that I can calculate: $$ r(nT_S) = \alpha s(nT_s) + \sigma {\tt randn(size(}s{\tt ))} $$

??

Peter K.
  • 25,714
  • 9
  • 46
  • 91
Tj L
  • 41
  • 1
  • 2

1 Answers1

3

Since the signal $r(t)$ is expressed as the low-pass equivalent of a bandpass signal, in general it will be complex. That means that the noise is also complex.

White Gaussian noise has a power spectral density commonly denoted by $N_0/2$. This means that if you filter the noise with an ideal filter of bandwidth $B$, the noise at the filter's output is $\sigma^2=BN_0$.

Note that this is the power "per dimension". That is, the in-phase and the quadrature components of the low-pass signal $r(t)$ each suffer from noise of power $\sigma^2$.

You define the SNR as $E|\alpha|/\sigma^2$ and you need it to be equal to 10. One way to do this is to configure your simulation so that $E|\alpha|=1$, and then choose $\sigma=\sqrt{0.1}$. If you later need a different SNR, you can just change one value ($\sigma$) in your simulation.

You can generate the complex noise as follows:

N = length(s);
noise = sqrt(0.1)*(randn(1,N)+1i*randn(1,N));
r = alpha*s + noise;

Note that in this setup, the total noise power is $2\sigma^2$. The in-phase noise and the quadrature noise each have power $\sigma^2$.

MBaz
  • 15,314
  • 9
  • 30
  • 44
  • Thanks!But how to define the E?is E equals to sum(abs(s(nTs)).^2)? – Tj L Nov 20 '15 at 01:47
  • In Matlab, to normalize an arbitrary vector s to have energy E, first find its energy: e=sum(abs(s).^2)*dt, where dt is the sampling period. Then, divide s by sqrt(e) to make its energy equal to 1. Finally, multiply it by sqrt(E) to make its energy equal to E. All this is based on Parseval's theorem. – MBaz Nov 20 '15 at 02:07