SNR

3
Signal-to-noise ratio (SNR), E b /N 0 , E s /N 0 When we talk about performance of a communication system, we usually quote the above terminologies. But what do they mean? Particularly, how can you implement them in your simulation programs? In a 1-D modulation, such as BPSK, the channel can be modeled as n ax y = where all variables are real numbers. a is the channel amplitude gain (for AWGN channel, it is a constant usually set to one; for Rayleigh fading channel, it is a random variable with Rayleigh distribution and we usually normalize ( 1 2 = a E ); x is the modulated symbol (+1/-1 for BPSK); n is the additive white Gaussian noise (AWGN). n is a random variable of Gaussian distribution with mean zero and variance 2 σ , denoted as ) , 0 ( ~ 2 σ N n . The noise variance is related to the noise power spectrum density 0 N as 2 0 2 N = σ . Assume that the signal energy has been normalized such that 1 ) ( 2 = = x E E s which is the case for BPSK. s E denotes the energy per modulated symbol x . For a coded system with code rate c R and modulation rate M R m 2 log = (M is the modulation constellation size. BPSK: M=2; QPSK: M=4; 256-QAM: M=256 etc.), the energy per information bit, denoted by b E , is related to s E as b c m s E R R E = since one modulation symbol effectively carries c m R R information bits. Therefore, given an 0 N E b ratio, we can calculate the noise variance according to 2 2 0 0 2 1 2 σ σ c m c m s c m s b R R R R E N R R E N E = = = 1 0 2 2 - = N E R R b c m σ . Of course, if 0 N E b is given in dB, you need to convert it into linear scale before applying the above equation. In a 2-D modulation, such as M-PSK, M-QAM (M>2), similar relationship holds. The channel can still be modeled as n ax y =

Transcript of SNR

Page 1: SNR

Signal-to-noise ratio (SNR), Eb/N0, Es/N0 When we talk about performance of a communication system, we usually quote the above terminologies. But what do they mean? Particularly, how can you implement them in your simulation programs? In a 1-D modulation, such as BPSK, the channel can be modeled as naxy += where all variables are real numbers. a is the channel amplitude gain (for AWGN channel, it is a constant usually set to one; for Rayleigh fading channel, it is a random variable with Rayleigh distribution and we usually normalize ( ) 12 =aE ); x is the modulated symbol (+1/-1 for BPSK); n is the additive white Gaussian noise (AWGN). n is a random variable of Gaussian distribution with mean zero and variance 2σ , denoted as ),0(~ 2σNn .

The noise variance is related to the noise power spectrum density 0N as

2

02 N=σ .

Assume that the signal energy has been normalized such that

1)(2 == xEEs

which is the case for BPSK.

sE denotes the energy per modulated symbol x . For a coded system with code rate

cR and modulation rate MRm 2log= (M is the modulation constellation size. BPSK:

M=2; QPSK: M=4; 256-QAM: M=256 etc.), the energy per information bit, denoted by bE , is related to sE as

bcms ERRE =

since one modulation symbol effectively carries cm RR information bits.

Therefore, given an 0N

Eb ratio, we can calculate the noise variance according to

22

00 2

1

2 σσ cmcm

s

cm

sb

RRRR

E

NRR

E

N

E===

1

0

2 2−

=

N

ERR b

cmσ .

Of course, if 0N

Eb is given in dB, you need to convert it into linear scale before

applying the above equation. In a 2-D modulation, such as M-PSK, M-QAM (M>2), similar relationship holds. The channel can still be modeled as naxy +=

Page 2: SNR

a is still a real number denoting the channel amplitude gain. However, other variables, x, y and n, are all complex numbers. Particularly, the noise QI jnnn +=

has its real and imaginary parts, In and Qn , respectively. In and Qn are independent

Guassian random variables with mean zero and the same variance 2σ ),0(~ 2σNnI and ),0(~ 2σNnQ .

All the above equations still hold for 2-D modulation. For quasistatic Rayleigh fading channels, a is a constant within one block/frame, but changes independently from one block to another. However, the noise n always changes independently for each modulated symbol.

Plot FER/BER versus p or Eb/N0 curves When you obtain the simulated data for FER/BER, you usually need to plot them in a figure. Since FER/BER generally varies in a large range, we should plot them in a logarithm scale instead of a linear scale. For FER/BER versus Eb/N0 curves, the horizontal axis Eb/N0 should be plotted in linear scale because it is usually expressed in the unit of dB. The vertical axis FER/BER should be plotted in logarithm scale. In Matlab, this can be done by the following function: semilogy(FER,Eb_N0_dB,…); For FER/BER versus p (BSC channel) curves, you might find it appropriate to plot both axes in logarithm scale, which can be achieved by the following: loglog(FER,p,…);

How many blocks/frames to simulate in order to get a smooth curve? We are using simulation as a method to estimate the FER/BER according to

frames totalofnumber

frameserror ofnumber FER ≈

and bits totalofnumber

bitserror ofnumber BER ≈ .

In order to get an accurate estimate, the number of error frames or the number of error bits needs to be large enough. As a rule of thumb, this number should be no smaller than 100. Otherwise, the estimates you obtain will be inaccurate and the curves you plot will show big ripples. This means that for EACH Eb/N0 or p values you have to run the simulation until 100 or more frame/bit errors are encountered. However, for a complex coding system, due to the complexity of the encoder/decoder algorithms, at high SNR range, 100 errors might take a very long time (tens or hundreds of hours) to complete. In that case, in this project you can reduce the number to 40 for time saving purpose.

Page 3: SNR

How to select the p or Eb/N0 range to simulate? The rule to choose the proper range of p or Eb/N0 is to ensure that the FER/BER is acceptable. Usually, for a coded system, the BER range of interest is 110− to 610− . However, to simulate a codec system down to BER=610− might take too long a time. Therefore, in this project, you can choose BER range from 110− to 410− or 510− . Of course, if you have wrote an efficient program, you can option to simulate lower BERs. With the chosen range, you need to take samples in this range to simulate. For instance, if an Eb/N0 range of 0 to 5 dB is chosen, you might select 0 dB, 1 dB, 2 dB, 3 dB, 4 dB, 5 dB as the simulation points. However, this even selection might not be appropriate. For example, in the following curve, it is ok to choose 0,1,2,3,4,5dB, but after 5dB, the curve drops abruptly, you need to choose smaller steps to capture the transition region between 5 to 7dB. We can do the simulation in two steps. First choose an even sparse SNR samples to simulate, and hence identify the transition regions. Then select dense samples in the transition regions to do a fine simulation.

0 1 2 3 4 5 6 7 (dB)

BER

Eb/N0