1 Star2 Stars3 Stars4 Stars5 Stars (8 votes, average: 3.00 out of 5)
Loading ... Loading ...
Print Print

Bit Error Rate (BER) for frequency shift keying with coherent demodulation

by Krishna Sankar on August 30, 2007

Following the request by Siti Naimah, this post discuss the bit error probability for coherent demodulation of binary Frequency Shift Keying (BFSK) along with a small Matlab code snippet.

Using the definition provided in Sec 4.4.4 of [DIG-COMM-SKLAR]), in binary Frequency shift keying (BFSK), the bits 0′s and 1′s are represented by signals and having frequencies and respectively, i.e.



is the energy ,

is the symbol duration and

is an arbitrary phase (assume to be zero).

The two frequencies and are orthogonal, i.e.



Simple transmit-receive block diagram for binary frequency shift keying (FSK) can be as shown below.

Figure: Block diagram of FSK modulation and coherent demodulation

For analyzing the bit error rate with coherent FSK demodulation, let us compare the signaling waveform used by binary FSK when compared with binary PSK. The distance between the energy of the signaling waveform for:

(a) binary phase shift keying (BPSK) is (uses antipodal signaling)

(b) binary frequency shift keying (BFSK) is (uses orthogonal signaling)


Figure: Orthogonal and antipodal signaling

Using similar mathematical formulation used for BPSK, but with the distance between the signals reduced by half, the bit error probability for coherent binary frequency shift keying is


For obtaining the same bit error rate as BPSK, binary frequency shift keying requires around 3dB more . More details on the bit error curves with orthogonal and antipodal signals is discussed in Sec 3.2.5 of [DIG-COMM-SKLAR].

Simulation Model

Simple Matlab/Octave script for computing the bit error rate with FSK modulation. The code performs the following:

(a) Generation of random 1′s and 0′s

(b) Converting bits to appropriate frequency

(c) Passing through Additive White Gaussian Noise channel

(d) Demodulation at the receiver

(e) Counting the number of errors.

Click here to download Matlab/Octave script for computing Bit Error Rate with FSK modulation

Figure: Bit error probability with coherent demodulation of frequency shift keying

Hope this helps



[DIG-COMM-SKLAR] Digital Communications: Fundamentals and Applications (2nd Edition), Bernard Sklar

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.

{ 22 comments… read them below or add one }

Ramya November 4, 2012 at 9:10 pm

what kind of method did you use to find the bit error rate?
how does it vary if I am supposed find out BER by using monte-carlo iterations?


Avatar of Krishna Sankar Krishna Sankar November 12, 2012 at 7:06 am

@Ramya: For find the bit error rate, compare the received and transmitted bits and count the number of errors. Number of errors by total number of bits is the error rate


Siddharth May 12, 2012 at 9:54 pm

I am trying to code 16-FSK modulator and then compute average energy.How can I do this? Your help will be appreciated.


Avatar of Krishna Sankar Krishna Sankar May 15, 2012 at 5:54 am

@Siddharth: Define your signal vector and find the mean square power.


zardosht February 26, 2012 at 12:56 pm

Hi krishna
I cant understand number of symbole, where is
k=log2M and for mfsk please help me.
i want some information about it.
thank you for your attention.


Avatar of Krishna Sankar Krishna Sankar March 5, 2012 at 5:33 am

@zardosht: Hmm… the k = log2(M) means, if we have M constellation points we can send k = log2(M) bits in a constellation symbol. For eg, with 16QAM we can send 4 bits together.


Mahadevan Srinivasan December 30, 2009 at 7:20 am

Hi Krishna,

I recently found this website. Great Effort. :) .


Chandrakanth November 30, 2009 at 6:46 am

Can someone help me out on this please. I am looking for MAT LAB PROGRAM TO IMPLEMENT HUFFMAN CODING.

Thank you


Avatar of Krishna Sankar Krishna Sankar December 7, 2009 at 4:54 am

@Chandrakanth: Sorry, I have not discussed Huffman coding till date.


Srinivas June 27, 2009 at 12:51 pm

Can someone help me out on this please.
For ISI channel with L real coeffs and BPSK modulation write a Viterbi algorithm decoder with decoding delay >0
Using Matlab
Plot BER vs SNR for varying delays

I need the matlab code.
Thank You


Avatar of Krishna Sankar Krishna Sankar June 30, 2009 at 5:06 am

@Srinivas: I have not done MLSE equalization in multipath channel, but plan to do that in near future.


RAO June 16, 2009 at 6:23 am

hi krishna,

i want to plot the BER vs Eb/No of fsk coherent and noncoherent on awgn and raleigh channels.
can u help me in this regard?



Avatar of Krishna Sankar Krishna Sankar June 20, 2009 at 10:51 am

@RAO: Sorry, I have not tried modeling FSK with non-coherent demodulation OR in Rayleigh channel.


Joe June 8, 2009 at 6:08 am

What will BER be for M-FSK, if M=4?


Avatar of Krishna Sankar Krishna Sankar June 9, 2009 at 4:57 am

@Joe: Am not sure about the precise answer, however a quick googling threw up the following link.
Noise Performances of different Modulation Schemes – Chris Haji-Michael
Hope this is useful.


kalfika May 7, 2009 at 1:10 pm

Hi Krishna.
Your simulation is very useful for me.
Krishna, I want to ask about continuous fsk. Is continuous phase FSK same with fsk? How we define continuous phase in fsk?


Avatar of Krishna Sankar Krishna Sankar May 12, 2009 at 5:21 am

@kalfika: Thanks.
Continuous phase FSK is not same as classical FSK. I think in literature the continuous phase variant of FSK is also known as MSK. I had discussed briefly about MSK transmission @ http://www.dsplog.com/2008/01/19/simulating-minimum-shift-keying-transmitter/

Hope this helps.


kalfika May 12, 2009 at 9:18 am

Can we use MSK to modulate 4-ary or 8-ary? Because I think MSK is just to modulate binary. What do you think about that?


Avatar of Krishna Sankar Krishna Sankar May 20, 2009 at 5:06 am

@kalfika: Well, am also not aware of MSK systems using 4-ary/8-ary. Quick googling did not fetch me much results.


mohit April 11, 2009 at 11:36 am



Avatar of Krishna Sankar Krishna Sankar November 3, 2008 at 8:51 am

@davis: Well, given that we need to send both 1Hz and 2Hz, I do not think that the data bandwidth becomes equal to the carrier separation. Given the above understanding, am unable to understand your perspective. Can you please provide more details.


davis October 30, 2008 at 10:54 pm

Hi Krishna
i see that in the code the freqency for 0 is 1 Hz
and for 1 2 Hz
and that bit period is 1sec witch means that the data band width is the same as the seperation between the to carriers
How is this possible?


Leave a Comment

Previous post:

Next post: