- 29th January 2010, 16:44 #1

- Join Date
- Feb 2009
- Posts
- 2
- Helped
- 0 / 0
- Points
- 695
- Level
- 5

## SER(or BER) for 16 QAM in Rayleigh Channel Formula Required

Hi everyone !!!

I hope everybody is doing fine and great. I need the formula for SER(or BER) for 16 QAM in Rayleigh Channel. I will appreciate if someone can help!!!!

thanks in advance,

mesange

- 29th January 2010, 16:44

- 3rd February 2010, 16:16 #2

- Join Date
- Nov 2004
- Posts
- 273
- Helped
- 17 / 17
- Points
- 2,683
- Level
- 12

## Re: SER(or BER) for 16 QAM in Rayleigh Channel Formula Requi

Have a look on MATLAB BER Toolbox.

- 7th November 2010, 16:41 #3

- Join Date
- Nov 2010
- Location
- G
- Posts
- 3
- Helped
- 0 / 0
- Points
- 387
- Level
- 4

## Re: SER(or BER) for 16 QAM in Rayleigh Channel Formula Required

Thank you, but which is the type for SER M-QAM Rayleigh ? I think that Bertool only shows BER.

- 2nd December 2010, 15:31 #4

- Join Date
- Dec 2010
- Location
- Hungary Central Europe
- Posts
- 2
- Helped
- 2 / 2
- Points
- 379
- Level
- 4

## Re: SER(or BER) for 16 QAM in Rayleigh Channel Formula Required

This can be the answer for your question.

This is a matlab code.

create a QAMSER.m file

copy this into the file

open and run it in matlab.

You can change m (the modulation number), so you can calculate SER for any QAM channel with rayleigh fading.

(by the way, it gives back the same result as Matlab's Bertool)

maxdB=40;

avaregeSNRperbit=0:1:maxdB;

m=16;%modulation number

k=log(m)/log(2);%number of bits in one simbol

%Here I converted dB values of avaregeSNRperbit to real numbers and

%multiplied it with the nzmber of bits in one simbol. So i get the avarege

%SNR per simbol rate in real numbers

gs=10.^(avaregeSNRperbit./10)*k;%avarege SNR per simbol

c1=1.5*gs/(m-1);

n1=sqrt(c1./(c1+1));

%formula. Calculates the SER values for a given avarege SNR per simbol

%value

Pes=2.*(sqrt(m)-1)./sqrt(m)*(1-n1)-((sqrt(m)-1)./sqrt(m)).*((sqrt(m)-1)./sqrt(m))*(1-4.*n1./3.14159265358979323846.*atan(1./n1));

semilogy(gb,Pes,'r')

xlabel('Eb/No');

ylabel('SER');

title('16QAM with Rayleigh fading channel');

2 members found this post helpful.

- 2nd December 2010, 15:31

- 2nd December 2010, 19:20 #5

- Join Date
- Nov 2010
- Location
- G
- Posts
- 3
- Helped
- 0 / 0
- Points
- 387
- Level
- 4

## Re: SER(or BER) for 16 QAM in Rayleigh Channel Formula Required

Thank you very much for you reply, really appreciated. If i had to press any thank button forgive me but i cannot find it. Thanks.

- 2nd December 2010, 23:38 #6

- Join Date
- Nov 2010
- Location
- G
- Posts
- 3
- Helped
- 0 / 0
- Points
- 387
- Level
- 4

## Re: SER(or BER) for 16 QAM in Rayleigh Channel Formula Required

greyfriend i have some questions.

1. could you please explain why you are doing this step in your code?

c1=1.5*gs/(m-1);

n1=sqrt(c1./(c1+1));

2. In this step do you assume that is used Gray coding ? Maybe iam wrong... gs=10.^(avaregeSNRperbit./10)*k;%avarege SNR per simbol

3. Also, could you tell me where i could find these formullas for BER SER ? Iam looking how i could simulate in matlab Ricean fading channel and plot the SER.

Thanks in advance.

- 11th December 2010, 13:03 #7

- Join Date
- Dec 2010
- Location
- Hungary Central Europe
- Posts
- 2
- Helped
- 2 / 2
- Points
- 379
- Level
- 4

## Re: SER(or BER) for 16 QAM in Rayleigh Channel Formula Required

Well,

(1)

These are not steps, these are auxiliary variables for the formula.

I am doing it so, because it was writen in the book so. Of coures you can do it in one step.

Maybe the book uses this auxiliary variable because it would be too long formula to write it in one or two line.

2)

Well, I can only assume, the formula calculates SER with Gray coding. I used Gray coding in my simulation and the two curve was pretty the same.

2,5) gs this stands for average SNR refering to symbol, average Esimbol/No,

the formula needs this Average SNR refering to simbol input, but I wanted to plot the results in the average SNR refering to bit scale

so first I generated average SNR refering to bit values from 0 to 40 in decibels.

Then I had to convert it to Average SNR refering to simbol

Average SNR refering to simbol=k*average SNR refering to bit, where k is the number of the bits carried by a simbol. the formula for k is in the code above.

but this formula is only aplicable if you calculate it with real numbers, not decibels. so, i had to convert decibel values to real numbers first.

x[real]=10^(x[dB]/10) if you are refering to powers, and here we are refering to power

in the row in my code i solved 2 thing in one row i changed from decibels to real numbers, and multiplied with k, to get SNR(simbol) from SNR(bit)

this step has nothing to do with Gray coding.

this code only calculates the formula found in a book for some SNR values.

As I mentioned above, I do a simulation myself too. I ran my simulation counting bit error, and counting simbol error. If I am counting simbol error, I get much the same digram, which i get from this program. If I measure bit errors, I get the same results as Matlab Bertool. (My teacher looked a little bit deeper into matlab, and turnd out matlab bertool uses this formula too :D )

3)

the source of the formula Giovannie E. Corazza, “Digital Satellite Communications”, Springer 2007 ISBN:0-387-25634-2

---------- Post added at 05:03 ---------- Previous post was at 04:58 ----------

for 2,5) The formula needs the average SNR refering to simbol input in real numbers,so this value is intentional not converted back to decibels.

- 12th December 2010, 19:23 #8

- Join Date
- Dec 2006
- Posts
- 25
- Helped
- 1 / 1
- Points
- 1,367
- Level
- 8

## Re: SER(or BER) for 16 QAM in Rayleigh Channel Formula Required

The symbol

error probability in each of two arms is

2(M-1)/M Q(sqrt[(2E_b/N_0)(3 log_2 M/(M^2-1))]

where M=sqrt(16)=4 here. If you were after bit error probability in

each arm Gray coding of bits onto the 4 levels would leave you with

about 1 bit error per symbol error, so to get P_b you could

multiply the above by (1/log_2 M). After multiplexing the bit

streams, this would also be the overall BIT error probability.

If one seeks the SYMBOL error probability for 16-ary symbols

on the other hand, you could let P_s be the symbol error

probability in each arm, then use P_16=1-(1-P_s)^2 approx 2P_s.

There are several ways to express SNR in systems

and lots of times the definitions are not always clear.

- 22nd April 2014, 15:22 #9

- Join Date
- Mar 2009
- Location
- Rawalpindi, Pakistan
- Posts
- 10
- Helped
- 0 / 0
- Points
- 979
- Level
- 7

## Re: SER(or BER) for 16 QAM in Rayleigh Channel Formula Required

After compiling your provided code greyfriend, i edited the 4th last line as

semilogy(gb,Pes,'r') to semilogy(gs,Pes,'r')

i.e. changing gb to gs, i got the following curve which i think is not appropriate,

Untitled.jpg

AM I DOING ANYTHING WRONG ???? Kindly correct me.

Thanking you.