110 Comments on “Tutorials on Digital Communications Engineering”

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

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

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.

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.

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

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

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

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.

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.

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

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.

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…

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

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

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

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

Assuming source transmits +1, BER is

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

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

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

Kindly let me know whether this analysis is correct.

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.

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.

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

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

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

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.

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

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

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

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

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?

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.

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.

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 sub-bands then has a center frequency and a bandwidth, which is of course 100 MHz, the width.

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

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

In this picture the colored bands are the allowed ranges.

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 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.

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

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.

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.

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)

EXTREEMELY INFORMATIVE AND INTERESTING TUTORIALS IN DIGITAL MODULATIONS PRINCIPLELS UNDERSTANDING AND THE FUNDAMENTAL CONCEPTS ARE MADE VERRY CLEAR-I 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 FORMS-I AM HIGHLY OBLIGED TO YOUR TUTORIALS PUBLISHED ON LINE.-THANK YOU IMMENSELY.

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.

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

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

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 walk-through with the example really helped me understand the basic concept.

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.

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

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.

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.

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!

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.

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.

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.

There is often confusion about what the terms In-phase 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 quadrature-phase to the cosine wave. So it came to be that we call the cosine the in-phase or I and sine the quadrature-phase, 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 quadrature-phase 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 in-phase and quadrature-phase 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 in-phase and Quadrature-phase 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

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

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

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 Charan
many thanks for this wonderful trove of comm. theory papers. I work for a ASIC/Systems company that is in the wireless comm field. And I have found myself referring to your tutorials time and again. This website really shows how comm. theory should be really taught to students who are aspiring to be engineers and not mathematicians.

I do have a question regarding the filter theory paper- in the section about MMSE equalization.
Specifically Equation 1.17 that specifies y(i) in terms of s(i) and n(i)

Questions:
1) what is s(i). Is s(i) used in place of x(i) that was the original transmitted sequence of symbols
2) How would you know apriori the channel response s(i) + 0.5*s(i-1) + n(i) – are you assuming there are 2 rays caused by multi-path ?
3) Similarly Equation 1.24 is also confusing. How do you actually derive the equation 1.24. Could you please help explain further ?

Let’s say that we take an example of Bluetooth/WiFi…

I have some data which need to be transmitted from Device A to Device B (let’s say via Bluetooth)

let’s assume this happens at Device A
1)raw data (payload) bits –> 2) modulation and coding(MCS) —>3) adding all those shit extra headers from n/w layer and mac layer —-> 4)multiplication by a continuous waveform —-> 5)upscaling to the centre frequency (@2.45 Ghz)

Now that your hardware (Bluetooth radio) is ready to transmit ……… I have a question here,

At what rate does it transmit in real time over the air ?
like 100 times a second or 100 Hz frequency or 50 Hz frequency or 20 Hz frequency (100 Hz: 0,0.01,0.02,0.03,0.04,0.05……….seconds)

I believe bluetooth has a specification that It needs to transmit at every 100ms over the air.

Does this transmission rate (T_actual )have any relationship with my digital data at the output of step 3 ??
For Example, my raw data before modulation and coding would be a binary data which is represented by some waveform (ex: square w/f representing in Amplitude vs time … this time here is of Bit time Tb and after MCS , it will be Symbol Time Ts … Do we have any relationship between Ts and Actual transmission time T_actual )

A clarification, I am reading tutorial 13, a clarification in table II on page 4, the third column of (extended again by 1 bit), says that the minimum distance and Hamming is 3 when actually it is 2 (dmin = two),. it’s a mistake?

Adding a sixth parity bit, what is the correct six-bit sequence with dmin = 3?

Also the integers 8 and 9 are in binary like 1001 for the integer 8 and 1010 for the integer 9. It should be 1000 and 1001 respectively.

On the paragraph: Number 2 can then turn into Number 8, I should say Number 9.

6 more not used 22 more not used 52 more not used
Hw = 3 Hw = 4 Hw = 5
dmin = 1 dmin = 2 dmin = 2 (dmin isn´t 3)

Dear Sir,
A clarification, I am reading tutorial 13, a clarification in table II on page 4, the third column of (extended again by 1 bit), says that the minimum distance and Hamming is 3 when actually it is 2 (dmin = two),. it’s a mistake?

Adding a sixth parity bit, what is the correct six-bit sequence with dmin = 3?

Also the integers 8 and 9 are in binary like 1001 for the integer 8 and 1010 for the integer 9. It should be 1000 and 1001 respectively.

On the paragraph: Number 2 can then turn into Number 8, I should say Number 9.

I am a retired engineer who worked in a parallel field and am now relearning all the things I want to learn from my university days. Your writing is much appreciated. Thank you!

About Limits on data transfer – Shannon and Nyquist and the information carrying capacity of signals.
I dont know why the web page allow access to other tutorials but keep asking for login when I want to access this tutorial above.
Could you please help me ?
Thank you very much

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

[…] or why this formula is so bizarre, you can read a 5-part 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 5-part 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 […]

[…] If you are looking for theoretical material for learning digital signal processing and software defined radios see Suggested Reading on the GNU Radio website. If you are an absolute newbie to SDR (like I was when I started) and haven’t even got a clue of what quadrature signals are, I suggest you start with Quadrature Signals: Complex, But Not Complicated and the excellent tutorials at Complex2Real.com. […]

[…] 3] “Tutorials on Digital Communications”, Complex to Real Website, Charan […]

[…] 3] “Tutorials on Digital Communications”, Complex to Real Website, Charan […]

[…] 3] “Tutorials on Digital Communications”, Complex to Real Website, Charan […]

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

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

I hope I was clear,

Thanks a lot,

JB

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.

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.

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

I hope I was clear,

Thanks a lot,

you are the best … , ever

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.

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/tutorial-22-orthogonal-frequency-division-multiplex-ofdm-dmt/#.UZk7z7U-anM

I am wondering if you are looking for something else?

Charan Langton

“In AM synchronous demodulation, Why we don’t divide m(t)coswt by cos(wt)

instead of multiplying by cos(wt)?”

The divider circuit (or the system that divides m(t)coswt by cos(wt)) is non-invertible system. In the whole modulation and demodulation process we want a robust transmission of m(t).

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

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

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

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.

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…

Good analogy towards the complex concepts…..!!

found it worth sharing..

thank u…

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|+|h2|i+n<0) {where i:signal from interferer (+1, -1)};

n: AWGN

=P(n<-|h1|-|h2| given i=+1)*P(i=+1)+P(n<-|h1|+|h2| given i=-1)*P(i=-1)

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

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

Kindly let me know whether this analysis is correct.

Thanks in advance,

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 sub-carriers to be 13 KHz ( as I got a Bc0.9= 13.3 KHz)and a a symbol period of 76.92us, so that each sub-channel will experience a flat channel?

Thanks for your help and advice.

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 sub-carrier spacing is the inverse of the symbol time less the guard period; and that the guard time must be 2-4 times the delay spread. Is this accurate?

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

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

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 sub-carriers less than this amount will do.

The number of carriers will depend on the standard you want to use. If you use 802.11, and you choose 48 carriers, this will give you a spacing of 20.8Khz.

For 48 carriers, we get Tn = 48mus.

Cyclic prefix we can set as 1/8 of above or 6 mus.

Symbol time would be 48 + 6 = 54 mus.

Throughput is 1 msps minus the CP overhead.

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 sub-bands then has a center frequency and a bandwidth, which is of course 100 MHz, the width.

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

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

In this picture the colored bands are the allowed ranges.

http://static.ddmcdn.com/gif/cell-phone-radiation-spectru.gif

Charan Langton

‘

thanks

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

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

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.

hello…

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

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

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.

why intereference is minimum in case of orthogonal signals?

why intereference is minimum in orthogonal signals?

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

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 8-psk. how to calculate average value and minimum value of the envelope

can yuo plz help me tutorial about carrier frequeny offset

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)

Thank you for your effort

EXTREEMELY INFORMATIVE AND INTERESTING TUTORIALS IN DIGITAL MODULATIONS PRINCIPLELS UNDERSTANDING AND THE FUNDAMENTAL CONCEPTS ARE MADE VERRY CLEAR-I 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 FORMS-I AM HIGHLY OBLIGED TO YOUR TUTORIALS PUBLISHED ON LINE.-THANK YOU IMMENSELY.

Love your website , you should become teacher/professor

Regards

Amir

Thanks a lot!

I found it fantastic.

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

its understanding to good

Hi Charan,

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

Hi,

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

Thanks! Very good tutorial

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

Hello Ms. Charan! Your tutorials have helped much more than entire semesters of wireless comm classes combined. Please keep up the good work.

Will you be posting any tutorials on wireless channel modeling and MIMO-OFDM? It would be very beneficial as channel modelling is a common but challenging topic and MIMO-OFDM is the technology of choice, but the mathematics and concepts may be difficult to grasp at first hand. Please let me know

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

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!

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 walk-through 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.

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!

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

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

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

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

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.

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

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

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/Intuitive-Fourier-Analysis-Spectral-Estimation-ebook/dp/B01JL5R61K/ref=sr_1_3?s=books&ie=UTF8&qid=1484332030&sr=1-3&keywords=intuitive+guide

Best, Charan

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.

Thanks for the amazing lectures!! I am glad to know if there are any lectures explaining the In-phase and Quadrature phase.

Thanks

There is often confusion about what the terms In-phase 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 quadrature-phase to the cosine wave. So it came to be that we call the cosine the in-phase or I and sine the quadrature-phase, 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 quadrature-phase 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 in-phase and quadrature-phase 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 in-phase and Quadrature-phase 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.

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

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/Intuitive-Fourier-Analysis-Spectral-Estimation/dp/0913063266/ref=sr_1_5?s=books&ie=UTF8&qid=1509546286&sr=1-5&keywords=fourier+analysis

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

Thank you.

Hi Charan

many thanks for this wonderful trove of comm. theory papers. I work for a ASIC/Systems company that is in the wireless comm field. And I have found myself referring to your tutorials time and again. This website really shows how comm. theory should be really taught to students who are aspiring to be engineers and not mathematicians.

I do have a question regarding the filter theory paper- in the section about MMSE equalization.

Specifically Equation 1.17 that specifies y(i) in terms of s(i) and n(i)

Questions:

1) what is s(i). Is s(i) used in place of x(i) that was the original transmitted sequence of symbols

2) How would you know apriori the channel response s(i) + 0.5*s(i-1) + n(i) – are you assuming there are 2 rays caused by multi-path ?

3) Similarly Equation 1.24 is also confusing. How do you actually derive the equation 1.24. Could you please help explain further ?

thanks

Let’s say that we take an example of Bluetooth/WiFi…

I have some data which need to be transmitted from Device A to Device B (let’s say via Bluetooth)

let’s assume this happens at Device A

1)raw data (payload) bits –> 2) modulation and coding(MCS) —>3) adding all those shit extra headers from n/w layer and mac layer —-> 4)multiplication by a continuous waveform —-> 5)upscaling to the centre frequency (@2.45 Ghz)

Now that your hardware (Bluetooth radio) is ready to transmit ……… I have a question here,

At what rate does it transmit in real time over the air ?

like 100 times a second or 100 Hz frequency or 50 Hz frequency or 20 Hz frequency (100 Hz: 0,0.01,0.02,0.03,0.04,0.05……….seconds)

I believe bluetooth has a specification that It needs to transmit at every 100ms over the air.

Does this transmission rate (T_actual )have any relationship with my digital data at the output of step 3 ??

For Example, my raw data before modulation and coding would be a binary data which is represented by some waveform (ex: square w/f representing in Amplitude vs time … this time here is of Bit time Tb and after MCS , it will be Symbol Time Ts … Do we have any relationship between Ts and Actual transmission time T_actual )

Dear Sir,

A clarification, I am reading tutorial 13, a clarification in table II on page 4, the third column of (extended again by 1 bit), says that the minimum distance and Hamming is 3 when actually it is 2 (dmin = two),. it’s a mistake?

Adding a sixth parity bit, what is the correct six-bit sequence with dmin = 3?

Also the integers 8 and 9 are in binary like 1001 for the integer 8 and 1010 for the integer 9. It should be 1000 and 1001 respectively.

On the paragraph: Number 2 can then turn into Number 8, I should say Number 9.

Thank you for your answer.

Cordially. Hugo

Fig 1

Table II – Codespace vs. valid codewords, extending the sequency by adding a parity bit

Integer 4 bit Seq. Extended by 1 bit Extended again by 1 bit Comments

0 0000 00000 000000

1 0001 00011 000110

2 0010 00101 001010

3 0011 00110 001100

4 0100 01001 010010

5 0101 01010 010100

6 0110 01100 011000

7 0111 01111 011110

8 ? 1001 10010 100100 8 ≠ 1001

9 ? 1010 10100 101000 9 ≠ 1010

6 more not used 22 more not used 52 more not used

Integer 4 bit Seq. Extended by 1 bit Extended again by 1 bit

4-bits word 5-bits word 6-bits word

0 0000 00000 000000 d0 – d1 = 2

1 0001 00011 000110 d1 – d2 = 2

2 0010 00101 001010 d2 – d3 = 2

3 0011 00110 001100 d3 – d4 = 4

4 0100 01001 010010 d4 – d5 = 2

5 0101 01010 010100 d5 – d6 = 2

6 0110 01100 011000 d6 – d7 = 3

7 0111 01111 011110 d7– d8 = 4

8 1000 10001 100010 d8 – d9 = 2

9 1001 10010 100100 d9 – d0 = 2

6 more not used 22 more not used 52 more not used

Hw = 3 Hw = 4 Hw = 5

dmin = 1 dmin = 2 dmin = 2 (dmin isn´t 3)

Dear Sir,

A clarification, I am reading tutorial 13, a clarification in table II on page 4, the third column of (extended again by 1 bit), says that the minimum distance and Hamming is 3 when actually it is 2 (dmin = two),. it’s a mistake?

Adding a sixth parity bit, what is the correct six-bit sequence with dmin = 3?

Also the integers 8 and 9 are in binary like 1001 for the integer 8 and 1010 for the integer 9. It should be 1000 and 1001 respectively.

On the paragraph: Number 2 can then turn into Number 8, I should say Number 9.

Thank you for your answer.

Cordially. Hugo

Hugo,

Thank you for sending the tables. I will add them to the tutorial.

Thanks again,

Charan Langton

I am a retired engineer who worked in a parallel field and am now relearning all the things I want to learn from my university days. Your writing is much appreciated. Thank you!

Thank you for your knowledges about communication systems! They were very useful for me.

About Limits on data transfer – Shannon and Nyquist and the information carrying capacity of signals.

I dont know why the web page allow access to other tutorials but keep asking for login when I want to access this tutorial above.

Could you please help me ?

Thank you very much

I think I have fixed it. Please try it now.

Best, Charan