Charan L.
486 comments on “Charan L.”
7 Pings/Trackbacks for "Charan L."

[…] Communications Engineering Tutorials – http://complextoreal.com/tutorials/#.UayugEBHIrU […]

[…] 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. […]

[…] http://complextoreal.com/tutorials/ A large series of tutorials in digital communications […]

[…] http://complextoreal.com/tutorials/tutorial4fourieranalysismadeeasypart1/ will help you get an intuitive understanding. […]

[…] or why this formula is so bizarre, you can read a 5part article on Fourier Transform on this very good website (especially part 4 and part 5) which is the best article for beginners that I read (and I […]

[…] or why this formula is so bizarre, you can read a 5part article on Fourier Transform on this very good website (especially part 4 and part 5) which is the best article for beginners that I read (and I […]

[…] http://complextoreal.com/tutorials/tutorial4fourieranalysismadeeasypart1/ will help you get an intuitive understanding. […]
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
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!
Hi Charan,
I’m a big fan of your site (and opensource 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 MIMOOFDM and the diversitymultiplexing tradeoff.
All the best,
Chris
Hi Charan,
Your website “complextreal.com” 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 themostdifficult Information Theory to be explained! Hats off for your work!!
Thanks a ton,
Shriram Nandakumar
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.
Best,
Changan Zhu
Please accept my sincere thanks for providing a useful website at zero cost: complextoreal.com
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
India
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?
Thanks
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
Charan
Hey,
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
dalbert02 is right about not losing emails. however export/import is not the recommended approach. google the topic or see: http://askleo.com/how_do_i_move_my_microsoft_outlook_mail_and_address_book_from_one_computer_to_another.html for example.
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!
Thanks for the very readable tutorial.
Small error I noticed: Figure 1.7 (“a 3level signal”) has four levels.
Dan
Great website!
Thank you for making the tutorial available to public. The PDF file for tutorial 11 – Link Budgets is actually of tutorial 12.
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.
great website
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.
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 QAM16 constellation mapping, I can acheive the same or better coding gain then a standard 8PSK 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 QAM16 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 QAM16 TCM?
I hope I was clear,
Thanks a lot,
JB
The explanations are ultimate… Too good…. Thanks a lot for the nice work… It helps me a lot…
Appreciate your thoughtful words. thanks. – Charan
You have some really nice and intuitive tutorials. Thanks for posting!
Thank you!!!
For private training
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…
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!
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.
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.
Hi,
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.
Thanks,
Rijo John
Divider circuits were not easy to build. That was the main impetus for doing it this way.
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.
Thanks for this, very enlightening!!! Keep it up there!!
the equation in (1.11) is not correct. it should be =(Px – Ux^2) rather than = (PxUx).
I agree with you.
The site is well done and the subjects are very well construted.
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 email 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
Can you please add a link to my website to http://complextoreal.com/links/
I run a website for the RF & Microwave Industry called everything RF – http://www.everythingRF.com
We provide a tool which enables engineers to find products and companies based on their requirement. We also provide a useful White Paper Library.
Thanks,
Raghav
good site
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.
Rehmat,
Thank you very much. Very happy that you like them. – Charan
Great work,
Very useful collections.
hii
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.?
HI Aman,
Not clear what you are asking? What kind of wireless notes do you need?
Charan Langton
Hi,
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…
Sorry, I just saw this.
Well it looks like a good idea for a separate tutorial. Time is usually short and my list is always too long, so it may happen.
Thank you.
Charan
thanks
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.
Thanks a bunch, I will try to fix the label.
The tutorial contains very useful info…thanks for sharing such good information
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
–srikanth
Srikanth,
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
fyi – pdf link seems broken? I came to recommend these pages to a classmate. It worked yesterday 🙂
I could understand fourier transform very well by means of this stepbyexplanation;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 QAM16 constellation mapping, I can acheive the same or better coding gain then a standard 8PSK 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 QAM16 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 QAM16 TCM?
I hope I was clear,
Thanks a lot,
you are the best … , ever
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.
http://web.archive.org/web/20081206124648/http://www.jhu.edu/~signals/listen/music1.html
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.
this material is very good for understanding i really liked the tutorials very much and i request you to post more tutuorials on communication
Hi,
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/bookchapters and I never manage to keep up with the mathematical notation.
Thanks!
Dan
I have been following your tutorials for the last five years…and they are really helpful. Thanks
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.
thanks
regards
Arunpradhap Natarajan
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
cant we derive the CTFT in terms of real quantity from real fourier series if so give me that equation
regards
Arunpradhap Natarajan
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”.
Charan
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
thanks
regards
Arunpradhap Natarajan
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
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
Thanks
regards
Arunpradhap Natarajan
The negative frequencies are only for mathematical purposes. In real life there is no such as negative frequencies it is only applicable for math ONLY.
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
Thanks
regards
Arunpradhap Natarajan
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
thanks
regards
Arunpradhap Natarajan
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…:)
Fig. 273 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
Madam,
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.
What exactly do you want to simulate in Matlab?
Charan
Hi Charan,
Just a quick email to say thanks for your great website. We’re a maritime VSAt operator (incidentally using various SSLbuilt 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
CEO
OmniAccess S.L.
Thanks a lot. – Charan
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.
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.
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 106 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 12 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
Hi,
I want to say thank you for your this effort.
I think you missed the Figure 17 on 9 page.
Thanks for pointing it out. Will fix.
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 73(d) (pp. 302), which also has the associated text: ” ..the spectral replication period in Figure 73d is half what is was in Figure 73c”. 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.
Please send me the amplitude modulation
Padma, I not clear what you are asking. The complete tutorial is here on this site.
Am studying analog anddigital communication,I really don’t understand the terms like QAM,FPSK,QPSK,FSK ETC
Well then you should read some of these tutorials I have here, particularly the one on modulation which explains what these terms mean.
Hello Paul Mohan,
You are correct. There is an error in my Figure 73(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 Email, at R.Lyons@ieee.org, and
request the errata for the 1st Edition of my book. That errata will tell you how to correct the Figure 73(d)’s error. I encourage anyone who has a copy of any edition of my book to Email 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:
http://www.dsprelated.com/showarticle/192.php
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]
ma’am will u plz mail me a tutorial on ofdm
I am happy to point you to it, but it is right there on the list of Digitial Communications Tutorials on the front page.
http://complextoreal.com/tutorials/tutorial22orthogonalfrequencydivisionmultiplexofdmdmt/#.UZk7z7UanM
I am wondering if you are looking for something else?
Charan Langton
thanks a lot for providing ISI notes .I will be thankful to u if u provide gram schmidt orthonormalization notes .
“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 noninvertible system. In the whole modulation and demodulation process we want a robust transmission of m(t).
Divider circuits are noninvertible 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…
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.
http://www.gaussianwaves.com
Regards
Basa
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..
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.
Hi,
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.
Awfully nice of you to say this – Charan Langton
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?
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
Great website!
Thanks for you work.
Hello,
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(t0.01) with respect to 50HZ
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.
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.
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.
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 constantenvelope signal. This type of signal is immune to amplitudebased 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
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.
Oops. I meant to say I would like to say thank you for your tutorials, Mam. Pardon syntax. I know better.
No problem. I hope they were helpful.
hi
thanks alot
Hi! Do you have a idea how to design a rootraised cosine filter bandpass? I didn’t find a design tool on the web. There are several pages for lowpass variant but not for bandpass type in a OpAmp design.
Is this something secret?
Thank you!
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
Thank you Charan! Please drop me a PM. I will then send you an example of a timedomain RRCF bandpass. So you can see what I mean and try to simulate.
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:
http://ehydra.dyndns.info/name/chla/
And please unlock my email adress.
Thanks!
Hi,Charan
Can you explain more clearly about peak to average power ratio in matrix persepctive or other ?
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
Thank you very much, Jim. Very much appreciate it.
Charan Langton
Loral Space Systems
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
subcarrier. 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
Damoon
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.
s11c1+s12c2+s13c3+s14c4+(1/8(s11c1+s12c2+s13c3+s14c4))
In the next time interval, we have
s21c1+s22c2+s23c3+s24c4+(1/8(s21c1+s22c2+s23c3+s24c4))
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
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?
Yes, that is correct. The sum is linear bcause the c
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.
Charan
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
Damoon
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
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 –
Henry
Hi Henry, I did get an email from you but what you sent I can not read.
Charan
Hi Charan –
What did you mean with got email? The content of the mentioned weblink? That is a plainemail format every local email reader can read. Anyway, I added it as a textfile on this link:
Thanks!
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
If the instaneous signal above the mean, then the error may not happen.
Charan
if there is any thing else to read and finding out let me know please
wonderful work
I really enjoyed the simplicity and fun part of your writing style. I relearnt a lot of things about DSP.
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.
Great Website LOVE IT!
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…
Very Nice job, I am from Argentina, and I am studying Fourier.
This job of great help to understand Fourier
Many Thanks
Jose
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!
Thank you, John.
I try.
Great!. I love and like it.
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
You know I am not sure what polar coding it? Can you describe it?
Perhaps I know it by a different name.
Charan
Hi. I seem to be having some issues where the right side of some figures and equations seem to be cutoff. I used Chrome and Internet Explorer thinking that maybe the browsers rendered the .pdf incorrectly, but this cutoff appears on both copies.
Anyone else having this issue?
I am as well.
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 🙂
Good analogy towards the complex concepts…..!!
found it worth sharing..
thank u…
the notes given are superb and very helpful to get an idea about the concept .Thank u
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.
High praise!
Thank you.
Dear Ms. Charan Langton,
I want to thank you for this website. I searched long and hard on the web for a straightforward 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)=4cos2t6sin3t 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 dumbdown 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 Amazon.com 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 coauthor. 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.
Sincerely,
Michael Gutmann
Instructor, Dept. of Math
University of Portland
Portland, Oregon
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]
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 .
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.
It’s great.
Thanks
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 16ary 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.
Thanks
please elaborate how have you come up with mathematical expressions of summation with 1/2pi.i really can’t understand
Hi
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.
Thanks
Kalpa
Thanks.
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
Hi,
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+h2i+n<0) {where i:signal from interferer (+1, 1)};
n: AWGN
=P(n<h1h2 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,
Regards
Kris
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
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?
HELP PLS.
Your CP needs to be just a little greater than your delay spread.
Charan
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 subcarriers to be 13 KHz ( as I got a Bc0.9= 13.3 KHz)and a a symbol period of 76.92us, so that each subchannel will experience a flat channel?
Thanks for your help and advice.
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.
Charan
Hi Charan,
I’ve been working on calculating that frequency spacing. I came across an info which states that the subcarrier spacing is the inverse of the symbol time less the guard period; and that the guard time must be 24 times the delay spread. Is this accurate?
Btw, I thought that for flat fading the subcarrier spacing needed to be below than the coherence bandwidth.
Anyway, I’m a bit confused, but i’ll keep trying to calculate that subcarrier spacing.
Thanks
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 subcarriers 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.
Charan
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
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.
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.
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
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 subbands 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.
http://static.ddmcdn.com/gif/cellphoneradiationspectru.gif
Charan Langton
‘
thanks
Great piece of history thanks or sharing!
What is the link, can you post it here, please.
Hi Charan –
Here is the link and it is now in textformat. Thx. H.
http://ehydra.dyndns.info/name/chla/20130808Re_Hi%20Henry201701576.txt
In the first link, I only see a antialiasing filter. I dont see a RRC filter. In the second link, there is just the usual description of a RRC filter. RRC is a low pass or a baseband filter. As far as know, there is no way to make it into a bandpass filter. Of course you can always frequency shift a baseband signal but I am sure that is not you wanted.
Charan
Thanks Charan!
Do you know of a formula to mathematical simulate a RRC filter usable in timedomain in SPICE? So I can fit a filter per hand to the curve.
regards –
Henry
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.
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!
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.
Hi
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?
Regards
Kalpa
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.
I think I covered some of this in the adaptive filter tutorial. Let me know if any of that was helpful.
Charan
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
As per my understanding Ux should not come in equation 1.11 because this equation depicts variance with zero mean.
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 ?
Regards
Kalpa
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
Hi Feng,
So nice of to say that. thanks.
Next time I write a paper, perhaps I will ask you to review it?
Thanks again,
Charan
I like this webpage
Charan:
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 MPSK, there would be 3N bits…” Should it be 8PSK? 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 rate1 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 memoryless 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. 🙂
Feng
Feng,
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.
Charan
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!
Thank you Darren, I will try to add the spectrums.
If you can help, I am most grateful!
Charan
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.
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 examplesupported) 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
Husam
Many thanks for your helpful notes. I learnt a lot from it.
🙂
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,
Hasan
Hi,
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
Good catch.
I think I used a QPSK signal to create these pictures. The QPSK symbols are not on the xaxis 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.
Charan
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
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.
Naveen
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.
I want to say: thank you, your work is extraordinary.
Best regards.
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.
Regards,
KJ
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.
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.
Thank you for posting these indepth, 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 oversimplifying. It looks as though you have the makings of a classic book on communications. I hope you consider writing one.
Chuck,
Chuck,
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,
Charan
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 lowpower 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.
Thanks!
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.
Yes, you are quite right. The sampling frequency needs to be twice the highest and not carrier. My mistake.
Charan
thank you for these intuitive tutorials. These really help to get a clearer picture.
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
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
yes but my question was that .875 and its harmonics which is 2x.875 , .. etc are not orthogonal to each other
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?
Charan
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
That’s because, it is using a trapezoidal approximation for integration. So the answer may not be identically 0.0.
Charan
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.
Charan
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
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.
Charan
When the delay spread is less than one symbol why we get flat fading ? , and why we get frequencyselective in case of larger than one symbol ?
Really appreciate your work, pretty helpful. The most useful material I found on the internet
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 explanation.it is great work. Request you to update the tutorial on MaxlogMap turbo decoding algorithm also, since it is difficult to represent the data in fixed point for MAP decoding algorithm.
Best Regards
Ramamurthy
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.
Charan
one of the best wwwsites.
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?
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.
Thanks,
S Srikanth
1. pulse shaping occurs only at baseband, before modulation.
2. ISI can and does occur in all types of channels, AWGN, bandwidth limited, filtered, nonlinear, multipath etc.
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.
Thanks,
S Srikanth
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 pulseshaping is just a nomenclature. There are NO pulses anywhere.
Charan Langton
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.
Thanks
S Srikanth
hello…
i am zeeshan and pursuing master in broadcast technology. sir i got confused how a transport stream get divided in transponder bandwidth in DVBS.
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
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
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
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 engineeringfirst 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 bandpass signals
• quantization and PCM
• source coding and lossless data compression
• line codes
• transmission through bandlimited 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.
A real pleasure to learn.
Thank you Miss for this site and the share of your knowledge.
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.
really This website is awesome.
why intereference is minimum in case of orthogonal signals?
why intereference is minimum in orthogonal signals?
why intereference is minimum in orthogonal signals?
Interference is the same, just does not effect all the carriers the same. Only those that are at the same frequency will be effected.
on the bottom of page 11，A should equals sqrt（2/T），not sqrt（1/T）
Hello, pleasse do you have a good write up also on demodulation just like you have on demodulation.
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!
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??
Please elaborate the answer more so dat i can understand it more.
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
So nice! Thank you for saying that.
You made my day!
Charan
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.
dave
Can u please help me with constellation diagram 3pie/8 shifted 8psk. how to calculate average value and minimum value of the envelope
First sentence at the page 7: “If a voice signal is
modulated
on to a carrier, what is the bandwidth
of the modulated signal? It is still the
same”
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)
My description applies only to PSK signals. FM clealry spreads the signal. You are right in your comment.
Thanks,
Charan
Why in an FM modulated signal the BW would be infinite ?
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.
Artak,
Yes, you are quite right on both, this and the previous item. Short sighted of me to say that.
Charan
Thank you very much for your effort.
And I respect you for releasing on internet
can yuo plz help me tutorial about carrier frequeny offset
Your service is a glowing candle from which i get my light called knowledge.
You should have been a poet! – Charan
Thanks.
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
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”
Question:
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?
I think the “sampling the signal” and then its “quantization” should be A/D conversion. Am I correct?
I’m a younger telecommunications engineer and i’m new on this page and will like to be coorperative in this domain. Thank you
Reading your tutorials are like being reborn in the complex communication world, or having a english translator on visit to Mars…Thanks a lot.
So nice! Thank you very much.
I try.
Charan
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?
Thanks
Srikanth
“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
Thanks
Srikanth
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 ?
nic works
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)
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 ‘MIMOOFDM 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,
Srinivas
IIT Madras
India
eye.pdf looks damaged, I could not open. Thanks
I will repost it.
Thank you for your effort
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
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?
Regards
Damoon
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.
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!
Thanks,
Charan
EXTREEMELY INFORMATIVE AND INTERESTING TUTORIALS IN DIGITAL MODULATIONS PRINCIPLELS UNDERSTANDING AND THE FUNDAMENTAL CONCEPTS ARE MADE VERRY CLEARI AM AN ELETRICAL ENGINEER TRYING TO UNDERSTAND THE FUNDAMENTALS IN COMMUNICATION THEORY AND PRACTICALS IN THIS ERA OF COMMUNICTIONS.I AM EXTREEMELY THANKFULL TO YOU FOR PROVIDING THIS INSIGHT INTO DITAL MODULATIONS SO CLEARLY AND IN SIMPLE CONCEPTUAL MANNER WITH APPROPRIATE DIAGRAMS AND WAVE FORMSI AM HIGHLY OBLIGED TO YOUR TUTORIALS PUBLISHED ON LINE.THANK YOU IMMENSELY.
Michael,
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.
Charan
June, 2014
Any way.
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.
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.
Charan
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?
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…
Hi,
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 ..how can i get more samples increasing the sampling frequency ?
in other words, how the sampling frequency affect the structure ?
Thanks
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.
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.
Charan
Love your website , you should become teacher/professor
Regards
Amir
Thanks a lot!
I found it fantastic.
Thank you, professor Charan 🙂 I think I just know who I want to be 🙂
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.
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.
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?
Hi,
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.
Regards,
Anirudha
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
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
its understanding to good
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 🙂
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.
congrats!
Luis.
Hi Charan,
The information on Fourier analysis was really awesome. Big Fan !!!!
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! 🙂 )
Hi,
Thanks for such beautiful and amazing notes. They really made my mind to jump from complex to understandable fundamentals.
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.
Thanks! Very good tutorial
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 AM TRYING TO GO DEEPLY, I WILL ASK YOU SOME QUESTIONS SOONLY,
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)
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
Hi there,
Thanks a lot for your easy to understand tutorial.
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 ?
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.
http://www.mathworks.com/help/signal/ref/rcosdesign.html?refresh=true
Charan
http://www.mathworks.com/help/signal/ref/rcosdesign.html?refresh=true
so when we say BW of LTE signal is 20 Mhz, does it mean that we want to send data at 20 Mbps?
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
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
Hi Charan,
When we say LTE supports bandwith of 20 Mhz, doeas it mean we support upto 20 Msps?
Your tutorials make the concepts understandable, Thanks a lot!!!
Fantastic and very useful. May God bless the originatar/(and consequent forwarders) for this remarkable service.
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,
Arash
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.
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.
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.
regards
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
Anirudh.
Charan,
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
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
Charan,
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 autosend 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,
John
Great for Engineers
Great tutorials
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:
http://www.sssmag.com/G3RUH/index1.html
Idmond
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 MIMOOFDM? It would be very beneficial as channel modelling is a common but challenging topic and MIMOOFDM is the technology of choice, but the mathematics and concepts may be difficult to grasp at first hand. Please let me know
need a written program on free space optical link for channel interference reduction
Respected Madam,
I am an M.tech scholar from an institute in india.
HATS OFF to your exceptionally good tutorials.
Your tutorial speaks everything.
Shouldnt phase on page 6 be tan1(Q/I) and not I/Q
Great to be here! I learn a lot! Thank you very much!
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
http://www.ni.com/whitepaper/3876/en/
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
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.
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 yaxis being Q and the xaxis being I.
thanks
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 ?
Unable to download or open few pdf’s (fft transforms). Please help
I have uploaded all new versions of the FFT tutorials. Hope you are able to open these.
Charan
Hi…few pdf are not accessible (ffts). Please help
Which ones are missing? Occasionally I notice that some don’t show up some times and then reappear at a later time. Internet Magic!
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 website 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 Geolocation 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
Thank you for all the tutorials. It has helped many people.
Hi:
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 walkthrough with the example really helped me understand the basic concept.
Thank you for posting your comment about the error. I have not had the time to go back and revise the tutorial but I do plan on doing it.
Charan Langton
Apologies. I understand there is a proof right below.
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.
George
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
Nice website, thank you 🙂
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.
Thanks
I will start doing it shortly. If you are on Facebook page for Completoreal, you will see the notice.
Thank you for the comments.
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.
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.
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.
Thanks.
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
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 ?
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.)
Charan
hi，Charan，
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.
Hi,
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’);
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’);
Try this one.
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’);
Yes, you are correct, I will fix this error. – Charan Langton
http://complextoreal.com/wpadmin/editcomments.php?p=56&approved=1#commentsform
Mam,
I really loved the contents on provided by you. I am planning to design a communication payload system for cband 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
Hello Saroj,
This is a big question. What are you trying t0 accomplish?
Charan Langton
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.
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.
Charan
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
sorry i meant 90 for pos freq and +90 for neg freq is correct
Great Site, thank you!
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.
Hi,
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.
Regards,
Basant
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?
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.
Regards,
Chris
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.
Charan
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.
Chris
Muito bom! Obrigado pela ajudar!
Very good!Thank you!
Your notes made my life easy. I have no words to express my gratitude.
Thanks Sir
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 Ksubm, sometimes as Ksubd, sometimes as ksubd, sometimes as ksubm (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 813 and feel they may introduce confusion. I say this because they show possible error signals that converge to nonzero 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 ssub2() is the output of the VCO, shouldn’t that omega be omegasubout? Also, in the expression for omegasubout, shouldn’t omegasubi be the input?
6. On page 8, you state the Ksub0 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 phioft was meant.
8. On page 9, the expression for phisub2 comes out of nowhere. You do not explain why you can replace frequency with ssube, 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 cleanedup and the organization improved.
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.
Hi charan,
In the figure 11 :page 8 , you have mentioned that the required low pass bandwidth is onehalf 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 Figure11
Am I missing some thing here.please correct.
Thanks
Arun
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! 🙂
Thank you. Very grateful for these. Got fix them.
Charan
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 rescaling) 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 nary 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 nary 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 nPPSK)
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 http://ecee.colorado.edu/~mathys/ecen5682/slides/convperf99.pdf
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.
Very well explained. Thanks
Any tutorial on *Multidimensional Constellations* ? please upload.
Dear Sir/Madam,
i referred your material tited “Linear Time invarienr (LTI) systems and Matched filter” which is available at http://www.complextoreal.com. 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….
Thanks alot for your effort and contributions. These tutorial are really helpful.
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: http://www.akiti.ca/FourierTransform.html
It is simple to use and I hope you find it useful.
I recently posted n update to the DFT tutorial. Be sure to look at it. – Charan Langton
Differential phase shifting… does it include polarity correction process as opposed to polarity prevention coding?
No, not usually. Just prevention is deemed sufficient in most cases.
Thank you so much for such a wonderful collection. It has helped me a lot.
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 rework 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.
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
Shahab
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?
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
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”
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
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,
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.
Charan
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.
Regards
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.
Since
cos(wt) > sin(wt) > cos(wt) > sin(wt) > cos(wt) > …
holds in HT, you obtain your result as
HT(cos(2100)t)=sin(2100)t.
However, in my opinion,
HT(cos(2100)t)=sin(2100)t=sin(1002)t.
Because only in this case can we have cos(2100)t+jsin(1002)t=exp(j(1002)t), attaining that the positive domain is left. Otherwise,g+(t)=2cos(2+100)t+…+j3cos(3100)t cannot be rewritten as g+(t)=(4cos2t6sin3t)exp(j100t).
Hi,
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’ 🙂
Regards,
Stephen
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. 🙂
Regards,
Stephen
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.
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
Stephen, I accept all your comments gratefully. They are really good! – Thanks Charan
Keep reading.
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?
Regards,
Stephen
very short and impressive note. Thank you!
Reading your tutorials is a real treat however Tut 21 Figs 4 and 5.a thru 5.c are missing 🙁
Hi Charan
I am looking for a Simulink model for wireless receiver for education purpose. Bumped into this one, http://www.valpont.com/asimplewirelessreceiver/pst/, at valpont.com but it doesn’t work. Do you have one handy?
Also I think valpont.com 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.
Thanks
Tong
Hi,
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…
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.
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.
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
Michelangelo
Thanks a lot, i want to know on synchronization in communication (concept,basics and foundamentals) and i would appreciate if you help me.
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!!!.
Mehdi
From IRAN
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!
Thank you. Most grateful for your nice comments. – Charan
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.
Thanks
Diva
Thanks. The book will be in color.
Chran
Do you any tutorial about Reed Solomon codification?
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
This is just amazing!
But, don’t you have something about analog communication?
A fantastic initiative!!! :D…Helped a lot.
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?
Hi,
Very informative tutorial. One thing about nonlinear 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 blockshape as the inputsine 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 blockshaped output signal (so including harmonics)?
2) Is it the power of the fundamental harmonic in the blockshaped signal?
There is a 0.9 dB difference between the two interpretations, but I’m not sure how to interpret this correctly.
Best regards,
Jeroen
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?
Amazing tutorial
Charan,
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,
Jonathan
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.
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”.
It is now January 2017 and Amazon still does not list a hardcopy (print version) for sale. Is there a new date for availability of the printed version?
Thanx,
Larry Jubb
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,
resh
Resh,
There is no rule that says that FFT input has to be time domain or frequency domain or any domain in fact. It can be either. However because of the confusion you have stated in your comment is common amongst engineers. This is why the FFT block in OFDM at the transmitter is called the IFFT. Please read my OFDM tutorial carefully and you will understand what I mean.
Also you may want to buy my book: https://www.amazon.com/IntuitiveFourierAnalysisSpectralEstimationebook/dp/B01JL5R61K/ref=sr_1_3?s=books&ie=UTF8&qid=1484332030&sr=13&keywords=intuitive+guide
Best, Charan
wonderful tutorial. please can i get the password? i need to copy somethings for my test. thank you
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.
When will the printed book be available?
Thank you.
It keeps getting delayed as we find more and little errors in it. having an eBook has helped us to clean it up. But I think, now it is planned to start printing in Mid March and should be available by end of April on Amazon.
Thanks for sending me that error. Will look at it and fix it. Thanks again! – Charan
BTW What did you think of the other chapters?
I have a comment on FFTChapter6, equations 6.1, 6.2. and 6.3.
Given the definition 6.2, then 6.3 is always 0.
I think you really meant
lambda_f = 2*PI/N=tau/N
lambda_k = lambda_f*k
First of all, I am a great admirer of your website. So when I found out you wrote a book on Fourier Analysis I knew I had to buy your ebook. However there is a HUGE!!! problem with your ebook. It won’t open on the Amazon cloud reader!!! It can only open on a single kindle device or on a phone/tablet containing the kindle app. As of now, you are the only Amazon ebook in my 239 ebook collection that won’t open on the amazon cloud reader. Can you PLEASE make your book available on the amazon cloud so it can be properly studied and read by anyone, anywhere, on any device in the world? I myself read technical ebooks on my laptop when I travel or on my desktops when I need larger viewing screens for charts and equations and a desk to write on. This is only possible because of the amazon cloud reader.
Also, when will you be printing a hard copy of your book? I would love to own both a digital and a hard copy of your work. Thanks.
Rudy
The print copy should be out by end of April 2017. About the eBook, unfortunately I don’t control what devices it will work on, Amazon does that. I will look further into this issue but right now I dont know as I can help much.
Wonderful explanations Mam. Didnt knew Learning Digital Communucations and the very scary Fourier Transforms was this easy. Thanks a lot for putting effort in creating such wonderful tutorials.
Looking forward for more of them.
Really gud article,easy to understand,thank you
after reading a lot , i cant find how connections ( basically I/Ps ) to modulo2 adders are decided , you mentioned that Peterson and weldon mentioned about how to decide the Polynomial , but i cant find that,so can you plz let me know how polynomials (i.e which Shift registers output will go to which Modulo adder and how they are connected.
Let’s say the polynomial is x^2 + x^3
Then the coefficients are 0, 1, 1. Now 0 being the coefficient of the linear term x, 1 being the coefficient of two next polynomials x^2 and x^3. Then these are your connections.
Its really quite simple.
Charan Langton
PS I have already given a list of “good” polynomials in the tutorial.
Hi Charan, Thank you so much for this very detailed tutorial on Turbo Codes. I am originally from Ghana and currently doing my masters in Japan. In my attempt to further understand what i read about Turbo decoding algorithm, i wrote a program in MATLAB. The issue that i have run into is that my Eb/No vs BER graph tends to oscillate instead of decrease smoothly with every iteration . I was hoping you could give me some pointers as to the possible errors i could be making. Thank you.
Hi, awesome note. Thanks a lot. Can you help us further with the answers to your questions at the end. Thanks 🙂
Not sure what you are asking, Sumit. What questions? I do not see any.
Charan langton
I meant to ask the Questions at the end of chapters . For e.g. in Chapter 1 “Trigonometric Representation of Continuoustime Periodic Signals”, Question 8 states : What is the maximum amplitude of N harmonic cosine waves added together. What is it for sine waves ? These are very nice questions and the answers will further help in understanding the subject.
Thanks
please can I get certification course?
Hello Charan,
Could you confirm which s/w & tools were used in simulating these results?
Thanks
I used Cadence SPW, Signal Processing Workstation. SPW is a wonderful program for communication system simulation, old and stable. I am right now trying to transition to Simulink but do not find it as intuitive nor as easy to use as SPW. – Charan Langton
Hello Charan,
Could you confirm which s/w & tools were used in simulating these results?
Thanks
HI, some links don’t work anymore. Actually most of them. Anyway your tutorials are great.
Thanks.
Regards.
Hello Charan,
This is Seth the physics student from UCLA. I enjoyed our discussion on the flight from Oakland, and thank you for your insight on weighing career options.
The work I mentioned related to solitons is referenced on our research webpage: http://acousticsresearch.physics.ucla.edu/solitarywaves/
On that page there is a video of the effect along with a few pictures and citations.
Best Wishes!
Seth
Hello Seth,
Please send me your address. I promised to send you the copy of the book which I will do.
Hope your new school year is going well. – Charan
Hello Ma’am,
Where to find your tutorials. I am seeing only the comments when I clicked on Digital communications tutorials in the home page.
Regards,
Sharath
If you click on the link, it has something like this on the page.
Description: Differential Phase Shift Keying
Download: diffcod.pdf
Thats the tutorial.
Best,
Charan
Post comments, questions here. Thank you and please post a review of my book on Amazon (only if you like it!)
Thanks for the amazing lectures!! I am glad to know if there are any lectures explaining the Inphase and Quadrature phase.
Thanks
There is often confusion about what the terms Inphase and Quadrature means. Very simply, this is an idea that comes from the complex representation of a carrier. A carrier is a periodic signal of a particular frequency, say f0. But periodic signals ( as used in Fourier series representation, which is the signal processing holy grail) are said to come in two forms, a sine wave and a cosine wave. They are of course the same thing, with each a shifted version of the other. cos(wt) = sin(wt+ 90) However, because this shift is (90 degrees) these two waves are are mathematically orthogonal to each other. The sine wave is hence located at the quarter point, (90 out of the 360 degree cycle) or is said to be in quadraturephase to the cosine wave. So it came to be that we call the cosine the inphase or I and sine the quadraturephase, or Q channel. In complex notation we write the carrier as cos(wt)+jsin(wt). The j tells us that the sine wave is in quadraturephase or in quadrature from the cosine. So that is all there is to the I and Q conundrum. Very simple idea really.
Any time, any one talks about inphase and quadraturephase they are just talking about a complex carrier, consisting of a cosine and sine of the same frequency, both independently modulated with data to create a modulated carrier. The I and Q channels (the shortcut way of referring to inphase and Quadraturephase signals) are nearly always treated as independent signals and are added together to create a “real” signal.
If you were asking a different question, than what I have written here, let me know.
Charan Langton
I am approaching Fourier Transfom. Your tutorial is very useful and intuitive. Thanks a lot.
I think I found a typo on Pg12, Tree Diagrams section: Ref. Fig9, at the first coding step, the output is 11 and the new state is 100. However, the text says ‘111’.
Many thanks for this lucid tutorial.
In Fig10, I think the labels need to be swapped for correctness.
Thank you for the lucid tutorial!
Which chapter are you referring to.
In Chapter 2, Eq 2.3, I noticed that the righthand side contains a ‘j’ in the denominator. Is this a typo?
Many thanks for this lucid book!
Do believe you are correct. the “j” on the numerator should not be there. Another item to be added to the erratta. Thanks for pointing it out. How do you like the book otherwise?
Charan Langton Please send me your address, I will send you a free copy of the book.
This is a very nice tutorial. I love how you make examples from real life to explain the concepts. For your information, the links you give at the end of the tutorial are not active
I forgot to write which tutorial I was writing about. It’s the tutorial on OFDM. Sorry.
Thanks. Appreciate it. Charan
These tutorials are helping learn concepts that I thought were complicated. With these tutorials I find digital communication interesting.
I thank God who worked through you so that many people can be blessed.
Thank you.
These tutorials are helping me learn concepts that I thought were complicated. With these tutorials I find digital communication interesting.
I thank God who worked through you so that many people can be blessed.
Thank you.
Hello Charan,
My students and I have greatly enjoyed your tutorials over the years. Would you possibly be available for a brief Skype conversation with my senior digital communications class, to talk about what a career in communications looks like, and to share any career advice you might have for them?
Sincerely, Tim
Hi,
Thank you so much for your tutorial on Fourier Analysis (“Intuitive Guide to Fourier Analysis”), particularly Chapter 6 on the DFT.
I’m doing a project report at university and wanted to reference your work, but can’t seem to find the file now on this page. Have you erased it?
Thank you in advance for your help.
Kind regards,
Pedro
Hello Pedro,
You can refer to my book. The chapter is from my book. Here is the citation to use.
Langton, Charan., Levin, Victor., “Intuitive Guide to Fourier Transform and Spectral Analysis”, Mountcastle Company 2017
I have removed tutorials 5 and 6 from the site when the book came out. The book is now available at Amazon in print and Kindle and I hope people would buy the complete book. If you liked the chapter, may I ask if you can post a review for it on the Amazon site? Thanks and best. – Charan
https://www.amazon.com/IntuitiveFourierAnalysisSpectralEstimation/dp/0913063266/ref=sr_1_5?s=books&ie=UTF8&qid=1509546286&sr=15&keywords=fourier+analysis
For the ‘decoding using a sequential algorithm’,I get confused about the error counter.
Since for the decoder, it can not know the real information bit which has been transmitted.
So, how you know it is error when you decode and increase the error count?
There are only specific transitions that can happen. For example, if the current bit set is 00 and then we get 01 and the transition does not allow that, then we know an error has occurred either in the current set of bits or some where earlier.
Hi
First thank for your great tutorials
so Im working on a research project on adsl systems the ansi standard and I can’t find any good explanation of the dmt modulation in terms of the channel model in the adsl wired channel and the reed solomon coding and the scrambler block in the block diagram and the bit loading algorithms implemented in the adsl system like water filling and such algorithms .
I was wondering if you can help me with this subject and I would be really really greatful to you.
thank you so much.
Hi Rabih,
So what exactly is your question? Do you need help in understanding DMT modulation?
Charan
Hi Charan,
From what I understand from different texts, I think I agree with arun’s comment above.
In fig 11. The bandwidths shown for sinc pulses, must all be doubled. That is, the single sided bandwidths of the red, green and blue curves must be 1, 0.5 and 0.25 respectively. Can you please check and clarify.
Thanks.
Yes, you are right, all those numbers in the lower figure 11, should be double.
Thanks for pointing it out.
Excited and respectful and respectful
I am a graduate student in computer network engineering and study in Iran
And I’m investigating cryptography and decryption with the convolution of the code
I need an algorithm to capture and hide the data and submit an image file, and eventually send the data hidden behind the photo to be detected in the receiver.
please guide me
Thank you.
Great mam… great work done by you. It is helping me learning my weakest part.
Hi Charan,
I recently got your book(digital copy) and I’m planning to plow through it over the course of this month. I love the fact that you made this page for correcting errors, wish other authors would do the same :). If I find any errors, I’ll keep you posted here.
My first one small error, but it had me scratching my head for 5 mins. Page 17, Fig 1.13b and Fig 1.13d, I believe there should be a minus sign before the (1/3)cos(3wt) and (1/7)cos(7wt) terms in the figure’s description. You stated it correctly in the equations below (eqns. 1.9, that’s where I conformed my suspicion).
Hi Charan,
I’ve been a big fan for many years, as yours was one of the first DSP/commsexplained sites, which I found during my stint at Lockheed in Sunnyvale, CA, working on the MUOS program.
I was thrilled to see recently the publication of this book, and immediately bought it. The book is a goldmine and I plan on reading it covertocover. The typos are inevitable, don’t worry.
I did find one, I believe, just now: bottom of page 68 purports to list an identity for z = 0.5*(z + z*). However, the RHS yields Re{z}, not z.
Hi Charan, Thanks for the great tutorials. In the “All my filters” tutorial, on page 2, you say “Writing the transfer function for the filter in Fig. 6.4.1” … but where is Fig. 6.4.1 ? Perhaps it was in an earlier tutorial, forgive me if I’m missing something obvious!
I’m in the UK and currently studying for a BENG in Electronic Systems Engineering. The Phase locked Tutorials fitted in really well. Thanks.