Continue to Site

Welcome to EDAboard.com

Welcome to our site! EDAboard.com is an international Electronics Discussion Forum focused on EDA software, circuits, schematics, books, theory, papers, asic, pld, 8051, DSP, Network, RF, Analog Design, PCB, Service Manuals... and a whole lot more! To participate you need to register. Registration is free. Click here to register now.

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

Status
Not open for further replies.

inviziblesoul

Newbie level 2
Joined
Feb 11, 2009
Messages
2
Helped
0
Reputation
0
Reaction score
0
Trophy points
1,281
Activity points
1,299
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
 

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

Have a look on MATLAB BER Toolbox.
 

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

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');

 
  • Like
Reactions: meps

    meps

    Points: 2
    Helpful Answer Positive Rating
    V

    Points: 2
    Helpful Answer Positive Rating
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.
 

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.
 

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.
 

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.
 

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.
 

Status
Not open for further replies.

Similar threads

Part and Inventory Search

Welcome to EDABoard.com

Sponsor

Back
Top