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


Krishna Sankar Madhavan Pillai

Krishna Sankar M is a Signal Processing Engineer based out of Bangalore, India. His typical activities on a working day involve identifying and modeling digital signal processing algorithms for wireless receivers.
View Krishna Sankar Madhavan Pillai's profile on LinkedIn


The blog started some in February 2007 on the free Blogger platform and was hosted at http://dsplog.blogspot.com with the following objective:

Explain and discuss the basic text book concepts in digital signal processing and digital communication using simple Octave scripts.

Seeing consistent increase in traffic over the 6-7 months from inception, it was decided to move to an independent platform hosted at www.dsplog.com.

Target audience

(a) Students taking courses in digital signal processing/digital communication and requiring help to understand some of the concepts.
(b) Practicing engineers who are fresh to the domain of digital signal processing and requiring help.
(c) Ofcourse, the experienced engineers can share tips and tricks associated with the digital signal processing trade. :)

Probable contents

(a) Understanding basic concepts pertaining to FIR/IIR filtering
(b) Sample rate conversion
(c) Bit and Symbol error probabilities for typical digital communicatio
(d) Orthogonal Frequency Division Multiplexing
(e) more… :)

Contact via Email

For any queries, clarification, please contact the author at

Subscribe for the feed via Email

Please click here.

Subscribe for the feed via RSS

Please click here

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.

{ 46 comments… read them below or add one }

3Sigma February 23, 2013 at 6:26 pm

I’ve been following your blog for quite some time and liked a lot. I’ve also started blogging recently about analog design. Please checkout my blog.



Avatar of Krishna Sankar Krishna Sankar February 23, 2013 at 7:52 pm

@3Sigma: Thanks. Had a look at your blog – great ! All the very best!
If you are in Bangalore, lets meet up when are not ‘iwannastay_anonymous’ :-)


seema January 21, 2013 at 9:48 pm

hi krishna,

can u plzzz get me VHDL codes for viterbi decoding both using traceback and register exchange method.thanks


Avatar of Krishna Sankar Krishna Sankar January 23, 2013 at 5:29 am

@seema: sorry, do not have vhdl codes


seema January 23, 2013 at 3:54 pm

fine,thnks for reply :)


prasad December 7, 2012 at 9:53 am

…………..pls help me…..
my project on femtocell power control……..
i have theoretical knowledge but i don’t know how to simulate in MATLAB. so please help me giving sample code for power conterol in cellular communication


Avatar of Krishna Sankar Krishna Sankar December 8, 2012 at 3:55 am

@prasad: Power control should be relatively easy to simulate. How’s the transmitter getting a sense of it’s transmitted power – feedback from the power amplifier and/or feedback from the receiver system?


vignesh December 4, 2012 at 8:04 pm

Hi Krishna ,

Website is very useful.
I can learn a lot.



Winston November 25, 2012 at 4:01 pm


I am working on spectrum sensing on TV band.
I need to help on how to model a digital TV signal for null and alternate hypothesis.
Pls help me with this.


Avatar of Krishna Sankar Krishna Sankar November 27, 2012 at 5:44 am

@Winston: Are you using power estimate > threshold for the hypothesis?


Rui Li November 9, 2012 at 6:23 am

Hello, In this website I have learn much knowledge. Now I am studying LDPC channnel coding.
Do you have some source code about block fading channel? I can not know it exactly?


Avatar of Krishna Sankar Krishna Sankar November 12, 2012 at 6:59 am

@Rui: LDPC code-decoding is one of the TODO’s. However, you can find some posts on Hamming decoder and Viterbi decoder at


raja November 3, 2012 at 6:04 pm



Hung PCanh October 17, 2012 at 8:57 pm

Hi Krishna Sankar,
I am doing research in MIMO and Transmition Antenna Selection (TAS), may you give me some links or examples matlab codes on this topic?
i am a beginer in using matlab.


Avatar of Krishna Sankar Krishna Sankar October 18, 2012 at 5:42 am

@Hung: I cannot point to specific codes, but you can checkout http://www.dsplog.com/category/mimo


Thiyagi October 6, 2012 at 9:06 pm

Mr.Krishna I’m working in co-operative spectrum sensing for cognitive radios.. Currently in energy detection based on neyman-pearson criterion and likelihood ratio test.. Is there any blogs for hypothesis testing(DETECTION THEORY ) pls provide me if u have any materials or links


Avatar of Krishna Sankar Krishna Sankar October 8, 2012 at 5:34 am
Dewa September 25, 2012 at 12:47 pm


is there a reason between the choosing a MIMO 2×2 with the 64-QAM constellation?
are they connected each other?
i mean, why don’t we choose 2×3 or 2×4 which have a higher throughtput?

the square configuration (MIMO 2×2) and the square constellation of 64-QAM, are they correlated each other?

thank you for your answer


Avatar of Krishna Sankar Krishna Sankar September 26, 2012 at 5:26 am

@Dewa: The MIMO configuration (2×2, 3×3 etc) and the constellation (64-QAM, QPSK, 16QAM etc) are independent design choices. For eg, if you see 11n/11ac standard, can see the MIMO configurations with upto 8 antennas, with constellations from BPSK all the way to 256QAM.


snehaa diwan September 20, 2012 at 11:15 pm

sir we are implementing 2×2 MIMO system..using almouti scheme and also mrc at receiver side…actually we have to transmit text file wirelessly through zigbee module and receiver should add both the signal…i dnt knw how the SNR will increase and also the original signal should get back…


Avatar of Krishna Sankar Krishna Sankar September 22, 2012 at 6:01 am

@snehaa diwan: Couple of points:
a) Using two transmit antennas and two receive antennas, you can potentially double the data rate
For articles relating the equalization with a 2x2MIMO case, please look at

b) To increase the reliability, one can chose to keep the data rate and have more antennas at the receiver
- Maximal Ratio Combining (1tx and 2 receive antennas)
- Alamouti coding (2tx and 1 receive antenna)
- Alamouti coding (2tx and 2 receive antenna)

Hope this helps


vikas negi March 30, 2012 at 10:03 pm

hi Krishna
Good to see you solving problems of technocrates
i want some suggestion from you on my project.
i am doing MSK modulation using DDS centered at 60 mhz. please suggest me some demodulation scheme at receiving End.


Avatar of Krishna Sankar Krishna Sankar April 1, 2012 at 5:45 am

@vikas: please take a look at http://www.dsplog.com/tag/msk


Mat March 2, 2012 at 3:06 am

If we increase the number of subcarriers on OFDM, but keep the bandwidth the same, why do you think the BER increases with higher carriers


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

@Mat: If the number of subcarriers are more, then the chances of the frequency offset, phase noise affecting the orthogonality between the subcarriers gets higher.


abhsihek July 6, 2011 at 12:57 pm

Why have you stopped posting man ??


Avatar of Krishna Sankar Krishna Sankar October 30, 2011 at 7:42 pm

@abhsihek: am getting lazy?


mij April 1, 2010 at 6:39 pm

Hello Mr krishna

Currently im doing research on ofdm with qpsk and 64-qam modulation technique. I also need to generate a simulation of it.
But im a little bit confuse now…what is the equation for the BER of QPSK and 64-QAM?

it will be helpful if you can guide me on how to generate the MATLAB codes.

Thanks in advance


Avatar of Krishna Sankar Krishna Sankar April 4, 2010 at 3:21 am
uma March 22, 2010 at 10:38 am

hello sir,
can u provide matlab code for to undersample the pulsed UWB signal?……plz help me sir…….


Avatar of Krishna Sankar Krishna Sankar March 28, 2010 at 1:52 pm

@uma: Sorry, I have not tried model UWB systems


jennifer March 12, 2010 at 11:39 am

we are trying to implemnt UWB subsampling receiver for 3.1to 10.6 ghz input signal(gaussian pulse).can u help us with matlab code for subsampling receiver..
please sir .kindly help us..


Avatar of Krishna Sankar Krishna Sankar March 28, 2010 at 3:50 pm

@jennifer: Sorry, I have not tried modeling UWB. For downsampling, its as simple as take one out of two samples (for downsample by 2)


hitesh February 18, 2010 at 7:22 pm

hi dude,
i am stuck with coding in matlab of simulation environment for mobile communication system (mose) for power control in mobile radio system.
please help me


Avatar of Krishna Sankar Krishna Sankar March 31, 2010 at 5:38 am

@hitesh: What is the problem which you are facing?


Pascal Renuci February 14, 2010 at 8:39 am

Just found this website. What a wonderful gold-mine! Krishna, very nicely done!



Advaith December 24, 2009 at 12:14 pm

Hi Krishna,
Yesterday I sent a mail to your address and also posted a question on forum asking about plotting eye diagram. On one of the thread I found this and had few doubts.
When you say you are plotting 2 bits I see that high and low of that bit are at center of plot. So is it plotted as half of previous bit-current bit-half of next bit


Salman Javaid December 12, 2009 at 8:55 pm

Dudes, I salute you for this. One wonderful blog.


smruthi October 20, 2009 at 3:39 pm

Do u have MATLAB code for transfering data between two computers using parallel port?


Avatar of Krishna Sankar Krishna Sankar October 27, 2009 at 5:18 am

@smruthi: Sorry, I do not have. However, you might want to check the following links:
(a) MATLAB TCP/IP – code example by Steven Kolak
(b) TCP/IP Communication for Real-Time and Embedded Systems By Sam Mirsky
(c) Instrument Control Toolbox 2.9


Selvi October 5, 2009 at 10:01 pm

Mr. Kri Index to Various dashnan, I want to know , While assigning Subcarrier
Index to each data, You have used -26 to +26 neglecting 0. may know how this process is done. WHY Such change in subcarrier index is followed


Avatar of Krishna Sankar Krishna Sankar October 8, 2009 at 5:26 am

@Selvi: 0th subcarrier is not used by controlling the assignment of symbols to subcarriers. In general, modulating the DC subcarrier is not preferred as the DC impairments in RF etc will corrupt the information.


Ajay Pratap Singh September 15, 2009 at 2:05 pm


While I was putting the code, I downloaded from


in the codeblocks or in Visual Studio, it gives me error.

In codeblocks, it gives error at line number 42 and 138

error: undefined reference to `_exp10′|

Could you please tell me how to resolve this.


Avatar of Krishna Sankar Krishna Sankar September 18, 2009 at 5:46 am

@Ajay: I also had the same problem when I tried to compile with gcc. I worked around it by using -lm option when compiling.
Maybe, the following URI might provide you more info:
Good luck.


Bob September 1, 2009 at 2:59 pm

I have been asked to write a 1/4 soft input viterbi decoder in VHDL or Verilog (I use VHDL as I’m more familiar with it). I have a decent knowledge of Convolutional Codes and Viterbi Decoding and I have access to a 1/2 Viterbi decoder (which I didn’t create). My question is..is a 1/4 decoder much more complicated to design or is there anyway I can use the existing 1/2 decoder?


Avatar of Krishna Sankar Krishna Sankar September 7, 2009 at 5:38 am

@Bob: Well, its not complex. However, you need to re-construct the trellis based on the current state-next state, input-output transition matrix for rate 1/4 code.


Leave a Comment