5
\$\begingroup\$

not a very experienced EE, but I was thinking about a system for high speed data transfer, and it is fairly simple conceptually, so I imagine that there must be serious flaws with the method, because to my knowledge it is not implemented, or at least not widespread. I apologize in advance for my ignorance of the subject matter (I'm just starting my learning).

The way I understand it, binary signals enclosed in a carrier wave are modulated/demodulated through a modem. I understand why this was done in the past - processors weren't that hardcore, and the hardware can only understand binary. I guess I just don't understand why it is still done this way.

If we modulate the amplitude of a wave (I think by providing the oscillator different levels of current), can we not sample this wave with some sort of analog to digital converter and process it on the CPU?

If this is possible, why stick to base 2? If we can have a unique value for each measurable amplitude, data transfer rates would skyrocket. Imagine transferring data with base 1024, or even higher. If we could accurately sample the wave (each oscillation), I don't see why the rate of transfer could be equal to the frequency of the wave times base divided by 2 bits per second (this is probably not correct mathing).

If we have a processor running in the gigahertz, and a signal in the low megahertz, it seems feasible that the processor would be able to sample and translate the data to base 2 (possibly sending to another core for translation). This way, the data rate would be limited by the processor (faster processors would lead to the utilization of higher frequencies for transfer).

Limiting factors that I can think of are how fast the current to the oscillator can be changed (for TX), how fast the analog to digital conversion can be done (read that accurate sampling is possible into the hundreds of megahertz), and the range of measurable amplitudes.

I'm aware that this question probably contains an unusal amount of stupidity, but I want to build this system and I'm wondering why I shouldn't. There has to be something major that I am missing here. What could it be? Thanks.

\$\endgroup\$
  • \$\begingroup\$ @orbit, i hope to have time to talk about this later, but any data a processor is interpreting is binary in form. an ADC turns an analog point back into a digital value(which is a string of 1s and 0s. There are just more complex ways to do this then a magnitude. \$\endgroup\$ – Kortuk May 17 '11 at 19:07
  • \$\begingroup\$ @Kortuk - thanks for the reply here. My idea is to use the processor for this instead of sending the binary over the wire, so that more data can be transmitted in a single 'bit'. I see that at some point, this has to happen, but just not sure why we need to modulate with binary. \$\endgroup\$ – Orbit May 17 '11 at 22:00
  • \$\begingroup\$ @orbit, I am just making the point if you are modulating to 256 different levels, you are still modulating with binary. It is all about bit error rate for the same output power when you talk about which communication scheme is going to work the best. \$\endgroup\$ – Kortuk May 17 '11 at 23:27
  • \$\begingroup\$ @Orbit, There is one important step I am glad you are connecting. You are thinking about why we do something beyond being told it is how it is done. It is important to think about why a certain method is chosen to understand how things work. \$\endgroup\$ – Kortuk May 18 '11 at 0:13
  • \$\begingroup\$ @Kortuk 256 levels is not a binary modulation. Don't mistake the nature of the data feeding the modulator for the modulation. \$\endgroup\$ – Chris Stratton May 19 '11 at 6:29
7
\$\begingroup\$

You've just described two separate and entirely valid technologies used in communication theory today: software-defined radio and (for lack of a good general term that I can remember) multi-symbol/level communication.

If we modulate the amplitude of a wave (I think by providing the oscillator different levels of current), can we not sample this wave with some sort of analog to digital converter and process it on the CPU?

Yes - to a degree. You've just described software-defined radio. The basic idea is what you said: dispense with the majority of the radio frequency equipment and create the modulated sine wave directly from the output of a D/A converter and for the return path use a similarly fast A/D and plenty of DSP processing for both sides. The current problem is that although processor speeds are measured in gigahertz nowadays, the interface with the analog world hasn't yet reached those speeds. This means that direct waveform creation is limited to low frequencies (which, for communications, is still fearfully high compared to frequencies 'normal' analog designers worry about). However, if I read my articles correctly this as still allow removal of some of the intermediate-frequency hardware present in most radios. In the future it may be possible to dispense with more of the hardware.

If this is possible, why stick to base 2? If we can have a unique value for each measurable amplitude, data transfer rates would skyrocket. Imagine transferring data with base 1024, or even higher. If we could accurately sample the wave (each oscillation), I don't see why the rate of transfer could be equal to the frequency of the wave times base divided by 2 bits per second (this is probably not correct mathing).

You're right that it's not perfect but you definitely have the basic idea down. To give an example we'll stick with Amplitude Modulation. When you're trying to transmit 0 or 1 using AM it's called On-Off-Keying (link goes to a site with nice pictures and a description). This works by modulating a pure digital signal - 5v is '1', 0v is '0'. You're right that if you have a number of voltage levels you can send more data at once - this is called Amplitude Shift Keying (another nice description with picture). As you can see, there's multiple levels of voltage for various combinations of bits - 2 bits gives four different voltage levels, 3 gives 8, etc.

The problem with this and other similar schemes is not theoretical but practical - in a communication channel with noise it's very likely you'll have trouble figuring out what exactly was sent. It's just like with analog signals: if my only valid voltage levels are 0 and 5V then if I get 4.3V out I can be reasonably sure it should be 5V. If I have 1024 valid voltage levels then it gets a lot harder to determine.

Also note that you're not limited to Amplitude Modulation - the same techniques can be applied to Phase Modulated signals (similar to FM) or you can step into the realm of Frequency Shift Keying where distinct frequencies represent bits (ie, if you want to transmit '3' in binary that might mean sending a 3KHz sine wave and a 6KHz sine wave, then separating them at the receiving end where sending '1' might just be the 3KHz sine wave).

And these techniques are already in wide use - GSM cell phones use a form of Frequency Shift Keying called Gaussian Minimum Shift Keying. Although I do want to correct one incorrect idea you may have: modulation is still used in all of these schemes. The opposite of a modulated signal is a baseband signal (like a bitstream from a serial port). To communicate at any distance over the air you need modulation, period. It's not going away, but how we generate the modulated waveform will change.

I suggest you take a class in Communication Theory if you can - it sounds like you've got the knack for it.

\$\endgroup\$
  • \$\begingroup\$ Thank you for the thorough response. The part about the practical limitation (the difficulty in being able to distinguish the precise signal, considering errors, etc) was particularly helpful. It doesn't completely deter me though, I just have to determine a level at which the error rate is low but the base is high (at whatever level feasible). Thanks again for the answer. \$\endgroup\$ – Orbit May 17 '11 at 22:08
  • \$\begingroup\$ Keep in mind there's plenty that you haven't even touched on: coding techniques for one. Reed-Solomon codes are an example - they're use in CDs. The basic idea is that a group of n bits is encoded into n+m bits. Codes are mainly used for error correction but can have other beneficial properties. They're sort of the other half of communication theory - so both halves would be waveforms and codes. \$\endgroup\$ – AngryEE May 17 '11 at 23:23
4
\$\begingroup\$

If you send 1 bit simultaneously you need two different levels (for amplitude modulation). If you want to send 8 bits simultaneously you need 256 levels, which will result in a lot of read errors; a level may change due to noise.
There are ways to send more than one bit simultaneously however, like QAM (Quadrature Amplitude Modulation). Part of the information is in the amplitude of the signal, like in ASK (Amplitude Shift Keying), and part is in the phase of the signal, like in PSK (Phase Shift Keying).

\$\endgroup\$
  • \$\begingroup\$ thanks for the reply. I think what you are saying about the levels is like what AngryEE is saying about the number of valid voltage levels. I'm curious about different ways to help maintain the integrity of the system - any reasonable ways to help filter out the noise and ensure that the transmitter current is precise and without undue fluctuation? \$\endgroup\$ – Orbit May 17 '11 at 22:13
3
\$\begingroup\$

What you are asking for has been done, to some extent or another, and for different transmission mediums. I started to write a short thing about different modulation schemes, but then ran across a Wikipedia page that covers them fairly well. Just scroll down to the section marked "List of common digital modulation techniques".

Many modern systems operate on Quadrature Amplitude Modulation (QAM). Ethernet uses Pulse Amplitude Modulation (PAM), which is not on that page. And many radio based transmissions use some form of Trellis Coding. So, looking at those will give you a good idea on what the common stuff is. Looking at the older AM, PSK, etc will give you an idea about where we came from.

The bottom line is this... Almost every form of computer communications that goes more than about 10 feet involves some level of encoding and modulation. It's basically what you were talking about in your question, but taken to extremes. Much of it is very theoretical and math-intensive. People use this kind of stuff for their Ph.D. thesis.

\$\endgroup\$
  • \$\begingroup\$ David - There's no need to dismiss the topic even though it is very theoretical and math-intensive. "People use this kind of stuff for their Ph.D. thesis" reads like "It's hard, you shouldn't try it", which is unmerited. \$\endgroup\$ – Kevin Vermeer May 17 '11 at 20:44
  • \$\begingroup\$ @reemrevnivek I wasn't dismissing it, you just interpreted it wrong. If I thought that someone shouldn't even try it then I would have said so up front and not bothered linking to Wikipedia or wherever. On the contrary, I feel that subjects like this are good to at least be familiar with even if we never actually implement one of these modulation schemes. But it is worth knowing that there are few electrical subjects with as steep of a learning curve. It's not something you can master after reading a book or a couple of web pages. \$\endgroup\$ – user3624 May 17 '11 at 21:23
  • \$\begingroup\$ Thanks for the links to the reading. I'll have to review these different methods so I can more intelligently compare and contrast them with the scheme I'm thinking of. \$\endgroup\$ – Orbit May 17 '11 at 22:09
2
\$\begingroup\$

You probably mean like this?

Having more than 2 signal levels is a very well known technique, the drawback is the lower signal-to-noise ratio. But a good error-correcting scheme can use the extra bits to remove more errors than were added by the decreased signal-to-noise ratio, so this definitely can increase performance.

No clue why you say modems don't do this, they most certainly do. V.90 has a HUGE constellation.

\$\endgroup\$
1
\$\begingroup\$

Discrete time sampling and digital signal processing such as you describe is used in telephone-line modems, but on a telephone line one is allowed to output almost arbitrary waveforms in a bandwidth which is quite wide relative to the center frequency (typical range about 300-3,300Hz). By contrast, radio transmissions must fit fit within a fairly small envelope around a center frequency. If you owned the only radio transmission device in the world, you could indeed output quite a bit of data on a 1MHz carrier by modulating every wave, but your transmission would garble any transmissions anyone else might be attempting at many other frequencies. If the transmitter is limited to outputting energy in the range 995,000-1,005,000Hz, sampling the signal a few million times per second and processing everything digitally might allow better reception than using an analog tuner, but there's going to be a pretty tight limit on how much data can usefully be transmitted.

Addendum Amplitude-modulating a sine-wave carrier with another sine-wave signal will generate signals with frequency equal to the sum and difference of the carrier and modulating signals. Amplitude-modulating a sine-wave carrier with a signal that's the sum of two sine waves is equivalent to amplitude-modulating the two sine waves separately on the same carrier and combining the result. The result of amplitude-modulating a sine-wave carrier with a complex waveform may be determined by separating out all the different frequency components of that waveform and figuring the effect of amplitude-modulating each.

If one amplitude-modulates a variety of voice frequencies in the range 0-5KHz on a 1MHz carrier, the result will be a mix of frequencies in the range 995,000-1,005,000Hz. To tune an AM radio broadcast on channel 1000 (i.e. 1,000Khz or 1.00MHz), one should endeavor to have the tuner accept all frequencies in the above range and reject any outside it. If one wanted to tune in channel 990, one should capture frequencies 985,000-995,000. Note that if the broadcaster on channel 1,000 doesn't filter out all audio frequencies above 5KHz before transmission, those would spill onto the channel below (as well as the channel above).

\$\endgroup\$
  • \$\begingroup\$ @supercat - Thanks for the helpful reply. I'm curious about the interference you speak of - the amplitude modulation will affect more than the frequency i'm transmitting on? \$\endgroup\$ – Orbit May 17 '11 at 22:11
  • \$\begingroup\$ @Orbit Any modulation will spread your signal out. Only a pure un-modulated sine wave is a single frequency (and good luck building an oscillator without any phase noise). Even just tapping out morse code spreads the carrier, especially if you want the starts and stops of the dots to be clear - there's actually an art to getting the turn on/turn off envelope of a keyed transmitter right, so that the symbols are distinct but not so punchy that they interfere with other communications only a few hundred hertz away \$\endgroup\$ – Chris Stratton May 19 '11 at 6:42
  • \$\begingroup\$ @Chris Stratton: Indeed. My point was that modulating a signal on every wave, even if one had the technical means to do so, would generate a signal which would splatter a huge amount of the surrounding bandwidth. You are correct that on-off keying can be nasty if the switch-on/switch-off transitions are too sharp; in the early days of radio telegraphy, I don't think people worried about the spill of keying onto adjacent channels since the resulting noise bursts would be small and infrequent enough as to not preclude hearing the main signal of interest. \$\endgroup\$ – supercat May 19 '11 at 14:21
  • \$\begingroup\$ @Chris Stratton: Of course, one one tries to get radio to go from being something one can listen to and decode to being something that's pleasant to listen to, all the little noise bursts caused by adjacent channels would become unacceptable, especially as the number of radiotelegraph operators increased. BTW, I wonder if there are any RF data receivers that are designed for use with OOK transmitters, but provide analog outputs? It would seem like capturing an analog signal would allow a processor to improve reception using retroactive threshold adjustment. \$\endgroup\$ – supercat May 19 '11 at 14:27
  • \$\begingroup\$ If you want to do further processing on an OOK signal, you can mix it down so that the center frequency is an audio tone (how code was traditionally ear-demodulated) and then do DSP at audio frequencies. In actuality this gets you both the desired signal and it's image, which can be annoying, so a common technique today is to mix with two local oscillator phases, producing audio frequency I and Q signals - by examining the phase there you can tell the positive and negative frequencies apart. By fortunate coincidence a lot of cheap widely installed ADC's already have two channels... \$\endgroup\$ – Chris Stratton May 19 '11 at 16:00

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.