Turbo Codes Promise Better Wireless Transmission
captain igor writes "IEEE is running a story about two French professors that have created a new class of encoding, called 'Turbo Codes,' that will allow engineers to pass almost twice as much data through a given communications channel, or equivalently, the same amount of data at half the power. The new codes allow the Shannon Limit (the theoretical maximum capacity of a channel) to be approached to, currently, within .5 dB. Scientists hope that this breakthrough will revolutionize wireless communications, especially with the coming reclamation of large swaths of the EM spectrum." As the article points out, such codes are in use now, but seem poised for much wider implementation.
Oh wait...
It also seems to be making a natural progression into new areas, beginning at satellite transmissions 11 years ago and making it's way into other digital wireless applications along the way.
Thanks to timothy for almost clearing this up
Eve Fairbanks says I drive a hybrid!LOL
Clever AND good looking !
I'll do it for cheesy poofs.
Finally, by forcing more air into the cylinders than ordinary air pressure would allow, we will be able to achieve more efficient combustion, which will in turn allow us to transmit more data using radio frequencies. ...Don't you just hate it when terminology gets mis-applied to stuff it has nothing to do with?
Dang it, this software isn't made out of platinum, either.
You see? You see? Your stupid minds! Stupid! Stupid!
Turbo codes aren't really new. As the article states, they were invented in 1993. I have a big stack of papers on them at home.
Turbo codes have a few problems, though. One, they are a pain to implement and consume a lot of resources. Two, turbo codes are SNR dependent, which makes them harder to use in varried channels.
The article also makes it seem like there were no coding advances since Shannon published his orginal paper on channel capacity. Ungerbock's papers on trellis coded modulation (TCM) from 1987 or so radically altered digital communications, and he should have been mentioned. Some of the current turbo code research is trying to unify TCM and Turbo Coding (TTCM), which has great promise once it is practical.
(S(SKK)(SKK))(S(SKK)(SKK))
Nyquist is the sample-rate guy (the Nyquist theorem).
Shannon capacity is the theoretical bit-rate you can stuff through a channel of a given physical bandwidth with a given signal to noise ratio:
C = W * Log2(1+S/N)
where C is capacity (bits per second), W is bandwidth (Hz), S is signal power, and N is noise power.
As far as Turbo Codes go, without getting too technical, its an extension of the principle that you can increase the efficiency of a channel while transmitting at a given power by attaching some redundant bits (redundant signal dimensions is probably a better way to look at it, though) to the signal. I'm not too familiar with the particulars of Turbo Coding, but it is a lot like Viterbi coding where these redundant bits are dependent on the data bits and when you detect an error (the redundant bit doesn't match the proper sequence), you back-trace through your data and find the most likely non-errored sequence and adjust your data bits accordingly.
Tim
Ahh, that would explain the "Turbo" thing: It comes from the era of Borland compilers and 486 clone boxes. If it were invented today, it would surely be called something like "iCodes".
Briefly, the big problem in data communication is achieving the Shannon limit, which is the maximum theoretical data rate at which information can be transmitted with arbitrarily low probability of error. Shannon proved his result in 1948, but until the Turbo guys, nobody knew how to achieve it.
The main problem is that optimal decoding of any non-trivial code is NP-hard, which has been known for about 30 years now (i.e., the only known algorithm has exponential complexity in the code length). The Turbo breakthrough was to show that a suboptimal decoder with O(n) complexity for code length n could nonetheless achieve excellent results. This is the so-called "Turbo principle".
There is an even "newer" class of codes called Low-Density Parity-Check Codes that can beat turbo codes. Turbo codes have a small gap to the Shannon limit, and these new codes can potentially eliminate the gap. Small gains are a big deal; the rule of thumb is that 1 dB of gain is equal to a million dollars of annual revenue for a wireless provider.
The twist is that these LDPC codes were actually proposed in a 1963 PhD thesis, but were disregarded as beyond the computational abilities of the time. They were only "rediscovered" in 1996, after the Turbo code furore.
Toronto-area transit rider? Rate your ride.
I knew about it, as did many other people. But you have to realize that coding theory is a pretty funny and insular field. Related techniques had been used in other fields for many years prior to that discovery. Most people who work in this general area of statistics simply don't think about coding and aren't interested in it. One of the obstacles is that people who build communications systems generally are engineers thinking about fast, low-level processing; their first reaction to anything non-trivial and new is that it's too slow to be implemented in practice.
Turbo coding is ultimately not much of a theoretical breakthrough, but a compromise and algorithmic hack that happens to work fairly well for real-world problems and is expressed in a language that people who work on communications systems understand. But that's nothing to be sneezed at, since it will ultimately mean that we will get higher data rates and other benefits in real-world products.
Lots of /.ers have been quick to point out that turbo codes have been around since 1993. However, the IEEE article points out that LDPC ( low density parity check) codes were invented in the early 1960s. Researchers have gotten the LDPC codes to outperform the turbo codes, and to top it off, the LDPC patents have all expired, meaning no royalty fees like turbo codes.
My first slashdot post ... be gentle!!!
well they are not exactly a compression technique... but basically an error correcting technique.... like hamming. And thus help you transfer more reliably at the same power.
see this small writeup
besides changes like the one you talk about would require hardware changes... as i said its not compression
[all generalizations are untrue except this one]
"much as when, in a crowded pub, you have to shout for a beer several times"
I was wondering when they would get to the practical applications.
This technique is only for one very small specfic part of the specturm, a communication channel. Communcation channels can very from a few khz in size to a few Mhz, I belive 6Mhz is the biggest which was orginally for TV but channels orginally desinated for TV are not being used for 802.11b and g.
The total spectum goes from 30hz right up past light at some crazy big number. Frequecies below 30Mhz are called HF, these frequceys are pretty full but the total band is only 30 Mhz, thats only 6 TV channels, or alot of small 30khz voice channels. This band is so saturated because its not limited to line of sight and its possible to communicate right around the world on it. Its also the easyest to transmit and recive on because filters for these low frequcencies have very high Q(very narrow bandpass, basicly tune better). At these freq. things are already pretty saturated but are strictly regulated along with most of the spectum up to 300Ghz.
Frequcencys from 30Mhz-1Ghz have been the primary frequecys for local communications for the past 50 years or so. Ever since super-hetrodyning has been around, that allows you to "move" a freq down to a lower intermediated frequecy where you have high Q filters. This range is pretty full too, not much room for new communications, aircraft, broadcast tv and radio, police, cell phones, everything is in this range, old UHF tv channels were resently given up to make room for cellphones. These bands are strickly los, well rf los which is a little better than optical line of sight, lower frequencys refract and difract more than higher frequncy light..
Above 1Ghz has been very expensive to use up untill recently. With the advent of new semiconductors and processes its now viable to use these frequecys. There is lots of bandwidth up here to use, alot of it is tied up in radar and with the miltary which is just legal BS because 99.999% isn't being used. Its more political than techinical. There is also quite a bit of it being wasted by older technology that use like 20Mhz for a 6Mhz signal.
Also alot of companies own rights to these microwave frequenies(above 1Ghz) and have swiched to fiber optics and they are just sitting their idle.
Frequencys above 1Ghz can be used again and a again in diffrent areas provided they are seperated by mountains or the curvature of the earth. The problem with 802.11b is that there are only 3 channels that don't overlap.
Also with frequencys above 1 Ghz you can use a dish to focus the signal in one area rather than using more power in all directions. This way you will only interfear with people using the same frequcys in the direction that your dish is pointing. This flashlight vs a room lamp, the flashlight can light up a small area far away and so can the room lamp, but the room lamp uses more power because it also lights up the full room.
In short there is tones of spectum left, we just need to get some of it back from the military and wasteful users.
God, root, what is the difference?
I've seen that some people are curious about Shannon's limit, so I though I would give a little insight to it. It starts, with Nyquist's theorem which states:
max data rate = 2H log V bits/sec
Here, H is the bandwith available, usually through a low-pass filter, and V is the number of discrete signal levels (V = 2 in a straight binary system).
This equation however is for a noiseless channel, which doesn't exist. So Shannon updated the formula for a channel which contains a signal-to-noise ratio. This turns out to be:
max bits/sec = H log (1 + S/N)
Here the log is again base 2, H is still the bandwith (in Hertz) and S/N is the signal-to-noise ratio in dB. Notice that the parameter V is missing. This is because no matter how many discrete symbols you have, or how often you sample them, this is still the maximum number of bits/sec that you will be able to attain.
Most coding schemes, or modulation techniques as they are also called, rely on shifting signal amplitude, frequency, and phase to transmit more than one bit per symbol. The problem is that the more symbols there are, the harder it is to detect them correctly with the addition of noise. Basically, when you fire up your modem, and you hear all that weird buzzing and beeping, a lot of that is time being spent for your modem trying to determine just how noisy the channel is, and what the best modulation scheme it can use is while still being able to detect symbols correctly.
Microsoft should hire me. I can write code that doesn't work faster than the guys they have doing it now.
No. Huffman coding is only optimal if the block size grows to infinity. In that case, it can approach the Shannon limit. For finite data sets (i.e., all data sets), arithmetic coding performs slightly better on a per-symbol basis, because it is able to use fractional numbers of bits to represent symbols.
Huffman is never used on its own, except as a demonstration of basic compression algorithms. It's commonly used as the final step in entropy-coding the output symbols of another compressor, commonly a lossy compressor, like JPEG, MP3, or MPEG.
The problem is, in actual use Huffman coding is crap. Why? Because real data isn't random, it doesn't cover the entire space of possible data.
In actual coding, it is crap, but not for the reasons you listed. It's crap because it's infeasible to allow the block size to grow without bound, since the number of possible codes increases exponentially.
As someone else has pointed out in the threads, if you allow your compression scheme to be useful only for particular files, and allow the compression and decompression software to be arbitrarily complex, there's essentially no limit to how tight you can compress data.
There's a very clear limit, given by the Shannon entropy (which can vary widely, depending on the transformations you apply to the data). It is also limited by the quite obvious pigeonhole principle. You cannot pick an algorithm which will compress a given data set arbitrarily well.
So in general, there's no way to tell what the technical limit is on compression.
No. The limit is definitely the Shannon entropy. You cannot magically represent data using fewer bits than necessary (and Shannon's entropy tells you how many that is). What changes between compression algorithms is the transformations which are applied to the data, or in other words, the different ways of looking at it which reveal a lower entropy than other ways of looking at it. However, the limit is always the Shannon entropy. The transformations can toss out data which is irrelevant. Your playing card example is a good one -- the information which is relevant is which card it is and possibly its angle. You've applied a transformation to the data -- transformed it from a bitmapped image to a series of card values and positions. You can then compress those pieces of information with Huffman codes (if the entropy allows it).
I have been dying for an article in my field to post on! Actually new classes of LDPC codes based on finite geometries have shown that you can construct them at almost any size (say 1000 bits, much more practical). These 'algebraic' LDPC codes perform much better than both Turbo codes and other LDPC codes mostly because they have more structure and are not generated by random computer searches.
;-)
Also they don't require the more time consuming decoding algorithm needed for Turbo Codes (although they can be used). Check 'em out, you can search for papers on IEEE Xplore. Also someone is working on research to show Turbo Codes are LDPC codes! Crazy.
I almost crapped my pants when I saw that statement that Turbo codes were new.
-Take that Lisa's beliefs!
"Take that Lisa's beliefs!" - Homer Simpson
Gee- thats funny. I work a a satellite internet company, and we use Turbo-codes in our FPGA's. The delay from TPC is in the low milisecond range- trust me.
Anything close to one second would have been unacceptable.
I dont know where you got your numbers from.
Could turbo codes be used with a 56K modem giving somewhere around 80kbps of bandwidth?
Nope. (They'd actually reduce the data rate if used.)
Turbo codes are members of the class "Forward Error Correction" codes, which are used to correct errors that creap in during signal propagation from a sender to a receiver over a noisy channel. They work by sending EXTRA bits (typically 3 times as many with turbo), then processing what you get to correct the errors.
Turbo codes are typically used on noisy analog channels - such as radio links. Because they make the data bits less susceptable to noise you can reduce the amount of power you use to transmit them. It's like saying the same sentence three times in a noisy room, rather than scraeming over the noise level just once, so the guy at the next table can hear exactly what you said.
Turbo code (and other FEC codes) send more bits. But because the underlying data is so much less likely to be received incorrectly the sender can can reduce the amount of power used for each bit by MORE than enough to make up for the extra bits. You can trade this "coding gain" either for more BPS at a given power level or a lower power consumption at a given BPS.
But adding bits also increases the amount of information you're sending - either by broadening the bandwidth or more finely dividing the signaling symbol (for instance: more tightly specifying and measuring the voltage on a signal). So if your bitrate is limited by the channel capacity rather than the noise level you're stuck. The coding scheme will "hit the wall" and after that the extra bits come right out of your data rate. Not a problem with Ultra Wideband, or with encoding more bits-per-baud to get closer to a noise floor. But a big problem with telephone connections.
If you had a pure analog telephone connection they would be useful for increasing your bandwidth utilization. And in the old days you did. And analog modems struggled to push first 110 BPS, then 300, then 1200 through it despite the distortion and noise. Then they got fancy and cranked it up to 9.6k and beyond by using DSPs.
But these days you don't have an analog connection all the way. Your analog call is digitized into 8,000 8-bit samples per second and transmitted at 64,000 BPS to the far end. No matter WHAT you do to your signal you can't get more than that number of bits through it.
(This is actually very good, by the way, if the connection is more than a couple miles long. The digital signal is propagated pretty much without error, while an analog signal would accumulate noise, crosstalk, and distortion. So for calls outside your neighborhood you usually get a better signal-to-noise ratio with the digital system for the long hops than with an analog system. That's why cross-continent calls these days sound better than cross-town calls in the '50s.)
In practice it's worse than 64,000 BPS - because the system sometimes steals one of the bits from one sample in six for signaling about dialing, off-hook, ringing, etc. And you don't know WHICH sample. So you can only trust 7 of the bits. 56,000 BPS max. (It's a tad worse yet, because some combinations of signals are forbidden due to regulatory restrictions on how much energy you can put on a phone line - a particular signal could slightly exceed the limit. This makes the actual bit rate a little lower. And you have to sacrifice a little bandwidth to keep the receiver synchronized, too.)
And you only get the approximately 56k in the downlink direction, because to use it you have to have a digital connection at the head end to make full use of the digital transmission. At your uplink you can't be sure enough of the sampling moment to create a waveform that would force exactly the right bit pattern out of the A-to-D converter. So you have to fall back to a modulation scheme that allows some slop when you're transmitting at the POTS end of the link. (If you had a digital connection at both ends - i.e. ISDN - yo
Bantam Dominique roosters crow a four-note song. Once you've heard it as "Happy BIRTHday" you can't NOT hear it that way
Right, Gallager worked out LDPC codes in 1963. Then they were forgotton for 20 years until people realized that Digital Fountain's "Tornado" codes were LDPC codes.
LDPC codes will be behind DVB-S2, the new transmission system for digital satellite video distribution. Since they approach the Shannon limit so closely, there will be no DVB-S3.
I should say that the IEEE article is a little over-hyped, in that these codes really only buy about 2-4 dB additional gain, concatenated RS and convolutional coding were pretty close to the Shannon limit in AWGN, but those last couple of dBs were nice, but the remaining 0.5-1 dB beyond LDPC & Turbo Codes isn't worth much.
Much more important now are ways to handle "fast fading" channels found in mobile environments, this is what is driving OFDM.
Also, both Turbo Codes and LDPC codes are really computationally intensive to decode. They are currently only decoded at speeds below 20 Mbps, generally implemented as (expensive) FPGAs. We won't see real cheap ASICs for another year or two.