Charan L.

446 comments on “Charan L.
  1. Rajiv says:

    Hmm. Interesting heading. Machine translation into Devnagri. From English, the most confused language in the world. Hmm.

    No wonder. Makes no sense whatsoever, I was completely confused. Doesn’t even come close to what I think you are trying to say – which I figured from the first sentence of your post. Here is the corrected title:
    ग्रैजुएशन स्पीच एट कैल पोली, सेन लुई ओब्सिपो एयरोस्पेस एन्जिनेअरिंग ग्रैजुएशन बैंक्वेट
    Now if you are wondering how you could have got it right using Google Transliterate, here is the true phonetic English to use. So you see, there is a long way to go.

    graijueshan speech aet kael poli, sen luee aeyarospaece enjinearing bankwaet

  2. dalbert02 says:

    First, thank you so much for your website. I am not a very smart person, but with your help, I am starting to understand some difficult (to me at least) topics. What I do not understand is how you lose your emails when you change computers! Just export your mail to a file on a jump drive and import them on the new computer. I have emails from 1994! I can’t begin to tell you how many computers I’ve had since then!

  3. ISS says:

    Hi Charan,

    I’m a big fan of your site (and open-source learning in general) and the way you explain concepts in communications in an intuitive manner. I’m greatly looking forward to how you explain MIMO. It seems like there is A LOT of new developments concerning MIMO-OFDM and the diversity-multiplexing tradeoff.

    All the best,

  4. Shriram says:

    Hi Charan,

    Your website “” has helped me a lot in getting an intuitive understanding of the otherwise complex Signal Processing and Communication theory. I am expecting more concepts from the-most-difficult Information Theory to be explained! Hats off for your work!!

    Thanks a ton,
    Shriram Nandakumar

  5. SEwind says:

    Hi Charan,
    I came to your website via google by accident. The tutorials are verg helpful for me. At the beginning, I read the chapters about turbo coding. I tried lots of documents, but most of them are too complicated for me. After reading your tutorials, I understand turbo coding now. Then I looked through all the tutorials on communications. You really did a great job.

    Thank you.

    Changan Zhu

  6. Pilot-Pooja says:

    Please accept my sincere thanks for providing a useful website at zero cost:

    As my communications concepts are not strong, i will use the info to prepare for my forthcoming scientist interview in ISRO.

    I also thank you for accepting my linkedin request.

    Best Regards
    Pooja Gupta

  7. Hi there,
    I found your MIMO part to be very useful but couldn’t find your recent post on MIMO (part 2). Will you help me on that?

  8. Charan says:

    Actually I combined both Part I and Part II in one, which is now on the site. Is there a particular part of MIMO you are interested in

  9. karu says:

    I find your tutorials very useful, especially intro to OFDM and MIMO is very nicely presented with minimum math . Thank you very much for these tutorials

  10. jon-h says:

    dalbert02 is right about not losing emails. however export/import is not the recommended approach. google the topic or see: for example.

  11. William Quillen says:

    A colleague has shared your material about CDMA with me and I found it very beneficial. I look forward to exploring some other tutorials at your site. Thank you for your contributions. “All my Filters” … cute title!

  12. Dan Sandberg says:

    Thanks for the very readable tutorial.

    Small error I noticed: Figure 1.7 (“a 3-level signal”) has four levels.


  13. Nina Levin says:

    Great website!

  14. Duy Nguyen says:

    Thank you for making the tutorial available to public. The PDF file for tutorial 11 – Link Budgets is actually of tutorial 12.

  15. Jamal A. says:

    Dear Charan,

    First thank you very much for this tutorial.

    In the OFDM tutorial, page 5 I have this question:

    1- How this been found:
    bits from the information: 1,1,-1,-1,1,1,1,-1,….

    2- How this been calculated:
    harmonics 7/4, 7/2, 21/2 Hz?

    Thank you.

  16. nikhil says:

    great website

  17. Randy Pilkington says:

    I believe figure 6c and 6d should have input=0 in the caption rather than input=1. Also in 6d, the input state should be 001. Unless I miss something!

    By the way, I really appreciate your tutorials. Very well written and intuitive! Many thanks.

  18. Jean-Benoit Larouche says:

    Hi! First of all, thanks a lot for all these tutorials, I am finishing my master degree in digital telecommunication and the tutorials helped me alot in different subjects! keep on the good work!

    At this moment, I am working on TCM and I read many times your tutorial on it. My goal is to prove that using TCM, with a 2/3 rate convolutional coder and a QAM-16 constellation mapping, I can acheive the same or better coding gain then a standard 8-PSK modulation scheme. My problem is to actually find a good 2/3 convolutional encoder with a good minimum squared distance. I tried the one in the tutorial, but with the suggested QAM-16 constellation mapping, the shortest path, is definitly too short to get a significant coding gain. Do you have any suggestion regarding a good convolutional encoder for QAM-16 TCM?

    I hope I was clear,

    Thanks a lot,


  19. tintu says:

    The explanations are ultimate… Too good…. Thanks a lot for the nice work… It helps me a lot…

  20. Alejandra Mercado says:

    You have some really nice and intuitive tutorials. Thanks for posting!

  21. Spyros Villios says:

    Thank you!!!

  22. Ivar KJELBERG says:

    For private training

  23. idmond says:

    Hi, I really want to thank you for the effort you put in these amazing tutorials and I hope you keeping posting more and more of these tutorials. I just have one question about AM modulation:

    “In AM synchronous demodulation, Why we don’t divide m(t)coswt by cos(wt)
    instead of multiplying by cos(wt)?”

    When I was taking a class in Analog Communication… I recall that I was watching one of the video lectures on signals and systems from Berkeley University, the Professor was talking (in that video recording of the lecture) about amplitude modulation and why when we want to demodulate an AM modulated signal , in synchronous detection, we multiply the AM modulated signal = m(t)cos(wt) by cos(wt), where w is the carrier frequency, and why we don’t just divide by cos(wt) to get m(t) back, since this can be easily implemented by a simple divider circuit.

    well, he didn’t answer that question in the lecture, may be he just left it as an assignment for his students, I don’t know. but it just got me thinking about it, if it’s all about thinking mathematically, then it seems like it’s more intuitive and a whole lot easier if we just divide by coswt, why we go through all the trouble and multiply then we have to know the trig identity of (cos(a)cos(b)) and then put a BPF centered at w after the output…

    • Victor Levin says:

      While multiplication followed by a lowpass filter is equivalent to division, it is actually very different in implementation. The main problem with division is the issue of dividing by zero every period. This would cause amplitude spikes that would saturate the circuitry around the system. These can be avoided by syncing exactly the phases of the two cosines. Now instead of dividing by zero at t=2pi/w, there is cos(wt)/cos(wt) where both go to zero at the same time. Using L’hoptials rule, you can see that when t=2p/w, the output is 1 not infinity. But even if we managed to have perfect syncing, we still would have to build a divider circuit. These are more difficult to implement than a simple transistor mixer.

      Overall its just much simpler to build and implement the mixer to lowpass than a division circuit. But mathematically they are completely identical!

      • idmond says:

        Thanks for your reply Victor. I just don’t think that the L’hoptials rule will still work in circuit implementation. it is mathematically right, yes, but in practice, if the two cosines are in sync, then they eventually have to cross the value of zero at the same time, not just keep getting close to it, so you don’t get 1 here, but amplitude spikes.

    • Qasim Mahmood Chaudhari says:

      I was also confused about it for years. Then I realized that it is actually division if you consider the modulation/demodulation operations in complex lowpass equivalent domain.

  24. Rijo John says:

    Nice to see that you have converted the file into a pdf format and given more details. But I really miss your old webpage. It was one of the most well explained and well illustrated page of the exponential function in the whole of the internet and I used to visit it frequently when I had any technical doubts. Sorry to see that it has just vanished! Is there anyway you can also archive that page along with the current pdf just because of it’s better readability and illustrations.
    Rijo John

  25. Profile photo of Charan L. Charan L. says:

    Divider circuits were not easy to build. That was the main impetus for doing it this way.

    • idmond says:

      why it isn’t that easy to build a divider circuit? I mean are there actually divider circuits that can divide by a function(not a number like arithmetic dividers) or we’re able to implement a divider circuit that can divide by a sinusoid function like cosine, but it’s much easier to implement a multiplier circuit than a divider one.

  26. Evenso Ndlovu says:

    Thanks for this, very enlightening!!! Keep it up there!!

  27. alexguosjtu says:

    the equation in (1.11) is not correct. it should be =(Px – Ux^2) rather than = (Px-Ux).

  28. Camuano Monteiro says:

    The site is well done and the subjects are very well construted.

  29. Charan says:

    I really enjoy your tutorials, the ones that I have read have been extremely useful and a great compliment to the courses I’ve taken. Thanks. I probably wouldn’t have sent you this e-mail if it wasn’t for your Amazon comment under Richard Lyons Understanding Digital Signal Processing. I’m reading his book now, I’m glad you decided to spread your knowledge with the same writing style.

    Going through your tutorial, I think I may have found some errors in your Figures. There may be an offset in the indexes that generated the calculations. My hand calculations don’t match your Figures, and the numbers used in the examples give calculations that can valid for more than one edge, I can’t eliminate any assumptions I’ve made. I was hoping you’d provide some clarity. Thanks.

    Figure 16 – Page 13.
    Center Trellis
    Some of the 0.586 should be a 2, 3.414

    Figure 19 – Page 15
    I think some of the labels are swapped.

    Figure 21 – Page 17
    If Figure 19 labels were swapped, same applies.

    Page 28
    For the final equality of Y.
    It should be 2*x^4 [0 1 1]T instead of x^4

  30. Raghav Kapur says:

    Can you please add a link to my website to

    I run a website for the RF & Microwave Industry called everything RF –

    We provide a tool which enables engineers to find products and companies based on their requirement. We also provide a useful White Paper Library.


  31. Rehmat Ullah Kundi says:

    I greatly appreciate your efforts in putting these pages together. I have seen your previous versions and this one seems to be more refined. Facebook page has increased its utility even further. I am not directly involved in Digital comm but I do read material on the subject to keep my self updated. I also share these with my students and colleagues. Thanks one more time for efforts and time.

  32. Faiz says:

    Great work,
    Very useful collections.

  33. aman sikri says:

    i have gone through these notes. I think this is a fantastic work by you. I just want few notes on wireless basics communication. Can u add this topic also.?

    • Profile photo of Charan L. Charan L. says:

      HI Aman,

      Not clear what you are asking? What kind of wireless notes do you need?

      Charan Langton

      • Vishwas S Patel says:

        It will be more helpful, if you can post about the wireless communication from 1G to 4G..
        Different types of modulations used in different generations.
        Like OFDMA basic concepts for WiMAX, LTE and WIFI.. Why OFDMA was started?
        CDMA basic concepts .. why it was used earlier?
        It will be a lot more helpful…

  34. max says:


  35. JB says:

    hello Charan Langton,

    I first thank you for your insightful tutorial. however in fig 27.4 about SISO and MIMO capicty Vs SNR comparison, I think there was a mistake in legends marking. for example at 10dB of SNR SISO is marked to be with high data rates than MIMO. I stand to be corrected if I am the one with wrong interpretation.

  36. Ravi Kumar says:

    The tutorial contains very useful info…thanks for sharing such good information

  37. Srikanth Konjeti says:

    I started my career in Digital comm and moved to Audio DSP.
    I came across the OFDM article that i took a print of some years ago and was lying in the desk. I didnt understand it then but read it again recently. It was so clearly written an simple to understand. It was an “Aha” moment and want to mention my thanks.
    Keep up the good work


    • Profile photo of Charan L. Charan L. says:


      This paper on OFDM seems to be most popular of all my articles.
      Probably because the issue of the inverse FFT is so confusing.
      Glad you liked it.

      Charan Langton

  38. kate says:

    fyi – pdf link seems broken? I came to recommend these pages to a classmate. It worked yesterday 🙂

  39. Rajaram Gopalraju says:

    I could understand fourier transform very well by means of this step-by-explanation;I have also obtained an insight in to the basic principles of modulation and sig nal processing. Thanks..G.Rajaram


    At this moment, I am working on fft/ifft for OFDM and I read many times your tutorial on it. My goal is to prove that using FFT/IFFT, with a 2/3 rate convolutional coder and a QAM-16 constellation mapping, I can acheive the same or better coding gain then a standard 8-PSK modulation scheme. My problem is to actually find a good 2/3 convolutional encoder with a good minimum squared distance. I tried the one in the tutorial, but with the suggested QAM-16 constellation mapping, the shortest path, is definitly too short to get a significant coding gain. Do you have any suggestion regarding a good convolutional encoder for QAM-16 TCM?

    I hope I was clear,

    Thanks a lot,

  41. Derek Kozel says:

    Hello. The link to the discussion on harmonics under the FFT section is dead. Thankfully the wayback machine has a copy including the wav files.

    Your tutorials are excellent, thank you for taking so much time to write them. It’s unfortunately rare to find someone who has a deep understanding of the material, can communicate clearly and efficiently, and covers such a breadth. Thank you.

  42. hemanth says:

    this material is very good for understanding i really liked the tutorials very much and i request you to post more tutuorials on communication

  43. Dan Sandberg says:


    Just wanted to let you know that I’ve found your tutorials hugely helpful. I spent a lot of time looking at different books and tutorials and yours are my favorite.

    Please write a few chapters on equalizers! I’ve now read many different tutorials/book-chapters and I never manage to keep up with the mathematical notation.



  44. Sumit says:

    I have been following your tutorials for the last five years…and they are really helpful. Thanks

  45. Arunpradhap Natarajan says:

    Dear Charan Madam,

    I have doubt in Digital signal Processing.My question is that for determining frequency component of the samples we are using DFT which involves complex quantity.we kow that this DFT is derived from the complex fourier series of a Periodic signal by tending its time period to infinity then we discretize the fourier transform for finite length sequence.can’t we use the Fourier transform which is derived from the real Fourier series of the periodic signal by tending its time period to infinity then we make it use for finite length sequence which will have only real quantity. this is the Discrete Hartley Transform.This also has fast computation algorithm.Could you explain me abou this.


    Arunpradhap Natarajan

    • Profile photo of Charan L. Charan L. says:

      Discrete signals are different than continuous signals in that we can not determine the true frequency of the underlying signal. A discrete signal can represent a lot of different analog frequencies. Because of this the DTFT repeats and CTFT does not. We can not sample CTFT to represent the DTFT for this main reason.

      Once the signal is sampled, then you can use either DFS (discrete Fourier series) or DTFT or DFT but not CTFT.

      BTW, whenever we are talking about any kind of “fast algorithm”, we are referring to computation on a discrete series.

      Charan Langton

      • Arunpradhap Natarajan says:

        cant we derive the CTFT in terms of real quantity from real fourier series if so give me that equation


        Arunpradhap Natarajan

        • Profile photo of Charan L. Charan L. says:

          No you can not. There is no per say connection between real quantity and CTFT. One is a quality of a signal and the other a mathematical procedure on the whole signal.

          This is a very general question you are asking. It does not have a answer in a “equation”.


          • Arunpradhap Natarajan says:

            Dear Charan Madam,

            If I have rectangular pulse with duration 0 to T whose fourier transform is sinc function of only positive frequency or it includes negative frequency also.If it includes negative frequency what is the meaning of negative frequency in the puslse having positive duration only


            Arunpradhap Natarajan

          • Arunpradhap Natarajan says:

            Dear Madam,

            if we can’t derive the fourier tranform from real fourier series then how the Discrete Hartley Transform exists

            thanks with regards

            Arunpradhap Natarajan

  46. Arunpradhap Natarajan says:

    Dear Madam,
    In Hilbert Transform -90 dgree phase shift is produced if we the signal frequency is f>0

    and produces +90 degree phase shift for the signal if the signal frequency is f<0.If I have a bandwidth

    of frequencies 0 Hz to B Hz how could the Hilbert transform will produce the +90 degree phase shift since

    I don't have negative frequency

    Arunpradhap Natarajan

  47. Arunpradhap Natarajan says:

    Dear Madam,
    In Hilbert Transform -90 dgree phase shift is produced if we the signal frequency is f>0

    and produces +90 degree phase shift for the signal if the signal frequency is f<0.If I have a bandwidth

    of frequencies 0 Hz to B Hz how could the Hilbert transform will produce the +90 degree phase shift since

    I don't have negative frequency

    Arunpradhap Natarajan

  48. Arunpradhap Natarajan says:

    Dear Charan Madam,

    If I have rectangular pulse with duration 0 to T whose fourier transform is sinc function of only positive frequency or it includes negative frequency also.If it includes negative frequency what is the meaning of negative frequency in the puslse having positive duration only


    Arunpradhap Natarajan

  49. Fatih CAKIR says:

    I first met via this tutorial(OFDM) with COMPLEX TO REAL… your tutorials are very helpful and
    understandable and it is very important because communication is very hard branch in engineering…so i think your web site second name must be COMPLEX TO SIMPLE… thank you very much and I wish you success…:)

  50. Profile photo of Charan L. Charan L. says:

    Fig. 27-3 in MIMO tutorial is mislabeled. JB, you are right that the bottom curve is the SISO curve and as we add greater dimensionality, the capacity rises.

    The top curve and the bottom curve, the labels are reversed.
    Thanks for pointing it out. – Charan

  51. Vision 2020 says:

    Where can I get the code for 4*4 mimo systems ? I want to implement it to learn about it.
    Your tutorial is really helpful.

  52. sangram kesharee pradhan says:

    your tutorial helped me very much. A lot of fundamental ideas i got from here which i had not got from my teacher. Thank you

  53. Hi Charan,

    Just a quick email to say thanks for your great website. We’re a maritime VSAt operator (incidentally using various SSL-built satellites..) and your tutorials have been very useful for a number of our guys.

    Many thanks again and keep up the good work!

    Kind regards,

    Bertrand Hartman
    OmniAccess S.L.

  54. Isdren Gineer says:

    You have created a great resource, and I am very appreciative of the effort you have put into creating it.

    I noticed that one of the keywords to this post is ‘Proakis’; perhaps you meant to use ‘Lyons’. You’ve written a great review and it would be a shame for someone searching on Lyons to miss it.

  55. Gunther March says:

    I’m working on the Link Budget analysis for my master thesis.
    I didn’t understand the differences between the two methods for Link budget analysis. There is the Eb/No method but also the SNR method to evaluate the link margin and all results.
    The results of the two methods are different. I didn’t understand what is the difference between these methods and what result is good for me.
    Link margins are very different!!!

    Sorry for the trouble. Thank you in advance.

    • Profile photo of Charan L. Charan L. says:

      We use the EbNo method for digital signals such as QPSK, 8PSK, 16APSK, 32APSK etc. The metric of performance for these signals is the EbN0 vs. the Bit Error Rate (BER). So we first set a BER that is desired, say 10-6 and then determine what EbN0 would be needed to deliver the required BER. Depending on the code used, this may vary for a given modulation by 1-2 dB. The goal of a link budget where data is digital is to provide this minimum EbN0.

      Analog signals do not have BER. They are judged instead by SNR, signal to noise ratio. For an analog signal such a FM signal set, or SSB signals, an average SNR and a peak SNR is usually specified based on number of signals sharing the bandwidth. The peak SNR can often be 10 to 14 dB higher than the average. The goal of the link budget for analog signals is to provide the peak SNR.

      So the two methods you are talking about pertain to traffic types and will of course give completely different answers since there is no simple way to compare a FM/AM signal with a MPSK signal.

      Charan Langton

  56. sungkyu says:

    I want to say thank you for your this effort.

    I think you missed the Figure 17 on 9 page.

  57. Paul Mohan says:

    Charan –
    I have had Richard Lyons ‘Understanding DSP’ on my bookshelf for many years now (his 1st edition, 1997) and very much agree that it is an exceptionally well written and highly useful volume. I have refered to it many times during the course of my work in signal processing engineering.

    A question if I could. I have recently been reviewing in detail his discussion on Quadrature sampling with Digital Mixing – Section 7.2. I am having trouble reconstructing the basis for the spectral replication he has illustrated in Figure 7-3(d) (pp. 302), which also has the associated text: ” ..the spectral replication period in Figure 7-3d is half what is was in Figure 7-3c”. Would you know if RL has issued any errata notes that relate to this specific section, or perhaps updates/corrections that appear in later editions of this book?

    Best Regards.

  58. padma says:

    Please send me the amplitude modulation

  59. Dacosta says:

    Am studying analog anddigital communication,I really don’t understand the terms like QAM,FPSK,QPSK,FSK ETC

    • Profile photo of Charan L. Charan L. says:

      Well then you should read some of these tutorials I have here, particularly the one on modulation which explains what these terms mean.

  60. Hello Paul Mohan,
    You are correct. There is an error in my Figure 7-3(d) in the First Printing of the 1st Edition of my “Understanding DSP” textbook. Good for you for detecting that error. (I corrected that error in later Printings of the book’s 1st edition.) With that thought in mind, I have two things to say to you:

    [1] Please send me an E-mail, at, and
    request the errata for the 1st Edition of my book. That errata will tell you how to correct the Figure 7-3(d)’s error. I encourage anyone who has a copy of any edition of my book to E-mail me and request the appropriate errata for their copy of my book.

    [2] Paul, the “Quadrature Sampling” and “Digital Resampling” material in Chapter 7 of my book’s 1st edition was my first attempt to write about those two topics. I have subsequently expanded and improved my discussion of those topics in later editions of my book. To be clear now, although it would benefit you to do so, I’m not trying to convince you to buy the latest edition of my “Understanding DSP” book. With regard to quadrature signals and quadrature processing, I have an improved version of my discussion of those topics at the following web site:

    When you have nothin’ better to do, I recommend that you have a look at that web site. It’s free of charge.

    Good Luck,
    [-Rick Lyons-]

  61. priya rawal says:

    ma’am will u plz mail me a tutorial on ofdm

  62. amarishnegi says:

    thanks a lot for providing ISI notes .I will be thankful to u if u provide gram schmidt orthonormalization notes .

  63. NISHANT GHOSH says:

    “In AM synchronous demodulation, Why we don’t divide m(t)coswt by cos(wt)
    instead of multiplying by cos(wt)?”
    The divider circuit (or the system that divides m(t)coswt by cos(wt)) is non-invertible system. In the whole modulation and demodulation process we want a robust transmission of m(t).

  64. nishant ghosh says:

    Divider circuits are non-invertible systems. Here our system is just passing the message signal to the receiver terminal. If we are passing m(1) then we will get m(1) at the receiver but if we wish to transmit m(pi/2) then you cannot obtain m(pi/2) at the output…. you will have an indeterminate mathematical form which is not desired…

  65. Basa says:

    Your tutorials are wonderful. Everything is lucid and clear.
    I have found this tutorial website on simulation of digital communication using Matlab. Do take a look.


  66. sandeep says:

    i am doin project on “A low complexity MMSE for OFDM system over frequency selective fading channels”i wanted the source code n theory behind this project..

    • Profile photo of Charan L. Charan L. says:

      OFDM performs best when it is used in frequency selective channels. I am not quite sure what you are looking for. I don’t offer a lot of code, as one needs to understand the theory first. The tutorial hopes to make the OFDM theory understandable and hope it has achieved that goal for you.

  67. Ben Thomas says:

    I have been an electronics engineer for nearly a decade. Although I was only recently steered towards this site by a friend, the experience of going through these tutorials was like meeting a friendly and extremely interesting stranger whose charm does not fade with time, thank you for this excellent content and wishing you the very best.

  68. Vishwas S Patel says:

    I have a basic doubt. Consider a sine wave, if you take two times the sampling rate according to nyquist theorem. If 2 samples taken in a single period is at 0degree and 180degree.. Then we end up having all zeroes.. Can you please explain it?

    • Profile photo of Charan L. Charan L. says:

      Okay, what sine wave can you fit through these two points? Many, but the one with the smallest frequency is 1 Hz. And that/s all Nyquist is saying.

      Actually the 0 points mean that you have used a NYquist frequency that is exactly 2 timrs, but the definition says it needs to be larger than two tims the maximum frequency even if infinitesimally. Once you increase it a tiny bit, more than two times, you will not get those zeros and then can fit many harmonics through those points.

      Charan Langton

  69. stone says:

    Great website!
    Thanks for you work.

  70. Franklin says:

    Can you please tell me how to find HILBERT transform from a given complex envelope and also the solution for the following example.

    My question is as follows :

    1)The complex envelope of a signal s( t ) with respect to f0 = 50 Hz is sin ( πt )/(πt).Find the complex envelope of Z(t)= s(t-0.01) with respect to 50HZ

    • Profile photo of Charan L. Charan L. says:

      The first signal is a perfect passband filter centered at 50 Hz. A .01 sec time shift in this signal is equivalent to as half Hz frequency shift in the envelope of the signal or a phase shift of pi.

      • Franklin says:

        The given first signal sin(πt)/(πt) is the complex envelope of the s(t).So i think the approach to that question is to first find the original signal s(t) and then find the complex envelope of the delayed signal.
        I was able to find the original signal as s(t)=square root of 2 multiplied by
        cos(100πt)(sin(πt)/(πt)) But i was not able to find the complex envelope of the delayed signal.
        Can you please help me in finding the complex envelope of the delayed signal.

  71. Vineet G. says:

    Hey,Charan! I can’t thank you enough for these tutorials.They have just increased my liking for the subject.I read this tutorial and this doubt is bothering me.

    For generating a QPSK signal, we used 2 baseband signal(I and Q) with 2 levels(+1,-1),multiplied it with 2 quadrature carriers,and got a signal with four distinct symbols. So,the question is,can we have only one baseband signal with 4 different levels and multiply it with a single carrier? Wouldn’t that,too,give us the same signal? Obviously,the baseband processing required would be more complex to have 4 levels.Is that the reason we don’t do it?

    Thank you.

    • Profile photo of Charan L. Charan L. says:

      Yes, it can be done but such a signal would not be a QPSK signal. It would have different amplitudes for th symbols. All four QPSK symbols have the same amplitude, only the phase if different. The advantage is that this signal is what is called a constant-envelope signal. This type of signal is immune to amplitude-based nonlinearities. AS such QPSK is signal created by the two I and Q signals is a much preferred signal than one created as a four level signal. Now a 16QAM signal is similar in idea to what you are talking about but again, it also has a I and Q component.

      The other issue is the speed. It is so much easier to take a single carrier source, slow the symbol rate and operate in parallel on two signals at half the speed than working on just the real signal.

      Charan Langton

  72. Arthur Gray says:

    My professor recommended your site and thank goodness I saved all her suggested reading. I’m a nerd at heart and would to say thank you for tutorials. Have a blessed day.

  73. Arthur Gray says:

    Oops. I meant to say I would like to say thank you for your tutorials, Mam. Pardon syntax. I know better.

  74. mary says:

    thanks alot

  75. Henry says:

    Hi! Do you have a idea how to design a root-raised cosine filter band-pass? I didn’t find a design tool on the web. There are several pages for low-pass variant but not for band-pass type in a OpAmp design.
    Is this something secret?

    Thank you!

    • Profile photo of Charan L. Charan L. says:

      The process applies only at lowpass. Which is to say only to the symbol shape which is presumed to be a lowpass signal.
      It has two roles, one is pulse shaping and the other is filtering so you can see that it is doing both functions, one in time domain and the other in frequency domain.

      It is a slower process when done in time domain (lowpass) and this is how it is done.
      Usually upconverting is the last process you want to do before transmitting and you do not want to do much signal processing after that point other than frequency domain filtering.

      Mathematically of course you can apply the RRC any where, it is just a multiplication by a shaping function at a particular symbol rate.
      You can try that in Matlab. Take a square pulse, multiply it by a carrier and the multiply it by the shaping function. Do the FFT, the baseband shape is shifted to a carrier frequency, thats all.

      But in hardware a passband RRC that would mean that we would have apply it now in the frequency domain and that is not nearly as practical as doing it in time domain.

      Charan Langton

      • Henry says:

        Thank you Charan! Please drop me a PM. I will then send you an example of a time-domain RRCF band-pass. So you can see what I mean and try to simulate.

        • Henry says:

          Hi Charan!

          I sent you the answer PM but your email provider confuses to pass the mail because of SPAM consideration. Even another sending email address shows the same effect.

          You can read the PM here including attached files:

          And please unlock my email adress.


  76. shid says:

    Can you explain more clearly about peak to average power ratio in matrix persepctive or other ?

  77. Just wanted to offer a sincere thanks for going to the trouble of putting together such a great site. You have a gift of making complex concepts easier to understand. This is a great use of the internet.
    Best regards. Jim

  78. Damoon says:

    Dear Charan

    At first thanks for really helpful tutorial. I have a question:
    when we use guard interval our goal is protection, as I understood from tutorial we do it for each
    sub-carrier. Imagine we have c1, c2, c3 and c4 as carriers. The issue of delay is between for example c1 and c2 inside of one composite OFDM signa? or between c1 and the delayed version of next symbol which is transmitted by c1? In tutorial you said symbol 0 and symbol 1, symbol 0 , so both of them are from same carrier?
    Thanks in advance

    • Profile photo of Charan L. Charan L. says:

      The delay comes not between each of the symbol on the subcarriers but between adjacent composite symbols.

      Assume that time is i = 1. So we have symbosl s11, s21, s31, s41, wehre first index stands for the subcarrier and the second for time. These are then multiplied by carriers and we get

      s11xc1, s12xc2, s13xc3, s14xc4. We add these and we get the composite symbol for time 1.
      This is where we add the time delay or the cyclic prefix.


      In the next time interval, we have


      or in time domain, we are transmitting;

      s11c1+s12c2+s13c3+s14c4+ (1/8(s11c1+s12c2+s13c3+s14c4)) + s21c1+s22c2+s23c3+s24c4+(1/8(s21c1+s22c2+s23c3+s24c4)) + ….

      So the delay is between composite symbols. IN a real system there are 2000 of these.

      Charan Langton

  79. Damoon says:

    Many thanks for your reply. So is below conclusion true:
    delay is between each of sij*cj and s(i+1)j*cj (i stands for time and j for carrier)? and in reality we add guard interval to whole composite signal and because it’s a linear comibination it goes to each of the sij*cj and s(i+1)j*cj?

    • Charan says:

      Yes, that is correct. The sum is linear bcause the c

    • Charan says:

      Yes, that is correct. The sum is linear because the subcarriers are orthogonal to each other. So each composite symbol is unique because it is adding about 2000 modulated (subcarriers multiplied bit).
      The cyclic prefix is sualy about a 1/8 of the composite symbol, replicated and pasted at the end of the symbol.


  80. Damoon says:

    Another question, we increase the duration of symbols to achieve less bandwidth in frequency domain(subcarriers equal frequency). Then we are able to divide main bandwidth to for example 2000 subcarriers which each of them has the same width e.g. deltaF. I faced with this formula :
    Tsym=(Number of subcarriers e.g. 1024)*ld(M)* Tb(duration of one bit)
    where ld(M)=logbase2(M)=m(number of bits which depends one modulation scheme)
    and this Tsym should be the same for all of subcarriers and also the composite signal
    two questions that I couldn’t give them answer:
    1)if we use different modulation schemes(QPSK,16QAM,64QAM) for different subcarriers(like what happens in LTE)so du to this formula how can they have the same pulse duration?

    2) In implementation where and how this increase in pulse duration happens?

    Thanks for your attention

  81. Charan says:

    1. For all these modulations, the symbol time is exactly the same. Only bits per symbol are different. So lets say you have three subcarriers each with

    c1 -> QPSK
    c2 -> 16QAM
    c3 -> 64QAM

    then carrier one will have a two level signal (assuming complex carrier), c2 will have a 4 level signal and 64 will have 8 level signal. But the symbol duration for each must be the same otherwise you can not make OFDM work.

    I am not sure what this formula is.

    Symbol rate is determined by the subcarrier spacing. It is equal to spacing times 2, at most.

    So total Rs = Num of subcarriers * 2*spacing

    Bit rate if all modulation is same is the M times that.

    If subcarrier spacing is 1 Khz, then Total Rs = 1024*1000*2

    You would then reduce this by the cyclic prefix and pulse shaping.

    All this happens in the IFFT block at the transmitter. If pulse shaping is used, it is applied after the composite symbol is created.

    Charan Langton

  82. Henry says:

    Hello Charan –

    Did you read the reply? I sent comcast an unblock message.
    If you don’t like to email with me just say it. I like to be informed.

    regards –

    • Profile photo of Charan L. Charan L. says:

      Hi Henry, I did get an email from you but what you sent I can not read.


      • Henry says:

        Hi Charan –

        What did you mean with got email? The content of the mentioned web-link? That is a plain-email format every local email reader can read. Anyway, I added it as a text-file on this link:


  83. ella says:

    Hi Charan, i had a question about “all about modulation part2” which i coudnt find it in the list of tutorials, there youve mentioned that adding noise of one half of difference between the two discriminating amplitudes, will make the error, but using this amount of noise in the expression, doesnt change for example 1 to 0, it will be great if you could explain it for me!
    thanks a lot for all great tutorials

  84. ella says:

    if there is any thing else to read and finding out let me know please

  85. I really enjoyed the simplicity and fun part of your writing style. I re-learnt a lot of things about DSP.

  86. Antriksh says:

    I and my students are very thankful to you Charan for your tutorials and sincere efforts to make the tutorials easy and quick explanatory.especially your tutorial on Viterbi has helped me a lot to understand and teach precisely .
    Hope to see some book on Communication soon.

  87. Rao says:

    Great Website LOVE IT!

  88. Karthik Ram KV says:

    Hi Charan,
    Your tutorial on OFDM was simply superb. A complex concept is explained very simple with comparisons to single truck shipment and multi truck shipment analogies and also water flow in faucet and shower analogies…. Hats off man…. Thanks a lot…

  89. Jose Chavez says:

    Very Nice job, I am from Argentina, and I am studying Fourier.
    This job of great help to understand Fourier
    Many Thanks

  90. John says:

    I recently just found your tutorials and looking forward to reading it.

    I’m amazed at how simply and clearly you explained this, with math! Thank you!

  91. Ade says:

    Great!. I love and like it.

  92. abdalkhalik says:

    Thank u very much, this is very useful site

    i have an interest in Coding Theory and i’m currently studying polar coding however i cannot find any book that talks about polar coding

    does any any know any book that can help me???

    thank u

  93. David Lee says:

    Hi. I seem to be having some issues where the right side of some figures and equations seem to be cut-off. I used Chrome and Internet Explorer thinking that maybe the browsers rendered the .pdf incorrectly, but this cut-off appears on both copies.

    Anyone else having this issue?

  94. David Lee says:

    Hello Charan,

    I love this website. I just finished my MSEE project, and your tutorials on MIMO and OFDM were both extremely helpful in learning these topics (especially since my program isn’t up to date and doesn’t quite cover these topics).

    Just a note: On tutorial 10 (TWTAs), the right side of some figures and equations seem to “end early.”

    Thanks for your using your free time to teach the next and existing generations of comm engineers 🙂

  95. Maruthi Prasad B N says:

    Good analogy towards the complex concepts…..!!
    found it worth sharing..
    thank u…

  96. aashika says:

    the notes given are superb and very helpful to get an idea about the concept .Thank u

  97. rggg says:

    I wasn’t able to understand OFDM , until I came across the tutorial here. And I just can’t remain quiet without thanking you. This is the best and most clearly written resource on OFDM that I’ve come across till now. Especially the part which explains why we can use IFFT on a time domain signal cleared a lot of my confusions.

    Thank you very much for this great tutorial and others. Wish you a lot of success.

  98. Michael Gutmann says:

    Dear Ms. Charan Langton,

    I want to thank you for this website. I searched long and hard on the web for a straight-forward explanation of the Hilbert Transform and I found many mathematics articles which began by stating what an important transform it is but without any explanation of its application. Your tutorial on the subject here was very clear and gave the reader both a basic understanding as well as a good level of the mathematics. Your concrete example at the end of the tutorial, where you show all the steps to using the transform with the function f(t)=4cos2t-6sin3t was brilliant!

    Your have a real gift for taking a very complex subject and explaining it, both at an overview level and with a level of mathematics that does not dumb-down the subject but provides excellent depth. I hope and wish your material is getting disseminated widely because it is rare (almost impossible?) to find this kind of technical writing elsewhere.

    I will say that many of the figures and equations come across somewhat mangled when viewed with the Chrome browser. I don’t know if there’s anything that can be done about that. Of course, what is really needed is for you to publish your material in textbook form!

    Incidentally, I did an search under your name to see if you had published a textbook with the Comms material at this site and found there were a number of elementary math books (verbal texts?) with yourself as the co-author. That was surprising to see, based on the sophistication of your Comms site here.

    In any case, thank you once again for your wonderful contribution and making it available on the net. I look forward to reading many more of your tutorials here.

    Michael Gutmann
    Instructor, Dept. of Math
    University of Portland
    Portland, Oregon

  99. joel lason says:

    there is an error in the H matrix illustration related to the rows in the top part of the matrix:

    is [111; 011; 0101; 011] should be [111; 011; 0101; 110]

  100. joel lason says:

    this is in relation to the [7,4] definition. and in the above comment I meant that

    [111; 011; 101; 011] the Most significant 0 in the third row is superfluous .

  101. Cindy says:

    Thank you very much for the tutorials.

    I think that in Figure 1, it should be a positive sine; in Figure 2, it should be a negative sine.

  102. Ali says:

    It’s great.

  103. Zefyr says:

    First off, I really appreciate the effort and lucidity with which these topics have been addressed. It really helps to get a physical feel for such mathematical topics which is important.
    I have a question about EVDO. From what I’ve read on the forward link, this uses TDM. There also seems to be some spread spectrum but I do not understand it.But is there a spreading gain also?
    I don’t understand for example how the 38.4 Kbps rate using config of (1024,16,1024) is generated. The generic transmit block diagram shows the incoming data bits being split into 16 streams each at 76 ksym/sec and then each spread by a factor of 16 and then summed. Is this spreading or just 16-ary Walsh coding?
    So how do I know what the spreading gain for the 38.4 Kbps stream is versus a higher bit rate stream. If incoming streams are always at 1.228 Mcps/sec and then split into 16 streams and spread- is this really any spreading gain??
    Also how is a single packet sent over 16 slots. Is it just repetition coding- that does not seem like it would provide the negative SNRs.

  104. hunter says:

    please elaborate how have you come up with mathematical expressions of summation with 1/2pi.i really can’t understand

  105. skalpa says:


    The tutorials are very nice and useful.

    I have one request. If you could add appropriate matlab code to implement a concept and test, it will be really helpful while reading the concepts.


    • Profile photo of Charan L. Charan L. says:

      I have started to do that with the newer topics. Previously I was using Synopsys SPW for which there is no code since it is a object oriented simulation program. Now for many of them I am using Matlab so I have indeed started to add the code.

      Charan Langton

  106. Kris says:


    I don’t know whether this question can be asked here. But kinldy guide me, if you know the answer

    I have a 3 node system, with nodes in a line and the center node is taken as receiver equidistant to the other nodes.

    My objective is to get BER at receiver in Rayleigh fading channel, with one of the nodes as interferer to the other node’s transmission and BPSK modulation is used.

    With fading channel coefficients known at receiver as h1, h2, I tried to get BER using threshold detection as

    Assuming source transmits +1, BER is

    P(received signal<0)=P(|h1|+|h2|i+n<0) {where i:signal from interferer (+1, -1)};
    n: AWGN
    =P(n<-|h1|-|h2| given i=+1)*P(i=+1)+P(n<-|h1|+|h2| given i=-1)*P(i=-1)

    Finally I averaged over |h1| and |h2|.

    Then it is observed that BER with fading is lower than Ber without fading for high values of SNR.

    Kindly let me know whether this analysis is correct.

    Thanks in advance,


    • Profile photo of Charan L. Charan L. says:

      Hi Kris,

      Not clear if you are going a simulation or a closed form solution.
      You will find the comparison of the closed form BER for a fading vs. a AWGN channel in my MIMO tutorial.
      And yes, you should get a higher BER for for same SNR under a fading channel.
      So you have some issue in your analysis.

      Charan Langton

  107. Jorge says:

    Hi Charan,

    Awesome tutorials. I’ve been working on designing an OFDM scheme for a a channel. We were told to assume that a channel bandwidth of 1MHZ is available.

    The channel has the following multipath profile:
    t(us) 0 1 2 3 4 6
    P(db) 0 -10 -20 -0 -20 -20

    I am asked to determine the required frequency spacing for the subcarriers such that each subchannel experiences a flat channel. Determine the resulting OFDM symbol period and Cyclic prefix to ensure no ISI among OFDM symbol.

    So far this is what I’ve done:

    my delay spread is : 1.49us
    Bc0.9: 13.3 KHz, therefore my subcarrier frequency spacing is 13 KHz.
    Number of subcarriers : 76.92
    My OFDM symbol period is: 76.92us

    when it comes to finding out the CP, i’m not sure if I can assume it to be 5us.

    Am I on the right track here or really off it?


    • Profile photo of Charan L. Charan L. says:

      Your CP needs to be just a little greater than your delay spread.


      • Jorge says:

        Thanks a lot Charan, your reply brought me back to life.

        I actually thought that CP needed to be greater than the second moment of the power delay. It makes more sense now.

        Can I conclude my required frequency spacing for the sub-carriers to be 13 KHz ( as I got a Bc0.9= 13.3 KHz)and a a symbol period of 76.92us, so that each sub-channel will experience a flat channel?

        Thanks for your help and advice.

        • Charan says:

          hi Jorge, the frequency spacing should be more than the coherence bandwidth. Can you calculate that and see if it is near the 13 kHz. The other thing is that you need a power of two number of carriers so if your total bandwidth divided by the 13 kHz is not the power of 2 number, then you will have to zero pad those extra carriers and can not count them as carrying data.


          • Jorge says:

            Hi Charan,

            I’ve been working on calculating that frequency spacing. I came across an info which states that the sub-carrier spacing is the inverse of the symbol time less the guard period; and that the guard time must be 2-4 times the delay spread. Is this accurate?

            Btw, I thought that for flat fading the sub-carrier spacing needed to be below than the coherence bandwidth.

            Anyway, I’m a bit confused, but i’ll keep trying to calculate that sub-carrier spacing.


          • Profile photo of Charan L. Charan L. says:

            I am going to assume that this is the max delay spread. Now the coherence BW is 1/DS = 666666 Hz. (I had a 2pi factor before, ignore) This is less than your bandwidth of 1 Mhz, so the channel will experience fading, but not a lot.

            So any spacing for the sub-carriers less than this amount will do.
            The number of carriers will depend on the standard you want to use. If you use 802.11, and you choose 48 carriers, this will give you a spacing of 20.8Khz.
            For 48 carriers, we get Tn = 48mus.
            Cyclic prefix we can set as 1/8 of above or 6 mus.
            Symbol time would be 48 + 6 = 54 mus.
            Throughput is 1 msps minus the CP overhead.


  108. Charan says:

    Coherence bandwidth relates more to total symbol rate. It is directly related to delay spread.
    2pi/d. For the delay spread, you do not need four times the delay spread, that would be adding a lot extra overhead. No more than x2 would be my choice.
    Yes, the spacing needs to be less, not more than coherence bandwidth not more. I said it wrong.

    Your coherence BW comes to about 4 MHz, but you are allocated 1 MHz. So you are limited in spacing by how much data you want to transmit. The maximum is 1 Msps which would require app. 1 Hz spacing and 1 kHz of data would need app 1 kHz spacing. (minus the CP overhead in each case). Hope this helps.

    Are you using a standard OFDM or can you create anything you want?

    Charan Langton

    • Jorge says:

      Thanks again Charan,

      I’m using standard OFDM. All I have to work with is the multipath profile, which is :

      t(us) 0 1 2 3 4 6
      P(t)(dB) 0 -10 -20 0 -20 -20

      And of course, a channel bandwidth of 1 MHz available. I began by determining the required spacing for the subcarriers such that each subchannel experiences a flat channel.

      For this I calculated the first moment of the power delay profile (taking into account the multipath profile), which came to 1.51us. Then I calculated the second moment of the power delay profile, which resulted in: 4.53us.

      Having these results I then estimated the delay spread, which resulted in: 1.5us. Then, my coherence bandwidth: BC0.9: 13.3 KHz (and BC0.5: 133.3 KHz). I only took into account BC0.9, hence I assumed a frequency spacing of 13 KHz.

      When you say that my coherence bandwidth comes to 4Mhz, is there something I’m miscalculating? or not seeing when applying the formula?

      I know asking this may be silly, but I rather ask than regret later. Sorry for dragging this issue.

      Thanks a lot Charan.

      • Charles says:

        By using Wc:2pi/d you’ll get 4.18 Mhz, around 4Mhz, but When using Bc0.9 formula according to you multipath the result is different. I’m fairly new to OFDMA, so that’s all I can do to help you. Wait to c what Charan has to say about it.

        Sorry Pal.

    • vishal says:

      i studied bandwidth so much that i dont even know what it is anymore!
      for instance 1.laser has higher bandwidth than led’s
      2.optical fibre bandwidth is 10^20 hz something ,which has many channels than copper wire
      3.copper wire and optical fibre are just single conduit ,how can they have may channels .
      these are silly questions but i studied so much on this ,,, i am not able to get insight on this
      please clear my doubts

      • Profile photo of Charan L. Charan L. says:

        It helps to think of bandwidth as lanes with finite widths on a freeway. Let’s say that the freeway is 500 feet wide. We have six lanes, one on the left edge is narrow and only 20 feet wide. Then we have a wide lane which is 150 feet wide, then we have three more at 100 feet wide. Then we have one at the right edge which is also 20 ft wide. The total space taken up by these lanes is 20+150+3(100)+30 = 500. Now give these lanes name.
        Lane 1: 0 – 20 ft, A Band
        Lane 2 – 20 – 170 ft, B Band
        lane 3 – 170 – 270, C Band
        Lane 4 – 270 – 370 ft, D Band
        Lane 5 – 370 – 470 ft, E Band
        Lane 6 – 470 – 500 Ft, F Band

        The freeway is the electromagnetic spectrum, for 0 Hz to infinity Hz. We divide it into lanes of certain frequency band and those are called bands. Each media is capable of operating in only a few of these bands. Energy can travel in wires only in the lower bands, wireless can operate in pretty much all. The regulatory bodies control at which frequency you can transmit and assign you a small part of a band, and that is the bandwidth that you are assigned. You as an operator can then further subdivide the allowed band if you want, or use all in one channel.
        For example, a satellite operator is allowed to use a band of 12 GHz to 13 GHz for downlink. He can take this 1000 MHz and then subdivide into ten 100 MHz channels. Then he would design his system for 100 MHz (often called transponders) and then place these like lanes on a freeway next to each other separated by 100 MHz center frequency. Each of these sub-bands then has a center frequency and a bandwidth, which is of course 100 MHz, the width.

        A media has a bandwidth “capability” but then there is the bandwidth that you are allowed to use. So one is the characteristic of the transmission media and the other is where you are allowed to operate.

        The allowed frequencies are allocation by the ITU and best thought of as lanes on a road where you may drive and the media capability is best thought of as the with of the car that travels in that lane. The car with width is the media capability and it is always less than the allowed band in which it operates.

        In this picture the colored bands are the allowed ranges.

        Charan Langton

  109. Jay C says:

    Great piece of history thanks or sharing!

  110. Profile photo of Charan L. Charan L. says:

    What is the link, can you post it here, please.

  111. Anthony P. Volta Jr. says:

    I think your tutorials are great. They’ve helped me to understand the concept much more clearer; therefore, improving my ability to explain complex concepts at a more laymen’s level.

  112. shashibhushan says:


  113. John says:

    Great tutorial. I’m trying to understand more with this tutorial. Can you explain a little further how you got equation 14 (Maybe, I need to find out where Ref. 1 is) and I don’t see how you substituted those equations into equation 13 to get equation 15.

    Also, I’m having a hard time understanding how you got modulation index of 15 on page 12 with the FM signal FCC example. How you got 5 to be the denominator?

    Thanks you!

    • Jeff Patterson says:

      In Fig. 6, the integrator and differentiator blocks are reversed. The description above is correct. The description in the caption matches the figure which is incorrect.

  114. skalpa says:


    I am new to DSP and I was trying to understand ISI and reading your document on ISI

    Can you kindly clarify the following?

    The frequency domain representation ( for low pass) as indicated in the document, has values between -8 to +8. What to the values on x axis ( -8 to +8 ) represent, if it is frequency, what does a negative value indicate?

    My understanding of the diagram is that, it indicates the amplitudes for various frequency components of the square pulse. Am I right? If so, what does the maximum amplitude at frequency 0 indicate?

    Can you kindly explain?


  115. josephat says:

    i will be glad to see the analysis of blind channel equalization algorithms, especially adaptive one basing on stochastic gradient methods. honestly i have to thank you a lot for your support in academic success.

  116. Profile photo of Charan L. Charan L. says:

    Hi Kalpa,

    The numbers represent the complex exponential and by proxy frequency. Yes, I know that sounds even more confusing than what you asked. But please read the Fourier Transform tutorials carefully and you will begin to understand the issue of negative frequency. Its a hard thing to explain in one line. I can do it flippantly and say that frequency is actually a vector and has a direction just like velocity, which is a scalar as well a vector with a direction. But that is only part of the story.

    Charan Langton

  117. Muhammad Khurram Kiyani says:

    As per my understanding Ux should not come in equation 1.11 because this equation depicts variance with zero mean.

  118. skalpa says:

    Hi Charan

    Thanks for your reply. I am new to this domain. I am trying to read fundamentals. So I understand that to get to the depths, it will take sometime.

    I am trying to understand the receiver side of the communication. In particular I want to understand concepts behind frequency Offset , Phase Offset estimation and correction and Timing error and implement the same . Can you give me some good pointers to these ?


  119. Feng Ouyang says:

    I just came across the tutorial collection and would like to express my gratitude and support to your cause. I am an engineer in data communications and am preparing a course on digital communications systems. I look forward to benefiting from your work.

    If there is any way I can help, please let me know.

    Thank you again for your inspiration and effort!

    Feng Ouyang

  120. Gopal Sarkar says:

    I like this webpage

  121. Feng Ouyang says:


    I finished reading part 1 and part 2 of the Turbo code tutorial. It is the most useful material I have ever found. You really spent the effort to understand the details, unlike some text books, which just blindly copies other books. Thanks again!

    I have a few questions and comments.

    1. On page 3, you said: “According to Shannon, the ultimate code would be one where a message is sent infinite times, each time shuffled randomly”. Would you like to elaborate how you inferred this from Shannon’s paper (or somewhere else)? I just read Shannon’s paper recently and did not get that revelation. Also, if you repeat a message infinite times, wouldn’t your coding rate go to zero?

    2.On page 7, last paragraph, “for a M-PSK, there would be 3N bits…” Should it be 8-PSK? Otherwise, I don’t understand where the 3N come from.

    3. On page 9 after equation (1.1), the text says “This is a sensitive metric, quite a bit better…”. Is that a typo from “sensible”? Otherwise, could you explain what is the metric sensitive to?

    4. On page 10, second to the last paragraph, it seems “Fig. 8” should be “Fig. 9”.

    5. On page 11, there is a “reference source not found” error.

    6. On page 16, you spent quite some space to discuss how to get P(u_k) from L(u_k). However, I am not clear on where this information is used. It seems in the iteration process, we only care about L_e. Only at the final output we need to convert L(u_k) to P(u_k). And even that is often unnecessary. L(u_k) itself is a good soft decision metric. And if we need hard decision, we just look at its sign. Am I missing some points here?

    7. In figure 1, you have the notation that y_k^{i,p} representing the parity bits in the code, where i runs from 1 to n, indicating the n rate-1 encoders. Later, in equation (1.22) and onward, there is a summation of i=2 to q. Is this also summing over the encoders, or the parity bits of the same encoder (which is rate 1/q then)?

    8. On page 12, when discussing how you can divide the y sequence into three parts and why you can drop some dependencies in the probability expressions, you might want to mention that this is the property of a causal code and a memory-less channel.

    9. This is probably related to question 6. I read many books and papers but still don’t have a good justification of using L_e as feedback a priori probability. Why don’t we use the whole L instead, for that purpose? Is that an ad hoc choice or is there a deeper reason behind?

    Thanks again for your contribution! It’s a great pleasure reading your tutorial. If you find it easier to discuss in email, I’d be happy to do it, as well.

    By the way, I cannot find your tutorial on LDPC. I hope you will have it soon. 🙂


    • Profile photo of Charan L. Charan L. says:


      Thanks for all these comments. I am trying to finish up a book so don’t have time to go over this subject.
      I can send you the word document, perhaps you can mark your edits there for me.
      It will be a lot easier for me to understand your comments that way.


  122. Lalan says:

    Great site! …extremely useful information. Thx. Lalan

  123. Darren O'Connor says:

    Thank you so much for the effort you have put in to make these topics so approachable. Your section on modulation (All About Modulation Part 1) is the most understandable description of the topic I have found. I wonder if you would be open to adding a short section showing the spectrum of, for example, QPSK modulation, being the convolution of the baseband and carrier signals. I would be happy to help if you find your time too committed at this time. And if you want to leave well enough alone, it is still a great explanation of the topic!

  124. girija says:

    Tutorials are really excellent. But few are corrupted. How about replacing them?

    The corrupted files are i)Tutorial 14 ii) Tutorial 24a

    I would be thankful to you if you can mail those two files.

  125. Husam Fahmi says:

    I am currently doing my Master’s in telecommunication, and while I am hardly a DSP guy, OFDM is clearly important in everything. I have really enjoyed your simple (and example-supported) explanation, and wanted to thank you for all your effort. The tutorial definitely goes in my “background folder” if ever need to refresh my memory!

    Best Regards

  126. Haymnoof says:

    Many thanks for your helpful notes. I learnt a lot from it.

  127. Hasan says:

    Hi Charan,

    This website is awesome. You write the tutorial in such style that a beginner like me can understand the concept. You did a great job. I really want to say thank you for what you are doing.

    I am also looking for LDPC Code tutorial. But unfortunately I did not find it in here. Could you please write a tutorial about LDPC Coding and Decoding? I really like your explanation style. I hope you grant my request.

    Thank you again.

    Best Regard,

  128. Lukas says:


    Very nice tutorial 🙂
    When taking a look at figure 8 I see phase shifting at points X=160 and X=190 although binary value doesn’t change – why?

    Best Regards, Lukas

    • Profile photo of Charan L. Charan L. says:

      Good catch.

      I think I used a QPSK signal to create these pictures. The QPSK symbols are not on the x-axis so they are not the same as a BPSK signal. I will correct this one of these days.
      The bits and the transitions should line up.


  129. Imran Shaf says:

    Dear Madame
    Good Day

    I am not clear as to how a complex envelop is useful in simulation for low pass as well as modulated signals. Specifically, the explanation given that we no longer need to do simulation at carrier frequencies and just required to do the same at highest frequency of signal, needs clarification

  130. Naveen Manikandan Periasamy says:

    I’m looking for the mathematical expression for Pulse Width Modulation. I believe it is something close to the following,

    Y(t)=X((t/W)+Theta) (Y is modulated signal, X is square pulse, W is width and Theta is phase shift)

    Please correct me if I’m wrong.


  131. Houston Galloway says:

    It’s been 20 years since I needed to delve deeply into these concepts. I’ve been building lasers, imagers, and other photonic devices until recently and was struggling to come back up to speed. Your website and very lucid explanations have helped considerably. I’m so glad I stumbled into it. Thanks for your efforts to educate us all.

  132. Daniel Patiño says:

    I want to say: thank you, your work is extraordinary.

    Best regards.

  133. Kaustubh joshi says:

    Hi Charan,

    I would like to thank you for this information and congratulate you on all the effort you must have taken to provide this information.
    I sincerly thank you again.

  134. sowmiya krishnagopal says:

    hai mam i am doing my BE final year.I am gng to do project on “energy efficiency power adapative spatial diversity” the ppaper wasx published in IEEE .kindly give me an idea how to make changes in this paper mam.

  135. sunil lonare says:

    hey, i am not able to see this tutorial it says file is damaged & could not be repair can u send me on my email or plase upload it once again

  136. Scott Parks says:

    Thank you so much for your site. I am a practising systems engineer, who has to integrte communication systems into larger systems of systems. Your site is invaluable to me for refreshing my understanding of communications concepts and designs, so that I can specify meaningful capabilities when I talk to true communications engineers.

  137. Marijo Nizetic says:

    Concise, but wrong written material about trellis details, in document named: 120 Convolutional coding and Modulation.pdf

  138. Chuck Sampson says:

    Thank you for posting these in-depth, intuitive tutorials. As an experienced engineer I have used them as a refresher for maintaining my understanding of these fundamentals I still use today. You have a unique way of explaining recondite material and making abstract concepts more concrete without losing any meaning or over-simplifying. It looks as though you have the makings of a classic book on communications. I hope you consider writing one.

    • Profile photo of Charan L. Charan L. says:


      Thank you so very much.
      Really appreciate your kind words. I am glad the material is helpful.
      I enjoy writing these but going is slow.
      Thanks again,


  139. Keertana says:

    Hi Charan,

    This tutorial on ofdm has proved to be really really enlightening. I have read a lot of other tutorials but nothing comes close to this. I am writing a thesis on low-power wireless systems and would like to use certain explanations from your tutorial. Would you grant me the permission for the same? I would only be using it to explain OFDM while my thesis is much beyond OFDM. My work only uses the concept of OFDM and goes deep devising techniques for low power wireless communication. Since you have copyrighted your work, it is courtesy to ask you before using it.

    Please get back to me soon.


  140. keerthi says:

    In page 5, it says “However, there is one requirement a carrier must meet: its frequency must be at least two times the highest frequency in the information signal.”

    Shouldn’t it be Sampling frequency for A/D Conversion and its reconstruction? I think it’s been confused with carrier frequency.

  141. nayan sen says:

    thank you for these intuitive tutorials. These really help to get a clearer picture.

  142. Ahmed Touma says:

    before my question I would to ask you very much for your tutorials , my question is about orthogonality that depends on the fundamental frequency , ex : in page 5 in the tutorial in case of fundamental frequency = .5 Hz , its harmonics are orthogonal to each other , but in case of fundamental frequency = .875 Hz , its harmonics are not orthogonal , why ?

    and thank you again for your effort and waiting for you answer

    Ahmed Touma

    • Profile photo of Charan L. Charan L. says:

      Harmonics of 0.5 Hz are 1 x .5, 2x.5, 3x.5, … nx.5, all integer multiples.

      .875 is not a harmonics of 0.5 Hz..
      Its its harmoics are all integer multiples of it, or 2x.875, 3x.875 etc.

      Charan Langton

      • Ahmed Touma says:

        yes but my question was that .875 and its harmonics which is 2x.875 , .. etc are not orthogonal to each other

        • Profile photo of Charan L. Charan L. says:

          fc = .875;
          wc = 2*pi*fc;
          t = 0: .01: 1.1429;
          n = 4;
          m = 7;
          sig = cos(m*wc*t).*cos(n*wc*t)
          %sig = cos(m*wc*t);
          plot(t, sig)
          trapz(t, sig)

          Try this. Not sure why you are saying they are not orthogonal?


          • Ahmed Touma says:

            I said that because I have computed that intergral : cos((7/4)*pei*t)*cos((7/2)*pei*t) interval from 0 to 2*pei and the result was not zero but was .003

  143. Profile photo of Charan L. Charan L. says:

    That’s because, it is using a trapezoidal approximation for integration. So the answer may not be identically 0.0.


  144. Profile photo of Charan L. Charan L. says:

    If you solve the equation and do a closed from solution, you should get a zero for cases such as

    cos(nwt) x cos(mwt) ] over a period of 1/w.


    • Ahmed Touma says:

      ok , I will try to understand that idea and thank you so much again for your tutorial because it is simple and very useful .

      Ahmed Touma

  145. Charan Langton says:

    I think it is because of the approximation if you did it in Matlab.
    Decrease the time resolution and see if the number gets smaller. That would be a test.


  146. Ahmed Touma says:

    When the delay spread is less than one symbol why we get flat fading ? , and why we get frequency-selective in case of larger than one symbol ?

  147. Liu says:

    Really appreciate your work, pretty helpful. The most useful material I found on the internet

  148. Oluwole Oyetoke says:

    Your tutorials are really awesome, i must confess. They have really been my guiding light so far on my project.

    Please i would like to ask for your recommendation as to hat sampling rate you would recommend me to use for a 8hz square wave. I used 2048 samples, and got the result you referred to as been caused by oversampling in your tutorial. What do you suggest I use. Thanks

    • Profile photo of Charan L. Charan L. says:

      In most case 8 to 16 times the max signal frequency is good enough for sampling rate.

      So if your square pulse is at 8 Hz, then 8×16 = 128 is more than enough.
      Even 64 Hz would be fine.


  149. Ramamurthy says:

    Hello Charan,

    I have referred your tutorial on MAP turbo decoding algorithm, it guides the engineers who implements the algorithm and have not found anywhere such a clear is great work. Request you to update the tutorial on Max-log-Map turbo decoding algorithm also, since it is difficult to represent the data in fixed point for MAP decoding algorithm.

    Best Regards

    • Profile photo of Charan L. Charan L. says:

      Thanks Ramamurthy.

      I remember, it was a tough one to do.
      I had someone point some errors but have not had time to update.
      Thank you for you comment.

  150. one of the best www-sites.

  151. Oluwole Oyetoke says:

    I have the FFT of my ideal filter impulse response and the FFT of my sampled baseband signal. Wha do i do next, in order to filter? Should i multiply the imaginary parts of the FFTs together and then plot in time domain?

  152. Srikanth says:

    I am little confused over few things. Can you please clarify them:
    1.Do we require pulse shaping in passband transmission (as analog symbols (sinsoids) will be transmitted over channel instead of pulses).
    2.Will ISI occur in a case we are transmitting at higher rates in bandlimited channel but not a multipath. Here if we are doing passband transmission then what will the possible cause for ISI.

    S Srikanth

    • Profile photo of Charan L. Charan L. says:

      1. pulse shaping occurs only at baseband, before modulation.

      2. ISI can and does occur in all types of channels, AWGN, bandwidth limited, filtered, non-linear, multipath etc.

      • srikanth says:

        Hi Charan,
        Can you please elaborate on your first point. My question is whether passband transmission require pulse shaping or not. I got this doubt because once we modulate(passband) we are sending high frequency sinusoid that represent the symbol and there is no question of transmitting pulses. Please clarify.
        S Srikanth

        • Profile photo of Charan L. Charan L. says:

          We never transmit pulses (except in some cases). It is a shaped signal, not a sinusoid. It is a sine wave times the shape. That is all what passband means.
          Yes, most definitely passband has pulse shaping. However keep in mind pulse-shaping is just a nomenclature. There are NO pulses anywhere.
          Charan Langton

          • Srikanth says:

            So transmitting pulse times sinewave will result in ISI, where transmitting shaped signal multiplied by sinewave will not result in ISI. Is this statement right.

            S Srikanth

  153. Zeeshan says:

    i am zeeshan and pursuing master in broadcast technology. sir i got confused how a transport stream get divided in transponder bandwidth in DVB-S.

    • Profile photo of Charan L. Charan L. says:

      Its usually a bit stream and it is demultiplxed, which is a sort of a decimating process. I am not sure of your question, so thats that best I can do.

      Charan Langton

  154. Profile photo of Charan L. Charan L. says:

    No pulses are transmitted ( except for UWB) in a usual system. We only transit symbols. Each sysmbol in a sinusoid looks like a piece of the sing wave with at a particular stating phase. This is multiplied by a “shape”. This is called the process of pulse shaping. BUT there is no actual pulse.

    This is cal called baseband.

    Now if we multiply this shape by a higher frequency carrier, then it becomes a passband signal because it has now “passed” into a higher frequency region, its frequency from half in the negative region has now passed to all positive and has doubled.

    If you have Matlab, it is best to try this or do it in Excel. A picture is worth a thousand words.

    Charan Langton

  155. Profile photo of Charan L. Charan L. says:

    No pulses are transmitted ( except for UWB) in a usual system. We only transit symbols. Each sysmbol in a sinusoid that looks like a piece of the sine wave with at a particular starting phase. This is multiplied by a “shape”. This is called the process of pulse shaping. BUT there is no actual pulse.

    This is called baseband.

    Now if we multiply this shape by a higher frequency carrier, then it becomes a passband signal because it has now “passed” into a higher frequency region, its frequency from half in the negative region has now passed to all positive and has doubled.

    If you have Matlab, it is best to try this or do it in Excel. A picture is worth a thousand words.

    Charan Langton

  156. Hello,

    This May, the Institution of Engineering and Technology will release a publication that I feel will be of interest to you entitled Digital Communications: Principles and Systems.

    Digital Communications: Principles and Systems provides a thorough grounding in digital communications using an innovative engineering-first approach to build a nonmathematical overview covering building blocks, signal processing tasks, general features and design considerations. Topics covered include transmission channels, source coding, digital baseband transmission, digital modulation, noise impact in digital transmission, error control coding, advanced signal enhancement techniques for wireless channels and digital transmission link analysis and design.

    The reader is given an insight into the engineering concept and the underlying physical considerations, a clear appreciation of the parameters involved, and an understanding of the interplay of these parameters. The book includes several unpublished original derivations, new insights and alternative approaches that make the understanding of key topics and their application much easier.

    Digital communications: Principles and Systems is an ideal textbook for those who wish to:
    • gain a thorough understanding of the core principles;
    • undertake digital communication systems analysis;
    • design and computer simulations;
    • deal with specialized applications;
    • keep up to date with advances in the technology.
    Topics covered include:
    • overview of digital communication
    • linear channels and systems
    • nonlinear systems
    • sampling of baseband and band-pass signals
    • quantization and PCM
    • source coding and lossless data compression
    • line codes
    • transmission through band-limited AWGN channels
    • transmitted digital signals
    • noise impact in digital transmission
    • error control coding
    • digital transmission link analysis and design
    About the Author:
    Ifiok Otung is a Chartered Engineer with broad and international experience of research and teaching at various universities in Europe and Africa. He has previously worked as a consultant for the UK Electrical and Electronic Engineering Assessment Network and the Engineering Subject Centre of the UK Higher Education Academy. He has authored over 110 publications, and is a regular reviewer of technical articles and textbooks for some of the world’s leading academic publishers. Ifiok Otung is currently Professor of Satellite Communications at the University of Glamorgan, where he teaches MSc courses in Satellite, Mobile and Digital Communications.

  157. A real pleasure to learn.
    Thank you Miss for this site and the share of your knowledge.

  158. Abhishek says:

    Hi, your website has really helped a lot in understanding of digital communication. Tutorial of raised cosine pulse shaping and isi Are explained in much simple and clear form. Thanks a lot for your efforts.

  159. siddu M.Tech(IIT KHARAGPUR) (Ph.D) says:

    really This website is awesome.

  160. geeta gupta says:

    why intereference is minimum in case of orthogonal signals?

  161. geeta gupta says:

    why intereference is minimum in orthogonal signals?

  162. geeta gupta says:

    why intereference is minimum in orthogonal signals?

  163. kaogula says:

    on the bottom of page 11,A should equals sqrt(2/T),not sqrt(1/T)

  164. Oluwole Oyetoke says:

    Hello, pleasse do you have a good write up also on demodulation just like you have on demodulation.

  165. Benny says:

    Thanks for posting this free tutorial… I myself am just getting into the industry, and TWTA’s are something I’ve had difficulty wrapping my head around. Thanks!

  166. geeta gupta says:

    we were taught in class that INTEGRATION(s1(t)*s2(t))over a time period is zero ,then signals are orthogonal and the interference b/w the signals is minimum when this product is zero.Why so??

  167. geeta gupta says:

    Please elaborate the answer more so dat i can understand it more.

  168. kaogula says:

    Dear Charan,The equations (1.24) and (1.25) on page 19 seem to be strange,but the index of the harmonics n don’t exist in other books.

  169. Panos Papaioannou says:

    Dear Mrs Langton,

    This is a spontaneous email after one of the can’t remember how many times I have visited your website. The material you provide has helped me incredibly. The way you present all these complex topics is compact and clear at the same time. You are a great teacher and I hope you keep providing us with your wonderful tutorials.

    Best Regards,
    Panos Papaioannou

  170. Dave Kelleher says:

    Charan, simlpy the best explanation of modulation techniques I have come across in my 20 years in Broadcast engineering. Others tend to leave out the realisation of the modulators, however your step by step and diagramtic approach is simply magic.


  171. Shobhit says:

    Can u please help me with constellation diagram 3pie/8 shifted 8-psk. how to calculate average value and minimum value of the envelope

  172. Artak says:

    First sentence at the page 7: “If a voice signal is
    on to a carrier, what is the bandwidth
    of the modulated signal? It is still the

    It is usually not the case unless special methods are applied. E.G the bandwidth of simple AM modulated signal is twice the information bandwidth. Theoretically the FM modulated signal bandwidth is infinite (in practice it can be much wider than the information bandwidth)

  173. Artak says:

    At the end of page 7 : “If we add many periodic signals, with different frequencies and phases, the resulting signal is still periodic”.

    It is not always the case: if we add two sinusoidal signals which frequencies are 1KHz and sqrt(2) kHz then the result is not periodic.

  174. HyeongGeun Park says:

    Thank you very much for your effort.
    And I respect you for releasing on internet

  175. shuceb says:

    can yuo plz help me tutorial about carrier frequeny offset

  176. Moganraj M says:

    Your service is a glowing candle from which i get my light called knowledge.

  177. Mudita Chandra says:

    Respected maam,
    Kindly please elaborate how full branch metrics have been calculated in table 7….when I am using the equation to find them…then they are coming different….I m not able to figure out where I am getting wrong….Please reply as soon as possible….

    Thanks and regards

  178. Ashish says:

    A very basic doubt (Please bear w/ me):
    Pg 2: “The process of gathering the amplitudes in specific levels is called quantization”
    Pg 3: “The processing of quantization of the discrete signal is called the A/D conversion”

    1. Then what’s diff between quantization and A/D conversion?
    i.e. discrete signal is available by sampling process. Then represent each sample using specific levels by quantization process. The o/p of this is a digital signal i.e. which step in this whole process should be called quantization vs A/D conversion?

    • Ashish says:

      I think the “sampling the signal” and then its “quantization” should be A/D conversion. Am I correct?

  179. Nkusi Geoffrey says:

    I’m a younger telecommunications engineer and i’m new on this page and will like to be coorperative in this domain. Thank you

  180. s4spartan says:

    Reading your tutorials are like being reborn in the complex communication world, or having a english translator on visit to Mars…Thanks a lot.

  181. srikanth says:

    Hi Charan. Thanks for the content on OFDM which is very easy to understand. I am half way reading it. At the end of 16th page you have written “In reality, the symbol source is continous, so all we are doing is adjusting the starting phase and making the symbol period longer. But nearly all books talk about it as a copy of the tail end.” Can please explain the above content.
    2. Will the addition of CPrefix, convert frequency selective channel to flat fading as symbol time is increasing?


  182. srikanth says:

    “In reality, the symbol source is continuos, so all we are doing is adjusting the starting phase and making the symbol period longer. But nearly all books talk about it as a copy of the tail end”. In this if you meant of changing the phase of sinsoid as shown in Fig25, our OFDM symbol will not be a simple known signal like sinsoid. In which case we cannot change phase. Please explain


    • Edi Ben says:

      I like your tutorial on this topics. I assume each OFDM applications has to decide on a typical value of the delay spread for the channel. If I have to design an new OFTM system, how do I determine the number of carriers that I can pack on each OFDM symbol ?

  183. Re.y says:

    I’ve read the ofdm pdf . that was great amazing but for continuing i need more …??!
    i download many pdfs but yours was really helpful
    (sorry if i made mistake about writing)

  184. Mudavath Srinivas says:

    Dear madam,
    Its great and best website and was very helpful in communication field. I always look for this website frequently.
    I am doing a project on ‘MIMO-OFDM with Beamforming’.
    The aim of project is : to write a code in matlab and calculate BER rate accordingly and also calculate inter user interference(IUI) if more than 2 users are transmitting at the same time to a base station.

    I am very confused on how to implement OFDM with beamfoming technique.
    It will be a great help and very pleased if i get any related codes/concepts which make me understand and get going.

    Your’s Faithfully,
    IIT Madras

  185. Sunil Rajanna says:

    eye.pdf looks damaged, I could not open. Thanks

  186. KB. Lee says:

    Thank you for your effort

  187. Alonso says:

    I’m lost with you tutorial 27 on page 28 (Example 4) in the begining of page, I dont know how you calculate the figures 1,26 and 9,73 1,875 1,343 for each channel. I need to know it because for distribution the power. I apppreciate so much your help, your tutorial is fantastic. Thank in advance – gonsito @ gmail .com

  188. Damoon Charati says:

    Firstly I really appreciate your great tutorial. According to page 11, last paragraph describing how to encode 1101 using the state diagram, my question is why do we start from the MSB( from left to right)? like you wrote the arrival of 1 and then 0 and then 1 and finally 1?


  189. John Woo says:

    Hi, Charan.
    I am reading your tutorial. I think it is really brilliant work. I am an engineer of satellite communication. Your jobs is instructive.
    In tutorial 24a, you said Ms.Jian Qi’s paper is an excellent reference. Where can I find that paper? Would you mind sending a link?
    Thanks a lot.

    • Profile photo of Charan L. Charan L. says:

      I did some Goggling and could not find Jian Qi. The link is not where I reference in my paper. This is a big issue with internet references!



  190. RAGHUVEER.D.S says:


  191. Profile photo of Charan L. Charan L. says:


    Thanks a lot of these nice words. Appreciate it.
    I used to do math in form of verbal quizzes with my kids when they young, mostly because they didn’t like to do worksheets. I tried Kumon with them but it required too much handwriting. So I created these Verbal Math Lesson books a while ago, first for my kids and now for schools. Math is often thought of as a tedious subject by children but if you do it as a game, verbally, I think kids like it and develop a better sense of it. The other math stumbling block in fractions. I also wrote a book on Verbal Fractions which I wish more school would use and adopt. Being able to do fractions in your head gives a child confidence in math for future education.

    Thanks again.

    June, 2014
    Any way.

    • David Morley says:

      Your comments about verbal teaching underscores the importance of talking to our children. When my daughter was young I played Math games with her to teach her to do basic Math in her head. By the time she was in High School she was better at Math than her Teachers. I also read alphabet books to her from the time she was only six months old. She started to recognize words when she was a little over a year old and could read before she was four.

      • Profile photo of Charan L. Charan L. says:

        Thank you David.
        I wish more parents would do that with their children. Early math is really more of a game and ought to be taught that way. The worksheets kind of put dread in the whole business, as kids are not yet good with their handwriting.

  192. Glenn Keller says:

    Could you kindly clarify a point in the MIMO tutorial with regards to 27.1 which expresses SNR in dB? My understanding of the Shannon theorem is that SNR is expressed as a dimensionless power ratio, but not in dB. Would not the Capacity in 27.1 equate to 2 b/s/hz?

    • Glenn Keller says:

      My mistake – apologies. You have the calculations correct. What threw me off was that 10log10(10) = 10. I thought that you were using the SNR in dB in the equation but you convert the dBs back to a power ratio before calculating C. Sorry…

  193. OFDMUser says:

    Thank you very much.For IEEE 802.11 a The standard uses 64 IFFT length (3.2μs) and 20 Msamples per second This result in 64 samples in time domain can i get more samples increasing the sampling frequency ?
    in other words, how the sampling frequency affect the structure ?

  194. Richard Buckley says:

    Hello Charan,

    I actually had the pleasure and good fortune to work with Richard Tervo in the late 80s early 90s. I can attest that he is as clear, concise and helpful in person as you describe his book. Thank you for the tip, I will have to put this on my must read list.

    • Profile photo of Charan L. Charan L. says:

      Its a very well done book. Wish they would use this type of book for first course in DSP instead of the famous fat ones.

  195. amir says:

    Love your website , you should become teacher/professor

  196. mahdi says:

    Thanks a lot!
    I found it fantastic.

  197. Thanh Nguyen Tang says:

    Thank you, professor Charan 🙂 I think I just know who I want to be 🙂

  198. Mr. Rajesh Sanghvi says:

    I am a lecturer of Mathematics at an engineering college in India. I heartily thank you for posting such nice tutorials. It is really difficult to develop an insight on Fourier series, DFT, FFT etc. I found this tutorials very helpful in this way. Books do not explain such things. I appreciate your kind action. I hope in future also you will help us by uploading good material on topics you are familiar with.

  199. Troy says:

    Why does the sum of two sine waves f1 and f2 have spectral energy in its frequency domain precicely centered at f1 and f2, rather than the (f1+f2)/2 average. Something I’m still struggling to understand.

  200. Troy says:

    The 205 hz frequency depicted in your example does not exist. 205 hz is in fact the average frequency of the signal. But 205 hz is not the frequency of the signal itself, nor does there exist any energy at 205 hz. Maybe you didn’t intend to suggest that the underlying summed dignal was actually at the average of f1, and f2, but rather that it had an average freqnecy of (f1+f2)/2?

  201. Anirudha Kulkarni says:

    First of all I must say that, all the chapters written on this website is a great resource.
    Many thnaks for expaling digital communication in such a simple way.

    I was going through Inter Symbol Interference and Root Raised Cosine Filter chapter.

    I have one doubt in the example of satellite transponder on page 11.
    Probably I am missing something here to understand it.

    The doubt is,

    When we use QPSK ( or any PSK ) , we use the sine and cosine waveforms to send the signal which is already in bit stream form.

    The bit stream form is has square shape pulses.

    But QPSK modulated signal will have portion sine and cosine waveforms.

    So the question is why do you say that the “unshaped” QPSK is square pulsed.
    Pardon me if I am not able to understand the context of “unshaped”.

    In any case, if a signal is digitally modullated then the bits would be sent in the form of sine and cosine only.

    So why do you say that pulse shaping is required on the square pulse before sending.


  202. Muhammad Altaf says:

    Firstly i want to thank you for putting together such good tutorials. I am doing my masters in Communications and Signal Processing. This forum has helped me a lot since the commencement of my degree. I have a request if you can take out some time to prepare a tutorial on FBMC (Filter Bank Multi Carrier) modulation scheme. Currently, I am about to start a project on this topic but can not find a specific and to the point tutorial on this topic. Your effort would be really appreciated.
    Thank You

  203. Nguyen Le Hung says:

    Dear Charan Langton,
    I’m a beginner in Electrical Engineering. Could you please recommend me some books or reference websites which give instruction on how to simulate theories in DSP and basic systems of Digital Communication / Wireless Communication by using Matlab and Simmulink ?
    – Explanation
    – Algorithms
    – Sample codes
    Thank you and BR

  204. omar says:

    its understanding to good

  205. Arthur Dent says:

    This was a fun read — thanks for posting it. On Richard’s advice I’m going to write a book on signal processing with massive amounts of the other topics mentioned 🙂

    • Luis Sanchez says:

      How can you mix DSP and the other topics? ha ha ha.

      On a more serious note, Mr. Richard, congrats! I find your book very good! You explain the topics very well. It definitely honors the title.

  206. Subodh says:

    Hi Charan,

    The information on Fourier analysis was really awesome. Big Fan !!!!

  207. Great website! Loved the explanations, your notes, wonderful resource for teaching. (I have been invited as a guest lecturer at COEP, your notes are helping me a lot! 🙂 )

  208. VK says:


    Thanks for such beautiful and amazing notes. They really made my mind to jump from complex to understandable fundamentals.

  209. Farshid says:

    Thank you so much for the great website and your effort. After so many searches in the internet finally found the website with amazing understandable tutorials.

  210. Vinayak Mhase says:

    Thanks! Very good tutorial

  211. RAJ K N says:

    Hi, glad i found this website.

    just reading how dft is borned from womb of fourier series…

    but still confusing and many questions are arised fOr me while reading,


    I WILL NOT ASK YOU UNTILL I GET DEFEAT WITH THESE CONCEPTS( means iput my 100% first and then i will ask you admin)

    (from: india)

  212. VIKAS SWARNKAR says:

    Mam, I am a big fan of your writing on all the technical topic related to telecommunication, can you please write something on beamforming moreover adaptive beamforming

  213. Royal says:

    Hi there,
    Thanks a lot for your easy to understand tutorial.

  214. vv says:

    Hi Charan,Thanks you for such an intuitive explanation.
    I am having hardtime understanding Baseband signal bandwidth. Say I am using raised cosine pulses for transmitting signals, how do you define the Bandwidth of this raised cosine pulse? If you say this has bandwidth “B”, does it mean that for generating a raised cosine pulse,we need complex sinusoids of different frequencies from 0 to B ?

    • Profile photo of Charan L. Charan L. says:

      You determine the bandwidth based on what data rate you want to transmit. So lets say you want to transmit Rs samples per second, then bandwidth is equal to Rs x (1+rolloffFactor).
      However the lowpass bandwidth is one half this. This is how it is defined. The reason is that bandwidth is always a positive quantity. At lowpass half of it is in the negative territory. So lowpass bandwidth by definition is half of the bandpass bandwidth.

      How the RRC pulses created? They are created by passing a signal through a filter. See this matlab link, which might help.

      • vv says:

        so when we say BW of LTE signal is 20 Mhz, does it mean that we want to send data at 20 Mbps?

        • Profile photo of Charan L. Charan L. says:

          Yes, but a bit less. It is possible to transmit (1+alpha)*BW number of samples per Hz in any bandwidth. The alpha is roll off factor, and can be assumed to be about .20.
          To convert this to bits, one multiplies this by the constellation order. M = 2 for QPSK, 3 for 8PSK etc.

          Charan Langton

  215. Bharat Goyal says:

    Thanks for the tutorial….How to make trellis diagram for 2/3 or 3/4 etc convolution encoder…
    i.e. how to make trellis diagram when input bit is more than one…as this is used in TCM

  216. vv says:

    Hi Charan,
    When we say LTE supports bandwith of 20 Mhz, doeas it mean we support upto 20 Msps?

  217. Tsegaye Y says:

    Your tutorials make the concepts understandable, Thanks a lot!!!

  218. sridhar says:

    Fantastic and very useful. May God bless the originatar/(and consequent forwarders) for this remarkable service.

  219. Arash says:

    Thanks for your great tutorial. I jusy have one question. I want to implement baseband FM with output of I and Q. How can I do this? I want to implement Stereo FM transmitter. If I use FSK, Do the analog receivers able to demod it?

    Best Regards,

    • Profile photo of Charan L. Charan L. says:

      FSK is a digital modulation. Not sure what you mean by analog receiver.
      If the receiver is setup for FSK then I don’t see any problem getting out the I and Q channels.

      • Arash says:

        Hi. Thanks for reply. I mean I want to design digital stereo FM for broadcasting. Analog receiver I mean radio of the car which I know they are are not support FSK. So if I want to implement conventional FM with I and Q output what can I do? If you know any references please let me know.

  220. Madam,

    i am very much impressed with your writing style, and also the content.

    A small request is to verify the URL links given above, as few of them are dead.


  221. Anirudh Palle says:

    Hi. I was going through the first part of modulation tutorial. The Offset QPSK section has an inaccuracy in the I and Q channel diagrams. The Q channel is supposed to be offset by half a symbol time i.e. one bit time. But the figure shows the offset of half a bit time. Please correct me if I am wrong else correct the figure 🙂

    Thanks and regards

  222. John Dusatko says:

    Thanks so much for this website and your extremely lucid explanations! I wish that I had access to this information while I was attending university. I have especially appreciated your writeups on the Fourier transform. You have taken a difficult subject and presented in a way that is easy to understand. I was wondering when your book, “Intuitive Guide to Fourier Analysis” will be published as I (and I’m sure many others) would like to obtain a copy.

    Best Regards

    • Profile photo of Charan L. Charan L. says:

      Thank you John for your nice comments.

      If you are willing to read my chapters as I am doing them, I would be most grateful.
      Please let me know.

      Thanks again,

      Charan Langton

      • John Dusatko says:


        I’m sorry to not get back to you sooner. I got busy with work and life, had not visited your website in a while and had erroneously thought that it would auto-send email if comments are posted.

        To answer your original question — yes, I would consider it an honor to read the chapters as you are writing them. I cannot claim to be any sort of expert here, but if having another set of eyes going over the manuscript would be helpful, I gladly offer myself to your efforts.

        Best Regards,


  223. paul says:

    Great for Engineers

  224. Alex Bueno says:

    Great tutorials

  225. idmond says:

    In case anyone is looking for the practical side of ISI, I’ve came across this great tutorial which discusses the implementation of pulse shaping to reduce the bandwidth and avoid ISI in modems of amateur radio satellites:


  226. Shahriar Parvez says:

    Hello Ms. Charan! Your tutorials have helped much more than entire semesters of wireless comm classes combined. Please keep up the good work.
    Will you be posting any tutorials on wireless channel modeling and MIMO-OFDM? It would be very beneficial as channel modelling is a common but challenging topic and MIMO-OFDM is the technology of choice, but the mathematics and concepts may be difficult to grasp at first hand. Please let me know

  227. Elvin says:

    need a written program on free space optical link for channel interference reduction

  228. NITIN SAHU says:

    Respected Madam,

    I am an scholar from an institute in india.
    HATS OFF to your exceptionally good tutorials.

    Your tutorial speaks everything.

  229. james says:

    Shouldnt phase on page 6 be tan-1(Q/I) and not I/Q

  230. Charlie says:

    Great to be here! I learn a lot! Thank you very much!

  231. Charlie says:

    1. pulse shaping occurs only at baseband, before modulation.

    I think you are wrong. If you have time, please look at one article from ni white papers. The link is below

    • Profile photo of Charan L. Charan L. says:

      I looked at the article and it does not contradict what I said. The pulse shaping acts to reduce the bandwidth of the baseband signal, hence it can also act like a filter.
      It is always done before modulation.

      Charan Langton

  232. Paul Zwicker says:

    In section 4, where the FSL is written in dB form – the unit specific nature of the constant should be stated. This form is requires r to be in km and f to be in MHz. Especially since the example then uses the constant in the r[km] and f[GHz]. It just makes the material confusing for a second because of the inconsistency, but thank you for this material it has been a great refresher.

  233. Ashwin Amanna says:

    On the top of page 7 there is a formula for the Phase of the signal given as “Phase of signal =arctan(I/Q). I believe it should be phase of signal = arctan (Q/I) given the way you defined the scenario with the y-axis being Q and the x-axis being I.


  234. Rishi says:

    On page 2: “a digital signal can take any number of values, usually in powers of two”. Can you give a real world example where a digital signal takes values other than the usual binary values ?

  235. srikanth says:

    Unable to download or open few pdf’s (fft transforms). Please help

  236. srikanth says:

    Hi…few pdf are not accessible (ffts). Please help

    • Profile photo of Charan L. Charan L. says:

      Which ones are missing? Occasionally I notice that some don’t show up some times and then reappear at a later time. Internet Magic!

  237. M Masroor Akram says:

    Dear Madam,

    I would like to thank you for exceptionally good tutorials. I have learnt a lot from these. I have been a visitor to your web-site since long. I like the new “Books” sections.

    These days I have been looking for a good “text” like book (I mean a detailed book) on Geo-location techniques with regards to Satellite communications but could not find it yet. I would appreciate if you can help me on this.

    Thanking you in anticipation.

    M Masroor Akram

  238. Thank you for all the tutorials. It has helped many people.

  239. Ray says:

    In your tutorial number 7 on the Hilbert Transform, under the heading “What is the analytic signal of a sine?” I think there is a small error in the reduction of sin(wt) – jcos(wt) into a complex exponential which should be -je^{jwt}.

    On the whole, the couple paragraphs below it make it seem like all complex exponentials have a spectrum only in the positive domain which is slightly confusing. For instance, e^{-jwt} does not. A proof that the hilbert transform results in positive frequency would be great.

    Thank you very much for these tutorials. I’ve only gone over the hilbert one and the intuition and simplistic walk-through with the example really helped me understand the basic concept.

  240. George Maher says:

    Dear Ms. Langton,
    Thank you for writing your tutorials. I have taken a lot of advanced EE classes years ago but sometimes had nagging questions about basic things and they were usually covered in a very clear way in your tutorials – which I discovered later. You address complex (obvious pun) concepts in a very approachable way that is similar to how I try to understand new concepts at first. Your tutorials have helped me immensely.


    • Profile photo of Charan L. Charan L. says:

      Dear George,

      Thank you very much for your nice comments.
      I am so glad you liked the name of the site.
      It is cute.

      I am working on a book right now, which is why I have not posted for a while.

      Thanks again for your comments,

      Charan Langton

  241. Tarik says:

    Nice website, thank you 🙂

  242. Dawoud Khalifa says:

    Thanks for your well explained tutorials.
    I would really appreciate it if you update the PDF file so I can use annotation tools in it, since I like to mark and add notes here and there in the file so I can find them later.
    That would be of a great help to me.

    • Profile photo of Charan L. Charan L. says:

      I will start doing it shortly. If you are on Facebook page for Completoreal, you will see the notice.
      Thank you for the comments.

  243. Vasudeva Murthy Vadlakonda says:

    No other author has explained the coding and decoding theory with so much of clarity. One small clarification. The tree diagram on Page:13; 11(100)up 11(011) up 01(010) may have to be corrected as 11(100)up 11(010) up 01(001). Regret if I am giving a wrong suggestion.

    • Profile photo of Charan L. Charan L. says:

      Yes, you are correct. Need to go back and fix it. I am busy trying get my book out so it might be while.
      Thank you very much for you comments, however.

  244. Subramanya Krishna says:

    Dear Ms Charan,
    Great tutorial. While it enlightened me immensely with the understanding of cyclic prefix resolving the inter symbol interference caused by the delay spread of multi path reflections, I was wrestling with the question about how the intra symbol interference that causes the amplitude and phase shift in the signal is taken care of? I came across brief literature in the web about reference signals or pilot carriers used to resolve this. Addition of that discussion to the tutorial will greatly help.

  245. Jeni S Shah says:

    The equations for CTFT for sin(wt) are different on page 13 and 15, which is used to derive eq 4.13

  246. Precious piece of human and technology history.
    I live few kilometers from Villa Grifone, located in Sasso Marconi -Bologna (Italy).
    Here, in the house of Guglielmo Marconi, was born the Wireless Communication.
    I am fascinated by history of these technologies and persons.
    Thanks again

  247. Bai says:

    May I know how do we compute the ideal constellation points for QPSK (0.707, 0.707, 0.707, -0.707, -0.707, -0.707, -0.707, 0.707) and 8PSK ? Is there any formula ?

    • Profile photo of Charan L. Charan L. says:

      The numbers are pairs of coordinates. Plot these and you get the constellation of four points.(you have 8 points, each a (x,y) pair. Note that they all fall on a circle of radius .707. To plot 8PSK, you need 8 equidistant points 45 degrees apart. This is easy to calculate. They all fall on a circle of radius .707 ( squaring it you get 1.0, which is the power.)

  248. launcher says:


    I am a Chinese student major in Electronic Technology. Firstly I want to express my gratitude for you effort to write a good book–Intuitive Guide to Fourier Analysis, I had read two chapters,and also I think I had found some little clerical mistakes in the book,I attempt to contact you in the Facebook,but got none response,could you give me a email, I will sent you about them.
    And I want to know that what software you used to draw the picture like e^jwt ?
    Thanks a lot again! You are a good teacher for me.

  249. Mete says:


    At page 10, unlike in sines case, the sum of cosines (1/k)*cos(k*2*pi*f*t) for k = 1, 3, 5 ect. does not make a square wave when I plot in MATLAB. It is kind of counter intuitive but you can try and see:

    t = 0:01;1;
    plot(t, (1/1)*sin(1*2*pi*f*t) + (1/3)*sin(3*2*pi*f*t) + (1/5)*sin(5*2*pi*f*t) + (1/7)*sin(7*2*pi*f*t));
    hold on;
    plot(t, (1/1)*cos(1*2*pi*f*t) + (1/3)*cos(3*2*pi*f*t) + (1/5)*cos(5*2*pi*f*t) + (1/7)*cos(7*2*pi*f*t),’-r’);

  250. Mete says:

    I think in cosine case there will be 1, -1/3, 1/5, -1/7:

    t = 0:0.01:1;
    plot(t, (1/1)*sin(1*2*pi*f*t) + (1/3)*sin(3*2*pi*f*t) + (1/5)*sin(5*2*pi*f*t) + (1/7)*sin(7*2*pi*f*t));
    hold on;
    plot(t, (1/1)*cos(1*2*pi*f*t) + (-1/3)*cos(3*2*pi*f*t) + (1/5)*cos(5*2*pi*f*t) + (-1/7)*cos(7*2*pi*f*t),’-r’);

  251. Saroj Prasad Chhatoi says:

    I really loved the contents on provided by you. I am planning to design a communication payload system for c-band for which i did the eirp calculation considering the ber of 10^-5 and noise temperature to be only 293k. Mam how should I proceed to get the specification of various components

  252. george says:

    Your tutorials are exellent regarding the explanation but there are so many mistakes with the math. You need to go through them as it can be confusing when equations make no sense! however i still value your work. if you correct this then it is perfect.

    • Profile photo of Charan L. Charan L. says:

      Any specific page/tutorial?

      I keep wanting to update them but in some cases, I can’t not find my original files.
      Maybe I will have to rewrite them.

      Thank you so much for your kind words.


      • george says:

        i think the discrete time signals and fourier series representation has the most mistakes in it. for example bottom of page 42 should be pi/2 not pi/4. page 43 should be c(0), c(1), c(2), c(3).page 44 the 1/N terms have been omitted in the c(k) calculations… there are a lot more. also you often draw the 3D sine wave representation as having a +90 degree phase for the positive freq and -90 for the neg freq but i think it is the other way round. see page 2 or your hilbert transform tutorial (which is very good). you do state that the cosine into sine tranformation requires a -90 shift for pos freq and -90 for neg freq which is correct and contradicts the previous statement and diagram. however your axes are not labelled regarding the directions of positive and negative so you may be correct in your pictures however if you are using less conventional axes directions it would be good if they were labelled. i think I am correct in most of this. best wishes

  253. Maxim says:

    Great Site, thank you!

  254. Sandeep Mukherjee says:

    Great tutorial. I just have one doubt, On page 18 (equation 27.28) you are writing R_xx = P_T I_3 (where I_3 is a 3X3 identity matrix) and P_T is the “Total Power of the system”. Since, each diagonal element of R_xx contains the power transmitted by each transmitting antenna, in this case, the total transmitted power becomes: P_T + P_T + P_T = 3P_T. So shouldn’t the equation read R_xx = (P_T/3) I_3 if we want to make the total transmitted power to be P_t? Similarly, in the case were the powers are in the ratio 1:2:3, the covariance matrix should be R_xx = (P_T/6)*[1 0 0; 0 2 0; 0 0 3]? Thanks in advance.

  255. Basant says:


    Firstly thank you for the wonderful explanation/work.
    Just have a comment, I think in Chapter 12, Fig 10a, the outbit must be 11110111010111, instead of 11011111010111.


  256. james says:

    Dear Ms Langton,

    Could you recommend the best source for understanding digital baseband concepts – expected value/power desity/autocorrelation?

    I am struggling very hard with these topics. i have not studied statistics before and all texts often do not even explain the notation.

    I would love something that has at least one example fully explained. ideally with pictures. Any book suggestions?

  257. Zonghao Li says:

    Hello Charan,

    First of all thank you for your efforts in building up such a good platform for people who are interested in DSP and other related fields to communicate and study. I just started touching DSP for like 3 months and I take a look at one of your tutorials that is called ‘Fourier Transform of continuous and discrete signals’, and it really does help. It clarifies lots of conceptional questions that confused me for quite a long time, and even my prof cannot clearly answer some of those. I haven’t finish reading that tutorial, and so far I have a question regarding the FT of the Periodic signal. As you mentioned in that tutorial, even though historically initially we use FT for aperiodic signals, but it is also applicable for periodic signals, and the result will be the discrete replicas of the FT of the original time domain function. I also heard about the Poisson Summation, and in fact they look quite similar, so I am wondering if there is any potential relationship in between?

    Another example is when you take the FT of an sin function, which means you are taking the FT of a periodic function, but we usually will do the truncation and will only take the FT within one period, which will yields two impulses at two side of the frequency domain. And if I choose to consider the whole frequency domain instead of within one period, then the finally frequency spectrum will be the replicas of the impulse, is that a right inference? Is that the reason why we usually choose to do FT of periodic signals within one period? Thank you.



    • Profile photo of Charan L. Charan L. says:

      The CTFT and the DTFT of a sine wave is just two impulses at the frequency of the signal. When you do the DFT, if the length of the DFT is not equal to the integer multiple of the period length (in samples) then, you will see other components. I am not sure about your Poisson comment. I will have to look into that.

      There is no repeating of the impulses for the sine for periodic or a single basic case. I may not have explained this well in the tutorial. I will be posting a new one.


      • Zonghao Li says:

        Really appreciate for your replay and I am looking forward to your further tutorials. If you have some ideas regarding the Poisson Summation, please leave me comments. Thank you.


  258. Felipe dos Anjos says:

    Muito bom! Obrigado pela ajudar!
    Very good!Thank you!

  259. Rok says:

    Your notes made my life easy. I have no words to express my gratitude.
    Thanks Sir

  260. Michael Soyka says:

    At first glance, this tutorial seemed promising but as I looked more closely, several issues arose.

    1. The phase detector gain, defined on page 1, is sometimes designated as K-sub-m, sometimes as K-sub-d, sometimes as k-sub-d, sometimes as k-sub-m (see pages 1,2,5,9).
    2. Sometimes omega is used to designate angular frequency, sometimes “w” (page 2).
    3. On page 5, paragraph below Fig 7, you state “… 90 phase difference which is required to make this whole thing work”. If this true, you should also tell the reader why it would fail.
    4. I don’t see the point of Figs 8-13 and feel they may introduce confusion. I say this because they show possible error signals that converge to non-zero values. In a properly operating PLL, errors should instead approach zero, as you state on page 7.
    5. On page 8, the top 3 equations used different subscripts on omega: “i”, “c”, and “out”. If s-sub-2() is the output of the VCO, shouldn’t that omega be omega-sub-out? Also, in the expression for omega-sub-out, shouldn’t omega-sub-i be the input?
    6. On page 8, you state the K-sub-0 has units of Hz per volt however you defined it in terms of omega which has units of radians per volt.
    7. On the page, the equality at the top of the page makes no sense- I assume phi-of-t was meant.
    8. On page 9, the expression for phi-sub-2 comes out of nowhere. You do not explain why you can replace frequency with s-sub-e, something you said earlier is not frequency dependent.

    Page 9 is as far as I got in the tutorial. I still think this could be useful if the details get cleaned-up and the organization improved.

  261. Abinash Kumar says:

    Thanks a lot.Could you please share some of the your strategy to simplify the difficult and confusing concept like Fourier transform.It would be really helpful for us.

  262. arun says:

    Hi charan,

    In the figure 11 :page 8 , you have mentioned that the required low pass bandwidth is one-half of symbol rate.
    So in the figure, for s1= symbol time = 0.5+0.5 =1 second , therefore symbol rate is also 1 symbol/sec.

    But as per the author Bernard Sklar ” Digital communications .Fundamentals and applications ” 2nd edition page 137 : Figure 3.16,

    when the Total symbol time of Sinc pulse is 2T ( see .Fig=3.16 b),
    then the single sided Bandwidth( the ideal Nyquist filter ) is = 1/2T = 1 /( 2*0.5) = 1 Hz.see fig 3.16 a

    So here the Bandwidth = 1hz and symbol rate is also 1 symbol per second..

    How did you get 0.5 as the single sided bandwidth for S1 ( the red rectangle ) in your Figure-11

    Am I missing some thing here.please correct.


  263. Keith Clark says:

    I agree with Paul. On page 15 the equation for free space loss is only correct if “r” is measured in km and “f” is defined in MHz. If base units are used, “r” in metres and “f” in Hertz, then the constant is -147.56. This becomes a problem in Ex. 6. Firstly the height of the satellite is not defined in the question but assumed to be 22,000km as was used in Ex. 3. If a constant of -92.4 is used this means that “r” is defined in km and “f” in GHz. The penultimate line in Ex. 6 shows 20 Log (12×10^9), this is wrong as the units are in GHz so that line should simply read 20 Log (12). Doing the numbers correctly gives FSL = 200.6 dB not 196 dB.

    Finally, Preceived = 60dBW + 52 – FSL dBW

    If FSL = 196 dB (as shown in the example) then
    Preceived = 60dBW + 52 – 196 dBW
    Hence, Preceived = -84 dBW not -80 dBW as shown but this is using the wrong figures, FSL should be 200.6 dB not 196 dB

    Therefore Preceived = 60dBW + 52 – 200.6 dBW
    Preceived = -88.6 dBW

    Having said all that, the tutorials are very helpful and not at all daunting making them very helpful. Hopefully you take my comments in the constructive way they were intended! 🙂

  264. Oliver Street says:

    1) When analyzing noise the analog bandwidth and bit rate aren’t 1:1 equivalent, there are 2 bps/Hz, not 1bps/Hz. If anyone clings to the appeal of 1:1 show a 1Hz square wave is a 2bps alternating +/- binary sequence, and then show a 1Hz sine wave (claim the same RMS power without visually re-scaling) and integrate the energy over the half cycle bit interval to get an unambiguously equivalent +/- result.

    2) The section on the BER and bandwidth of n-ary PSK is weak. Its simpler begin by showing QPSK as the sum of two BPSK signals created from a quadrature (90°, sine/cosine) offset copies of the carrier, where each has 1/2 the carrier power. (Its a simple way to make a QPSK modulator.) The relative bit energy for each of the two BPSK streams is more obviously -3.02dB. Since any n-ary PSK signal can be formed the same way, the bit enerygy relative to BPSK is 2/n or 10log10(2/n) dB. (Try to avoid describing the QPSK components as orthogonal for this purpose, it’s irrelevant when the analysis is extended to n-PPSK)

    3) The section on coding gain falls into the same trap that many other do. The coding gain isn’t corrected for the coded channel bandwidth. This remains valid when, like the original applications for channel these codes, lowering the uncoded bit rate doesn’t produce a proportional increase in Eb/No because of the noise spectrum isn’t flat because of 1/f (and 1/f^2) noise.

    Here’s a tutorial on coding gain that doesn’t fall into the bandwith trap

    4) The paragraph beginning with 10^-2 BER has some problems. It falls into the bandwidth coding gain trap, but it should recognize that its describing a link design constained by choices already made. Satellite channel bandwidth and downlink power budgets are typically designed for 10^-11 BER typical, 10^-6 minimum at full bandwidth including coding gain with a 50% rate reduction due to coding, and the raw channel BER is 10^-2 at the unencoded bitrate, and 10^-3 at the coded bit rate. A ground station designer can add antenna gain and transmit power, but the market has expectations based on coded channels.

    5) Transponder links built on 10’s of MHz wide bent pipe TWT amplifier channels have been a staple of commercial geosynchronous SATCOM links. The detailed gain curve only applies to a particular transponder type. They aren’t representative of communication systems in general. Mentioning that transponder links often have a nonlinear gain curve and may both squelch weak signals and have significant AM suppression is enough to suggest that an analysis has to include the characteristics of components of the link.

    6) It isn’t inappropriate for an introductory analysis to avoid the more complex topics like carrier phase noise, bit clock jitter, the effect of shaped modulation on bandwidth occupancy, and so on, but it might be appropriate to mention that these things exist and are required for a complete link budget.

  265. ALam says:

    Very well explained. Thanks
    Any tutorial on *Multidimensional Constellations* ? please upload.

  266. Dear Sir/Madam,

    i referred your material tited “Linear Time invarienr (LTI) systems and Matched filter” which is available at It is very useful for my lecture and building some applications related to the radar signal processing. Thanks for it.
    I would like to have some materials related to “Ambiguity Diagram” where i required clear description like the above mentioned topic.

    Please sir….

  267. GTB says:

    Thanks alot for your effort and contributions. These tutorial are really helpful.

  268. David Binner says:

    Hi, Charan.

    Nice website! I came across it when looking for resources relevant to the Discrete Fourier Transform (DFT). I often look around to see what information is available; it helps with my own work. Reading material from a wide range of perspectives usually helps me understand concept better.

    I’d also like to share some of my work that may be relevant to your website: last year (2015), I posted a JavaScript translation of a DFT from the FFTPACK library:

    Discrete Fourier Transform:

    It is simple to use and I hope you find it useful.

  269. Francis says:

    Differential phase shifting… does it include polarity correction process as opposed to polarity prevention coding?

  270. Siddhesh Shinde says:

    Thank you so much for such a wonderful collection. It has helped me a lot.

  271. tmt says:

    Ms Langton, I am grateful for having the opportunity to amble my way through this large resource of useful information on Signals and systems. It is something that I have often struggled with in my work on occasion, and I am not a natural mathematician. There was just the section on Laplace, Z- and discrete transforms that completely lost me in your Signals.pdf. I wondered if you could re-work it again perhaps from a different perspective, and with more information on those sections to make the knowledge ‘full’?
    I have looked at some enquiries made about typos and oversights in your work, do you provide news of updates to your tutorials on your site? It is not clear whether these things have been corrected, as I do not see replies to enquiries that mention whether you have corrected them or not.

  272. Shahab says:

    Hi Charan,

    Your tutorials are beautifully written. I wanted to thank you for your very well written material. I would appreciate if you specifically introduce me with a well written book in digital communications. I have Digital Communications written by Proakis but unfortunately it is not rigorous enough. It has a lot of content but most of them without any proof.

    I am looking for a book that is very well teaches the concept intuitively, proves mathematically in a well understandable manner or it gives enough information that I can research the rigorous proofs myself.

    I am an engineer with almost 20 years of experience in the field of DSP so I am not completely unfamiliar with the subject.

    Thanks for your recommendation


  273. kaogula says:

    Is “analog medium” means the “carrier” is analog ? Since a wire can carry both analog signal and digital signal, it will be called “analog medium” when it’s carrying analog signal. Am I right?

    • Profile photo of Charan L. Charan L. says:

      Analog just means continuous but in practice an analog signal is one based on a sinusoidal wave form source. This implies that information has been modulated onto a sinusoidal carrier, somehow (AM, FM, PSK, etc.). Hence the term analog almost always applies to this type of signal. This type of modulated signal can travel through many types of physical channels, also called medium, including wire, water or air.
      Charan Langton

      • kaogula says:

        Thanks for your reply. I was just little confused about these words in this tutorial: “Communications inside a computer are examples of pure digital communications, digital data over digital medium. LAN communications are digital data over analog medium.”
        The “physical channel”, also called medium,shouldn’t be distinguished into digital medium and analog medium.

        I think in this context, “digital data over digital medium” is talking about the ” digital baseband transmission” or “digital information transmissino”,and there is no carrier; and “digital data over analog medium” is talking about “digital information over digital carrier”

  274. Yes, that does sound confusing. Digital data is almost always sans a carrier, that is, it is at baseband and represented just by a voltage polarity of a fixed amplitude, i.e. +1V or -1V. All physical mediums are capable of transmitting such data, however not efficiently. The “wires” inside a chip do carry this digital data but because of the small distances and the property of the material, they can do do so without much distortion and loss. The actual wire such as an Ethernet cable however has a poorer frequency response and it would distort such digital signals.
    Charan Langton

  275. Alina says:

    I have this question
    Theoretically, could the bandwith for WCDMA be lower than 3.8Mhz, say 1.9 for instance?
    In Lte the minimum I have seen is 1.4

    Thank you,

    • Profile photo of Charan L. Charan L. says:

      The bandwidth allocated and bandwidth possible can be two different things. The bandwidth (baseband) required is only a function of the the modulation order and symbol rate.

      One always starts with the data rate required. Lets says that the minimum date rate needed for voice is 9.6 Kbps (for a give BER). Assume modulation is QPSK (as in CDMA), then bandwidth is equal to 2 times the symbol rate. Actually the bit rate for voice cna be as alo as 1.024 Kbs, in which case, the badwidth required would be only two times that.

      Not sure if this was your question. In LTE the channels can provide compressed video as well. So it all depends on the service parameters.


  276. JJ says:

    Hello Mam,

    Ihaverety started following your tutorials, you seem to have a great in depth knowledge subject specially in regard to practical aspects of it.
    I have benn reading many on same however there approach is very therotical.
    Iam obliged to be taught by the the masters in the field.
    looking forward for your book soon and specially for Indians.
    Thanks Once again.

  277. Cai Hengbin says:

    Dear Madam,
    Thanks a lot for your excellent explanation about the Hilbert Transform (HT) in communicatoin systems!
    Here, after reading your paper, I have a question and hope to discuss it with you.
    cos(wt) -> sin(wt) -> -cos(wt) -> -sin(wt) -> cos(wt) -> …
    holds in HT, you obtain your result as
    However, in my opinion,
    Because only in this case can we have cos(2-100)t+jsin(100-2)t=exp(j(100-2)t), attaining that the positive domain is left. Otherwise,g+(t)=2cos(2+100)t+…+j3cos(3-100)t cannot be rewritten as g+(t)=(4cos2t-6sin3t)exp(j100t).

  278. Stephen says:


    I would just like to point out a typo on page 5 towards the end of the page.

    In LaTeX you used \textbf{} but forgot the {}.

    Thanks for the awesome notes. Im really enjoying them!

    Will let you know if there are any more ‘issues’ 🙂


    • Stephen says:

      There is another typo on page 7 just below the equations where you mention that c(t) has an amplitude of A. It should be c(t) has an amplitude of B if we go by the equations. 🙂


    • Stephen says:

      Another one on page 9 where you say that w=2*pi*k*f but you have already included k in the equation so it would imply it becomes k^2.

    • Stephen says:

      Page 11 reads:
      “With only three terms in the addition result in a pretty decent looking square wave.”

      I think it should read:
      “With only three terms in, the addition result is a pretty decent looking square wave.”

      I know I am being petty but I am really grateful for the work done and want to improve it if I can.

      All the best,

    • Stephen says:

      There are a few more errors that I have found that I would like to send through to you for correcting. Would it be possible if I can do that in another way rather than through comments?


  279. mick says:

    very short and impressive note. Thank you!

  280. Orlando Banos-Rivas says:

    Reading your tutorials is a real treat however Tut 21 Figs 4 and 5.a thru 5.c are missing 🙁

  281. tLin says:

    Hi Charan
    I am looking for a Simulink model for wireless receiver for education purpose. Bumped into this one,, at but it doesn’t work. Do you have one handy?

    Also I think is a good site for ECE research and design. It is new but I like its idea to encourage engineers to share knowledge. I guess you can add it to your list so others can also benefit.


  282. Simmi says:

    i read your tutorial.. these are unbelievably good… thanks…. specially the convolutional encoder and decoder… i find this to be so interesting that i suggested each and every friend of mine…. Thanks once again…

    I want to improve BER by using convolutional encoding… can you suggest me some idea to decode it better or making some new code…

  283. Mahesh Budavarapu says:

    Thank you very much Charan. This site is really helpful for understanding Digital Communications.
    I had gone through Turbo Coding and Decoding. It really helped me alot in getting a big picture of Turbo Codes.
    Thank you once again for explaining the concepts and on creating such a wonderful website for wireless Communications. Eagerly waiting for your explanations/teachings on contemporary wireless communication topics.

  284. David Morley says:

    Hi Charan,
    I just read your tutorial on OFDM and I wanted to let you know how great it is. It is a rare ability to take very complicated subjects and explain them is easy to understand terms. I look forward to reading more of your tutorial and your book when it is published.

  285. michelangelo says:

    I am grateful to you for all tutorials that I advise always to my colleagues.
    It is art of disclosure, also my passion.
    A question: I find few literature related to Costas Loop;
    I did some tests circuits FPGA based, do you know tutorial or application notes
    for better knowledge?
    Thanks in advance

  286. Mike Kloos says:

    Great site! Just wanted to point out an error in chapter 5 DTFT – figure 5.2d is incorrect. The x axis labels show repeating spectrum at pi, -pi and it should be 2pi, -2pi, etc. Should be periodic on 2PI but the fig d shows periodic on pi. Otherwise, great writeup.

  287. M. Hashemi says:

    Thanks a lot, i want to know on synchronization in communication (concept,basics and foundamentals) and i would appreciate if you help me.

  288. MimS says:

    Dear Rick;

    I would like to thank you for your book and let you know that anything I understand in DSP, come from your book “Understanding DSP”,
    really appreciate!!!.
    From IRAN

  289. mathematicallyilliterate says:

    Charan your work here is truly incredible. I have a very poor understanding of mathematics and one of my units on the second year of my undergraduate computing degree is based around wireless communications. The resources you have provided here have helped me to make more sense of the subject than any of the resources/lectures given by my university.

    It’s still a subject I’m struggling to grasp, but the information contained on your site has really helped!

    Thanks again!

  290. Divakaran says:

    Hi Charan Langton and Victor Levin
    Read the sample chapter and it is a great book.
    I will wait for the print version to be published will it be in colour or black and white.


  291. Miguel says:

    Do you any tutorial about Reed Solomon codification?

  292. russ ward says:

    lyons “understanding dsp” book was good on dft but weak on fir –
    57 page chapter of dsp tricks could have been better spent –
    do not buy this book but maybe read it via interlibrary loan – instead buy ifeachor 1993 –
    the lyons “essential” book is far more useless – avoid it

  293. Safiya says:

    This is just amazing!
    But, don’t you have something about analog communication?

  294. Pratibha Varadkar says:

    A fantastic initiative!!! :-D…Helped a lot.

  295. rahul says:

    Referring to the list of generator polynomials given on page 2. The number of binary bits for both G1 and G2 for a given constraint length are not matching. Why is this so?

  296. Jeroen says:


    Very informative tutorial. One thing about non-linear behavior is unclear to me however, hope you can give me a short answer.

    If you look at an ideal clipping device, the output signal will graduately become a block-shape as the input-sine amplitude increases. My question now concerns interpretation of “saturated output power” (0 dB IBO and 0 dB OBO) of the TWTA:

    1) Is it the power of the entire block-shaped output signal (so including harmonics)?
    2) Is it the power of the fundamental harmonic in the block-shaped signal?

    There is a 0.9 dB difference between the two interpretations, but I’m not sure how to interpret this correctly.

    Best regards,


  297. Malvika Kamat says:

    when only a few bits are reversed, the method cannot bring back the original sequence! What is then done to get back the original sequence?

  298. ALON says:

    Amazing tutorial

  299. Jonathan C. says:


    I have the same request as Mudita, could you elaborate on table 7, and also possibly table 9? I have tried for a long time to get the same calculation but I cannot understand how to calculate them.
    I have found that equation 3 works for the state changes in figure 7, but not for the tables, as if they are indexed differently somehow.

    Again the request us that a sample calculation be provided for the tables 7 and 9,


  300. Brad VS says:

    Russ, you need more sleep, as I see you posted at 4:28 am. As stated, the essentials book is “… a great book for rank beginners and all high school students.” Perhaps you were expecting more, especially when you appear to compare it to ifeachor.

    I work for an RF comm company, and a number of the dsp gurus around here speak glowingly (no exaggeration) about Richard’s “Understanding…” book. To each his own.

  301. ouyang says:

    there is a typing error in the second line of the last paragraph:
    “… but if link deterioratesm le’ts say due to rain fade…”.
    it should be “deterioratesm” and “let’s”.

  302. Larry Jubb says:

    It is now January 2017 and Amazon still does not list a hard-copy (print version) for sale. Is there a new date for availability of the printed version?
    Larry Jubb

  303. resh says:

    Dear Charan,

    If FFT is used for transforming time domain signal to frequency domain, then in OFDM, at receiver part, we should get frequency domain. But the input signal is in time domain, and after doing FFT and IFFT, I thnik the original signal is going to be obtained.

    I would be pleased to help me about FFT at the receiver.

    Thank you,


  304. mary says:

    wonderful tutorial. please can i get the password? i need to copy somethings for my test. thank you

  305. Job Villafuerte says:

    I looked at the OFDM tutorial and it was very descriptive for me to understand so I’d like to read more tutorials from your web page.

3 Pings/Trackbacks for "Charan L."
  1. […] Communications Engineering Tutorials – […]

  2. […] Dec. 22 A *nice* series of Tutorials on digital communications engineering is written to be easy to read, so it has a lot to offer for the student of modern synthesizers. […]

  3. […] A large series of tutorials in digital communications […]

Skip to toolbar