- 26th March 2010, 19:05 #1

- Join Date
- Apr 2007
- Posts
- 159
- Helped
- 6 / 6
- Points
- 2,193
- Level
- 10

## AWGN Channel

Hello,

In AWGN channel, how is white noise generated using MATLAB? I mean, I have a code at hand, but I did not understand it. For example, it says somewhere in the code:

y = s + 10^(-Eb_N0_dB(ii)/20)*n;

where s is the transmitted sequence, Eb_N0_dB is the SNR, and n is the additive white noise. Can anyone explain to me the noise term, please? Why do we use the expression 10^(-Eb_N0_dB(ii)/20)*n?

Regards

- 27th March 2010, 03:33 #2

- Join Date
- Sep 2006
- Posts
- 424
- Helped
- 94 / 94
- Points
- 4,877
- Level
- 16

## AWGN Channel

The above code attempts to add noise (term - '10^(-Eb_N0_dB(ii)/20)*n') to a signal (term - 's').

the term y contains signal+noise.

The above code generates a noise term with required signal to noise ratio. Eb_N0_dB(ii) is a function that generates the scaling factor to generate required signal to noise ratio.

here ii is the input argument specifying the SNR in dB

For more details von how to generate noise for required SNR

http://gaussianwaves.blogspot.com/20...form-with.html

Regards

Mathuranathan

1 members found this post helpful.

- 27th March 2010, 03:33

- 27th March 2010, 10:41 #3

- Join Date
- Apr 2007
- Posts
- 159
- Helped
- 6 / 6
- Points
- 2,193
- Level
- 10

## Re: AWGN Channel

Originally Posted by**mathuranathan**

Actually, I still do not get why we use the expression 10^(-Eb_N0_dB(ii)/20)*n for the noise. Anyway, from the link you gave me, I found a built-in function in MATLAB which is AWGN() function that adds noise depending on the SNR. I tried it as in the following code:

Code:function BER clear; N=10^6; SNRdB=[-3:10]; SNR=10.^(SNRdB/10); b=rand(1,N)>0.5; s=2*b-1; for ii=1:length(SNRdB) y=awgn(s,SNRdB(ii),'measured'); bHat=real(y)>0; Diff=xor(bHat,b); nErr(ii)=length(find(Diff)); end simBER=nErr/N; theoryBER=0.5*erfc(sqrt(SNR)); semilogy(SNRdB,simBER,'k*',SNRdB,theoryBER,'bx'); legend('Simualtion','Theory');

Thanks in advance

- 8th April 2010, 04:17 #4

- Join Date
- Sep 2006
- Posts
- 424
- Helped
- 94 / 94
- Points
- 4,877
- Level
- 16

## AWGN Channel

Hi

There is nothing wrong with the code.

The simulated value may be different from the theoretical value. The theoretical result uses a well defined equation whereas the simulated result is obtained from a set of generated inputs. Always the simulated result will show deviation from the theoretical result.

Regards

Mathuranathan

- 8th April 2010, 09:41 #5

- Join Date
- Apr 2007
- Posts
- 159
- Helped
- 6 / 6
- Points
- 2,193
- Level
- 10

## Re: AWGN Channel

Originally Posted by**mathuranathan**

Regards

- 8th April 2010, 10:04 #6

- Join Date
- Sep 2006
- Posts
- 424
- Helped
- 94 / 94
- Points
- 4,877
- Level
- 16

## AWGN Channel

Can u plot the graph in both cases to understand the situation ?

Regards

Mathuranathan

- 8th April 2010, 10:25 #7

- Join Date
- Apr 2007
- Posts
- 159
- Helped
- 6 / 6
- Points
- 2,193
- Level
- 10

## Re: AWGN Channel

Originally Posted by**mathuranathan**

1 members found this post helpful.

- 9th April 2010, 09:04 #8

- Join Date
- Sep 2006
- Posts
- 424
- Helped
- 94 / 94
- Points
- 4,877
- Level
- 16

## Re: AWGN Channel

Hi saeddawoud

The term 10^(-Eb_N0_dB(ii)/20)*n is derived as follows

For AWGN channel with noise power spectral density N0 the standard deviation of noise is given by

σ = √(N0/2) --------> (1)

For BPSK the symbol energies are assumed to be normalized to 1 (since 0 represented by -1 and 1 represented by +1 )

Given Eb_N0_dB has to be converted to linear scale first

Eb/N0 = 10 ^(Eb_N0_dB/10); --->(2)

Now we need to find the sigma of noise according to the desired Eb/No ratio

if Eb=1 in (2)

then

1/N0 = 10 ^(Eb_N0_dB/10)

=> N0 = 1/(10 ^(Eb_N0_dB/10) ) ---> (3)

(3) in (1)

σ = √(1/(10 ^(Eb_N0_dB/10) )/2)

or

σ =1/√2 * 1/(10 ^(Eb_N0_dB/20)

this is how the term is derived

The problem here is not due to equation , it is due the way the awgn function is used.

The awgn measures the SNR (signal power/noise power) (note: everything in terms of power) but Eb/N0 is in terms of energy

For proper result if you want to use awgn function , translate the Eb/N0 to required SNR (in power) and then use the function

Regards

Mathuranathan

1 members found this post helpful.

- 9th April 2010, 09:04

- 9th April 2010, 13:56 #9

- Join Date
- Apr 2007
- Posts
- 159
- Helped
- 6 / 6
- Points
- 2,193
- Level
- 10

## Re: AWGN Channel

Originally Posted by**mathuranathan**

Thanks in advance

- 9th April 2010, 13:56

- 10th April 2010, 04:38 #10

- Join Date
- Sep 2006
- Posts
- 424
- Helped
- 94 / 94
- Points
- 4,877
- Level
- 16

## AWGN Channel

when u use randn function in matlab to generate noise (n) , it generates AWGN noise with unit variance and zero mean.

For various Eb/No ratio, Eb is fixed (because we use the same signal to transmit and want to see the effect of Eb/N0 on its BER) so only choice is to change the noise term. Since the sigma of generated noise is 1 (unit variance) you can change it by multiplying it with 10^(-Eb_N0_dB(ii)/20)*n which is the sigma of noise for the given Eb/N0

Regards

Mathuranathan

http://gaussianwaves.blogspot.com

2 members found this post helpful.

- 10th April 2010, 15:08 #11

- Join Date
- Apr 2007
- Posts
- 159
- Helped
- 6 / 6
- Points
- 2,193
- Level
- 10

## Re: AWGN Channel

I have noticed that, when I set the range of errors from 10^-7 up to 0.5, the simulation curve stopped on 10^-6. Why is that?

- 12th April 2010, 15:54 #12

- Join Date
- Apr 2007
- Posts
- 159
- Helped
- 6 / 6
- Points
- 2,193
- Level
- 10

## Re: AWGN Channel - generating noise for required SNR

I think it is clear now the concept of adding AWGN to the transmitted signal over AWGN channel. Let me summarize:

For a specific SNR we need to add a noise term to the transmitted symbol such that the SNR is as specified, i.e.: if the SNR(dB)=15, we need to add a noise term such that the SNR(dB)=15 dB. To do this, we assume that the signal energy is unity (Why?), and then:

Code:y=s+10.^(-15/20)*n

. But, is the assumption that the energy of the signal = 1 is valid?

Now, let us turn to the multipath fading channles. In this case the receiced signal will be:

Code:y=h*s+10.^(-15/20)*n

Shall we assume that the numerator is unity? I.e.: |h|^2*Es =1? Why?

Thanks in advanceLast edited by BlackMamba; 27th August 2010 at 13:19.

- 15th April 2010, 03:25 #13

- Join Date
- Sep 2006
- Posts
- 424
- Helped
- 94 / 94
- Points
- 4,877
- Level
- 16

## AWGN Channel - generating noise for required SNR

The assumption is valid only for BPSK signals or other signals, IF the energy is normalized to 1.

For the multipath fading channels mentioned above, the energy must be normalized to apply the assumption. Otherwise absolute value has to be employed

Regards

Mathuranathan

- 20th April 2010, 15:00 #14

- Join Date
- Apr 2007
- Posts
- 159
- Helped
- 6 / 6
- Points
- 2,193
- Level
- 10

## Re: AWGN Channel

Originally Posted by**mathuranathan**

Thanks in advance

- 21st April 2010, 03:04 #15

- Join Date
- Sep 2006
- Posts
- 424
- Helped
- 94 / 94
- Points
- 4,877
- Level
- 16

## AWGN Channel - generating noise for required SNR

S/N = Eb/N0 * R/B

where R is the data rate and B is the bandwidth of the channel.

here S/N is in terms of power (signal power / noise power).

- 23rd April 2010, 16:07 #16

- Join Date
- Apr 2007
- Posts
- 159
- Helped
- 6 / 6
- Points
- 2,193
- Level
- 10

## Re: AWGN Channel - generating noise for required SNR

Originally Posted by**mathuranathan**

Regards

- 10th December 2011, 04:28 #17

- Join Date
- Dec 2011
- Posts
- 6
- Helped
- 0 / 0
- Points
- 203
- Level
- 2

## Re: AWGN Channel - generating noise for required SNR

Is y=s-(20 log(SNR)*n) the same with y = s + 10^(-Eb_N0_dB(ii)/20)*n?

please reply me as soon as possible.

---------- Post added at 05:28 ---------- Previous post was at 05:21 ----------

Is y=s-(20 log(SNR)*n) the same with y = s + 10^(-Eb_N0_dB(ii)/20)*n?

please reply me as soon as possible. And then, i would like to know the value of n?

- 10th December 2011, 17:54 #18

- Join Date
- Jan 2011
- Posts
- 279
- Helped
- 28 / 28
- Points
- 1,874
- Level
- 10

## Re: AWGN Channel - generating noise for required SNR

Is SNR here in dB or linear?

- 10th December 2011, 18:19 #19

- Join Date
- Dec 2011
- Posts
- 6
- Helped
- 0 / 0
- Points
- 203
- Level
- 2

- 10th December 2011, 21:41 #20

- Join Date
- Jan 2011
- Posts
- 279
- Helped
- 28 / 28
- Points
- 1,874
- Level
- 10

## Re: AWGN Channel - generating noise for required SNR

1 members found this post helpful.