File Exchange

image thumbnail

BER for BPSK in Rayleigh channel

version (976 Bytes) by Krishna Sankar M
Simulates the BER for BPSK modulation in Rayleigh channel


Updated 13 Aug 2008

No License

Simple Matlab example simulating a BPSK transmission and reception in Rayleigh channel. The script performs the following

(a) Generate random binary sequence of +1’s and -1’s.

(b) Multiply the symbols with the channel and then add white Gaussian noise.

(c) At the receiver, equalize (divide) the received symbols with the known channel

(d) Perform hard decision decoding and count the bit errors

(e) Repeat for multiple values of and plot the simulation and theoretical results.

The theoretical description provided in

Cite As

Krishna Sankar M (2021). BER for BPSK in Rayleigh channel (, MATLAB Central File Exchange. Retrieved .

Comments and Ratings (11)


Soniya Kapur

This code helped me a lot... But I want to confirm if we add some shadowing to this code, will it effect the BER Curve


Ah nevermind, the error goes to zero (off the graph)


How do you create a complete graph when using less than 10^6 transmitted bits? If I change to anything else, it truncates the graph at 1/N. I am doing this to show that when the number of bits is low the simulated and theoretical curves diverge.


i have tried to realize the simulation of qpsk with rayleigh channel by mutiplying h first,then mutiply conj(h)/abs(h) ,then hard deciding the result with a constellation abs(h) of the orignal one. but the result is not so good .can you help me explain it?

kirankumar palthi

Hi krishna,

I gone through your code. It works. When I am encoding the tx'er bits using (convolution encoding) or Spreading or both I'm unable to get the curve same as theoretical.

R Random

@Pillai. I have to admit that you're right. What I forgot is the fact that the additive noise is also divided by the channel.

Krishna Pillai

@random: May I suggest that your observation is incorrect. Even when we know the channel, and divide the received symbol by the known channel, the resultant noise term is no longer white. Hence it is not comparable to AWGN channel. Further, in the Matlab code the BER obtained from simulations are shown to be matching the theoretically expected results.

R Random

Once you divide the received signal by the known channel you have removed the impact of the channel totally. In other words, it is the same as an AWGN channel, and there is no fading in the model.

MATLAB Release Compatibility
Created with R14
Compatible with any release
Platform Compatibility
Windows macOS Linux

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!