Confusion about convolutional coding
Last Post: October 29, 2009:

Hi,
A description about convolutional coding makes me a little bit confused.
The following description is from Page 203, CWNA Official Study Guide by Sybex (April 2009):
There are many levels of convolutional coding. Convolutional coding uses a ratio between the bits transmitted vs. the bits encoded to provide these different levels. The lower the ratio, the less resistant the signal is to interference and the grater the data rate will be.
We know that the coding rate is the ratio between data bits and the whole transmitted bits. For instance, if the data bits per OFDM symbol is 36, and the coded bits per OFDM symbol is 48, then the coding rate will be 36:48, i.e. 3:4.
And two conclusions might be made:
(1) The higher the coding rate, the more data bits, accordingly the less redundancy bits. As a result, the less resistant the signal is to interference.
(2) The lower the coding rate, the less data bits, accordingly the more redundancy bits. As a result, the more resistant the signal is to interference.
If what I thought above is correct, and if the "ratio" does mean the "coding rate," then the sentence "the lower the ratio, the less resistant the signal is to interference" could be a bit confusing. Why not "the lower the ratio, the more resistant the signal is to interference"? 
You have asked a very good question. I have seen this confusion many times before and would like to try to give an explanation:
Firstly, confusion occurs over the manner in which we represent a coding rate, as well as who is defining it.
REPRESENTATION METHODS
There are two main methods of representation:
1. As a fraction: e.g. ????????, 2/3, ????????, 7/8 etc.
2. As a numerical value [ inclusive of a decimal point]: e.g. 0.5, 0.667, 0.75, 0.875 etc.
Different documents use different representations.
Let???¡é?¡é?????¡é???¡és take an example, and see what it does mathematically and physically.
Our rate will be 1/2 , commonly called [ half rate FEC ???¡é?¡é?????¡é?€?? Forward Error Correction ].
Now if we simply divide the numerator [ ???¡é?¡é?????¡?¡°1???¡é?¡é????????] by the denominator [???¡é?¡é?????¡?¡°2???¡é?¡é????????], we end up with a decimal value of 0.5. Doing the same with ???????? and 7/8, we get:
3/4 : ???¡é?¡é?????¡?¡°3???¡é?¡é???????? divided by ???¡é?¡é?????¡?¡°4???¡é?¡é???????? gives us 0.75
7/8: ???¡é?¡é?????¡?¡°7???¡é?¡é???????? divided by ???¡é?¡é?????¡?¡°8???¡é?¡é???????? gives us 0.875
OUTPUT DATA RATE CALCULATIONS
Let???¡é?¡é?????¡é???¡és look at what happens physically and then we???¡é?¡é?????¡é???¡éll come back to ???¡é?¡é?????¡?¡°higher???¡é?¡é???????? and lower rates:
Let???¡é?¡é?????¡é???¡és imagine that we have a data stream running at 1000 kbit/s. We now feed these data bits into an ENcoder running at FEC rate ????????. What an FEC rate of 1/2 means is that for every one bit [???¡é?¡é?????¡?¡°1???¡é?¡é????????] going into the encoder, two bits [???¡é?¡é?????¡?¡°2???¡é?¡é???????? ] come out. This means that every bit going in is ???¡é?¡é?????¡?¡°accompanied???¡é?¡é???????? by an error detecting and correcting bit ???¡é?¡é?????¡?¡°on the way out???¡é?¡é????????. So for every one bit coming in, two bits go out [ of the encoder ].
So, our 1000 bit/s input would become 2000 bit/s at the output [ 2 x 1000 ]
Now, let???¡é?¡é?????¡é???¡és imagine we have a 7000 bit/s data input going into an encoder running at FEC rate 7/8. For every 7 bits into the encoder, 8 bits go out.
So, our 7000 bit/s input would become 7000 divided by 7 times 8 [ 7000 x 8/7 ] giving us 8000 bit/s on the output.
To calculate the bit rate at the output of an encoder, take the inverse of the fractional coding rate [ ????????, ????????, 7/8 etc ] and multiply that by the data rate. [ 2/1, 4/3, 8/7 etc ]
However, if we are going to use the decimal representation [ 0.5, 0.75, 0.875 etc ], we must divide the data rate by the decimal value: e.g. 1000 bit/s divided by 0.5 [ ????????] gives us 2000 bit/s.
???¡é?¡é?????¡?¡°RESISTANCE???¡é?¡é???????? TO INTERFERENCE
This becomes a little tricky here, as we must compare ???¡é?¡é?????¡?¡°apples with apples???¡é?¡é????????. Imagine that we have two data streams being transmitted by radio [ wifi, satellite, whatever]. One has been encoded using rate ???????? and one has been encoded using rate 7/8. Let us imagine also that there is no RF interference, no multipath etc. The signals travel exactly the same distance [ thus enduring the same free space path loss ] and enter identical receivers with identical antennas etc. The transmit EIRP values are the same. We look at the data coming out of the Decoder. We have a biterror rate measuring system attached to each decoder. Now, without going into some technical details about something called an Eb/No value [ ???¡é?¡é?????¡?¡°similar???¡é?¡é???????? to a S/N ratio value ]we have two roughly similar systems, the only difference being the encoding rate. Now imagine that we have absolutely identical amounts of RF intereference injected into both links. In this case, we would see a higher bit error rate coming out of the 7/8 decoder than coming out of the ???????? decoder. So, how do we state this ?
We could say that the ???¡é?¡é?????¡?¡°FEC value of ???????? gives a better error performance than the 7/8 value, all other things being equal???¡é?¡é????????.
This is why coding rate descriptions can be confusing. 7/8 gives us 0.875 [ decimal ] and ???????? gives us 0.5 decimal. 0.875 is ???¡é?¡é?????¡?¡°bigger???¡é?¡é???????? than 0.5 but the 0.5 FEC rate is more powerful [ remember for every one data bit that goes into the encoder for ???????? rate, an EDC or Error Detecting and Correcting bit is ???¡é?¡é?????¡?¡°paired???¡é?¡é???????? with it. For 7/8 rate, forevery 7 bits coming in, only one EDC bit is added ].
In summary, ALL OTHER THINGS BEING EQUAL [ modulation type, Eb/No etc ] ???????? is more ???¡é?¡é?????¡?¡°powerful???¡é?¡é???????? than 7/8.
On satellite links, power is limited onboard the spacecraft, so we can change the error correction values to use less power for a given data rate.
However, there is a drawback. As we compare a ???????? system to a 7/8 system, we find that the ???????? system uses more bandwidth. So how do we tie all this together in an 802.11 OFDM system where bandwidth is fixed ? We have to consider Power/Bandwidth/Data Rate tradeoff.That???¡é?¡é?????¡é???¡éll be for another day however, as my fingers hurt.
Dave 
IN A NUTSHELL [ Well Almost !! ]
ALL OTHER THINGS BEING EQUAL, a ???????? FEC coded system will be more resiliant to interference than a 7/8 rate FEC coded system [ I???¡é?¡é?????¡é???¡éve used general coding rates here, which are used in all sorts of microwave systems etc., not necessarily just for WiFi ].
A ???????? coded system uses a higher rate of coding since 1 EDC bit is added for every data bit.
A 7/8 coded system uses a lower rate of coding since 1 EDC bit is added for every 7 data bits.
Imagine two parallel lines of kids waiting for presents from Santa at a department store. One line contains kids who???¡é?¡é?????¡é???¡éve only been a bit horrible that year, and the other line contains little monsters. The store has two Santas giving out presents.
For the first line, the Santa [ encoder ] gives a present to every single kid [ kid = data bit, present =EDC bit ].
For the second line [ little monsters ], the Santa only gives a present to every seventh kid.
Now imagine, viewing the whole scene from high up. You can easily see the two Santas because of their red suits. Now you look at their hands as they dig into their toy sacks. You would see the Santa???¡é?¡é?????¡é???¡és hands for the first line moving at a much greater RATE than the Santa for the second line. This is the rate that we are talking about here.
As a ratio, ???????? is LOWER than 7/8.
However, the big problem comes from the fact that we should not look at the values ???????? and 7/8 as ratios.
The ???¡é?¡é?????¡?¡°slash???¡é?¡é???????? is not meant as a mathematical operator in comparing FEC ???¡é?¡é?????¡?¡°power???¡é?¡é????????. It is simply meant as a separator.
Let me make up a value. Say 56/63. This simply means that for every 56 bits that go into the encoder, 63 come out. 56 original data bits, plus 7 [ 6356 ] for EDC purposes. Just think of the separator as separating ???¡é?¡é?????¡?¡°data bits into the encoder???¡é?¡é???????? from ???¡é?¡é?????¡?¡°data bits plus EDC bits out of the encoder???¡é?¡é????????.
The only time you should think of ratios is when you want to calculate the output bit rate from an encoder given the input data rate and FEC value.
This stuff can be confusing !!
If anyone has any questions on this, please let me know. As long as you understand what "1/2" REALLY means, you will able to "get around" the terminology.
Dave 
Some background info:
http://en.wikipedia.org/wiki/Error_detection_and_correction
It's worth browsing over some of the info in the Wiki notes. There are links to many other areas.
Mr. cwnpchina  has this helped or is it as clear as mud ?
Dave 
Hi Dave,
Thanks a lot for your post. A very good explanation of convolutional coding.
Let me try to summarize Dave's statement below. Still take the coding rates of 1/2 and 7/8 as an example, and all other things are equal.
(1) Assume 1000 bits come out of the transmitter, and we use a coding rate of 1/2 (0.5). This results 500 data bits and 500 redundancy bits.
(2) Assume 1000 bits come out of the transmitter, and we use a coding rate of 7/8 (0.875). This results 875 data bits and 125 redundancy bits.
As a result, 7/8 is "bigger" than 1/2, but is "less powerful" than 1/2.
More specific: The absolute value of 7/8 is "bigger" than 1/2, but the FEC 7/8 is "less powerful" or "lower" than 1/2, due to the less redundancy bits 7/8 uses.
Let's go back to the CWNA Official Study Guide:
The lower the ratio, the less resistant the signal is to interference and the grater the data rate will be.
The lower ratio, which means 7/8 (FEC 7/8, not absolute value of 7/8 ) here, will result in more data bits and less redundancy bits, accordingly the greater data rate and less resistant the signal is to interference. 
Yes. A quick summary:
If we see a rate of 1/2, don't think in math terms of a numerator and denominator. Think of an FEC encoder with an input and an output.
Think of "what comes before the slash / " as bits into the encoder and "what comes after the slash /" as bits out of the encoder.
In this case, for every one [ "1"  before the slash ] bit into the encoder, two [ "2"  after the slash ] bits come out of the encoder.
We then use this ratio to determine the output bit rate for any input bit rate.
For example, if there were 800 bit/s coming into the encoder, we simply invert the ratio and multiply, giving:
800 bit/s times [ 2/1 ] giving us 1600 bit/s output.
The output is a "mixture" of original data bits plus EDC bits.
Similarly if we used a 7/8 encoder, this means that for every seven bits coming in to the encoder, 8 bits will leave the encoder [ 7 original data bits plus one EDC bit ].
Dave 
If we see a rate of 1/2, don't think in math terms of a numerator and denominator. Think of an FEC encoder with an input and an output.
Agree. But this is also why people get confused... 
Yes. This is a case of terminology causing confusion. What makes it even more confusing is that in one area, we DO have to think of the values as a fraction, and that is when we calculate output bit rate as = input bit rate times the inverse of the fec coding "rate".
Sadly this terminology vagueness or change in meanings also applies to terms like "baseband and broadband" whose true meanings have changed over the years.
Does all this matter ? Absolutely this does. FEC is going to become more and more important in WiFi systems as time goes on.
If you end up designing long range MWAN and WAN radio links, the correct FEC value can make hundreds of thousands of dollars in difference in project costs. Then there are a bunch of actual different types of coding including ReedSolomon, Turbo, etc. Each has it's own place with it's own pro's and con's.
It's when we have to chose the correct type of FEC code rate given constraints of available power/bandwidth/processing speed/memory that things become "interesting".
Dave 
Thanks Dave.
I quote the following words from Page 286287, 802.11 Wireless Networks: The Definitive Guide (2005) to make it clearer, if possible.
The second parameter, the coding rate (R), determines how many redundant bits are added. It is expressed as the number of data bits transmitted as a ratio of the total number of coded bits. A convolutional code with R=1/2 transmits one data bit for every two code bits. More aggressive codes may have less redundant information, such as R=3/4, where only 25% of the bits are redundant.
Selecting a coding rate is a matter of engineering. As the code rate decreases, more code bits are available to correct errors, and the code becomes more robust. However, the price of robustness is decreased throughput. 802.11a specifies three code rates ranging from 1/2 at the most conservative end to 3/4 at the most aggressive end.
I hope the definition above as well as Dave's explanations help all of CWNA folks understand the convolutional code.
 1