Following discussion of bit error rate (BER) for BPSK and bit error rate for FSK, it may be interesting to move on to discuss a higher order constellation such as Pulse Amplitude Modulation (PAM).
Consider that the alphabets used for a 4-PAM is (Refer example 5-34 in [DIG-COMM-BARRY-LEE-MESSERSCHMITT]
).
The average energy of the constellation assuming all the alphabets are equally likely is,
.
The constellation plot for a 4-PAM signal after normalization can be as shown below.

Figure: Constellation plot for 4 PAM modulation
Channel Model
Now comes the interesting task – analysis of symbol error probability for the modulation scheme in additive white Gaussian noise condition. The noise follows the Gaussian probability distribution function,
with
and
.
Computing the symbol error rate
Using the derivation provided in Section 5.2.1 of [COMM-PROAKIS] as reference:
The received signal can be
or
or
or
.
Let us first consider the case was transmitted.
The conditional probability distribution function (PDF) of given
was transmitted is :
.

Figure: Probability distribution function when the alphabet +3 is sent
Using midway point between +1 and +3 as the detection threshold, i.e. for received signal .
With this threshold, the probability of error given is transmitted is (the area in blue region):
.
Note: The complementary error function, .
Given that the constellation of +3 and -3 is symmetric, it is reasonably intuitive that the probability of error given is transmitted is also,
.
Case where is transmitted
The conditional probability distribution function (PDF) of given
was transmitted is :
.

Figure: Probability distribution function when the alphabet +1 is sent
The probability of error given is transmitted is (the area in green and red region):
Given that the constellation for +1 and -1 is symmetric, it is reasonably intuitive that the probability of error given is transmitted is also,
.
Total probability of symbol error
Given that all the alphabets are equally likely, the total probability of symbol error is,
.
Assuming, and
,
are equally probable i.e.
, the symbol error probability is,
Simulation Model
The Matlab/Octave script for generating a 4-PAM transmission, pass it through additive white Gaussian noise and demoduation at the receiver will be useful for understanding the concept further. The symbol error rate plots obtained from simulations compare well with the theoretical derivations.
Click here to download: Matlab/Octave script for simulating 4PAM symbol error rate

Figure: Symbol Error Rate for 4-PAM modulation
Reference
[DIG-COMM-BARRY-LEE-MESSERSCHMITT] Digital Communication: Third Edition, by John R. Barry, Edward A. Lee, David G. Messerschmitt
Related posts
- Symbol Error Rate (SER) for 16-QAM
- Symbol Error Rate for 16PSK
- Symbol Error Rate (SER) for QPSK (4-QAM) modulation
- Comparing 16PSK vs 16QAM for symbol error rate
- Bit Error Rate (BER) for BPSK modulation
D id you like this article? Make sure that you do not miss a new article by subscribing to RSS feed OR subscribing to e-mail newsletter. Note: Subscribing via e-mail entitles you to download the free e-Book on BER of BPSK/QPSK/16QAM/16PSK in AWGN.

(2 votes, average: 4.5 out of 5)
{ 1 trackback }
{ 28 comments… read them below or add one }
kindly tell me from where should i start programming the communication things in MATLAB i am facing alot of difficulties. Waiting desperately for your reply …
thnks in advance
@johny: Dont worry and of-course do not be desperate. Start reading the articles slowly with a clam-clear mind. Things will fall in place. In the meanwhile, I happened to see a nice article from Mathworks
“Modeling a Communications System Using the Communications Toolbox” URI: http://www.mathworks.com/products/demos/commtlbx/commsys/commsdemo.html
It goes step-by-step over the blocks in a typical communication link. Nice read.
thankyou very much … the link you gave is helping me alot … you are great thanks alot once again
good
You have generated the symbol error probability.
What would be the difference if i wanted to do it for bit error probability?
Thanks
@mohit: For BER, one would want to assign bits to constellation points (typically using Gray mapping). Then based on the received constellation point, map this to bits and count the errors.
Typically, if one assumes Gray mapping,
Pb = Ps/k.
Since each constellation carries k bits, then
Es/No = k*Eb/No.
You may refer to the posts @
http://www.dsplog.com/tag/gray/
for reference.
Hope this helps.
So for 4- PAM
Es/N0=2*Eb/N0
that is the only change we need to do??
@Sravani: Yes, since each symbol carries two bits in 4-PAM,
Es/No = 2Eb/No
hello sir,
good to see such a organised blog. its all your hard work.
sir, i m working on diversity along with MSK modulation. whenever we use matlab in built function for decoding it gives an error. please tell me how to find BER using MSK modulation
@surbhi: I have not written a post on MSK demodulation, but have written on
(a) BER computation with FSK
http://www.dsplog.com/2007/08/30/bit-error-rate-for-frequency-shift-keying-with-coherent-demodulation/
(b) Generation of an MSK transmission
http://www.dsplog.com/2008/01/19/simulating-minimum-shift-keying-transmitter/
Hope these two posts help to achieve your goal of doing MSK with diversity. All the best.
i am looking for best modulation technique suitable for software radio and which parameters affect it the most.please guide me..
@somnath: As I see, every modulation technique has its own pros and cons. For eg.
BPSK is simpler and requiers low SNR to work, but the data rate is less.
64QAM is relatively complex, but requires high SNR to work and we have good data rate.
So, in typical systems (like 802.11a wireless LANs), one finds different data rate specifications like 6, 9, 12, … 48, 54Mps. Based on the SNR constraints, the modem adapts to an optimal data rate maximizing the throughput.
These constraints should be similiar in software defined radio too.
Hope this helps.
Nice way of using the find syntax …
I did the same simulation using nested for loops and it generates the same results, with a tradeoff of the script being slower.
@jsrt54: Glad to hear.
Using MATLAB, perform a Monte Carlo simulation of the four-level (quaternary) PAM communication system that employs a signal correlator.
• N = 10,000 transmitted symbols at different values of the average bit SNR
• Consider average bit SNR in the range of 0 to 12 dB.
• For convenience, normalize the distance parameter d = 1 and vary σ0.
I need the MATLAB graph please… I cant download MATLAB on my pc.. please help me someone… my due is tomoro… please…
@Vini: Please refer to the post on symbol error rate for 4-PAM simulations:
http://www.dsplog.com/2007/10/07/symbol-error-rate-for-pam/
If you dont have Matlab, you may download Octave and use.
Can you advise me how I can stimulate the 8-PAM with a repeated input bit sequence of {101 000 100 101 100 100 100 011 001 100 110 110} , to produce the symbol error probability with less than 10^-4 ?
@cheri: You may start of with finding assign each bit groups to constellation points from [-7, -5, -3, -1, 1, 3 , 5, 7]/sqrt(21), and compute the bit error rate. For simplifying the simulations, try with zero noise and then later add noise. For high values of Eb/N0, you should be able to get BER less than 10^-4. Good luck.
could u please tell me the noise standard deviation for 8-PAM and the theoritical value of error probability of 8-PAM in AGWN channel?? thks before..
@N.A: Chapter 5.2.6 of Digital Communications by John Proakis, discuss the symbol error rate for a general M-PAM case. Plz check that out.
i encoded my signal first with 5,2 block code and then converted to 4pam. I don’t know how to find the bit error rate or SER. can you please guide me?
@Richard: For finding the symbol error rate, compare the transmit and received constellation points. For computing BER, convert the received constellation into code bits, perform decoding and then compare the transmit and received bits. Good luck.
What is the formula for theoretical value? I would like to find coding gain.
I saw a formula at your page:
http://www.commsdesign.com/article/printableArticle.jhtml?articleID=208802825
The formula is near the end of the article. Should I use that?
Thanks in advance.
@Richard: I have not assumed any coding in this writeup. Maybe I did not understand your query.
Hi guys!
What happens if the messages are not equipropable???
I got a problem with defiining the thresholds.
Hi,
Unfortunately, my mathematics got a little bit rusty. Could you help me with the step where you calculated p(e/s3)? I’m not sure how you got to the erfc() form –> First, the limits were “-inf” to “2*sqrt(Eb/5)”, than ” ” to “inf”. I tried to substitute as you did. –> z=y – sqrt(..) –> dz/dy=1 –> limits z=-inf -sqr() = -inf ….so its -inf , you ..you know. Additionally, how you got the N0 into the limits. Sorry, I really forgot how to do this. Orginally, I wanted to calculated the same as you did but with the Q() function.
Thanks,
Martin
@Martin: You can substitute z =(y – 3sqrt(Es/5))/sqrt(N0). With that substitution, the limits change from -Inf to 2sqrt(Es/5) to -Inf to -sqrt(Es/(5N0)). The latter is same integral from sqrt(Es/(5N0)) to Inf.
Agree?
Oh thank you. I forgot the sqrt(No). What a mistake.