Multiple Input Multiple Output (MIMO) Digital Radio

Multi input multi output (MIMO) digital radio has been receiving publicity lately because of the introduction of MIMO wireless local area networks for PCs (802.11g standard). MIMO has long been used in applications such as cell phones and phased array radar.
There are several ways a transmitter or receiver can use multiple antennas to increase reception. One is called 'beam forming' in which the same signal is transmitted from several antennas, with the signal at each antenna being slightly out of phase with the others. This creates one or more directional signals or 'beams'. The transmitter may identify the locations of the receivers then dynamically change the phase to create beams in the direction of those receivers. You see this all the time on cars that have several antennas or in the arrangement of AM or FM broadcast towers. At the extreme are phased array radars which use hundreds of antennas to track multiple targets. Submarine sonar also uses this 'array' based approach. The receiver can also use multiple antennas to create 'beams' which are really just increased sensitivity in certain directions.
Another type of multiple input receiver is used in cell phones to change the liability of multi-path signal propagation (signals on the same frequency coming in from the transmitter and from reflections off buildings.) into an asset. The problem with multipath propagation is that the different signals take different amounts of time to reach the receiver, so they arrive out of phase with each other. In the extreme two signals arriving 180 degrees out of phase with each other completely cancel each other out. But a receiver can employ a 'rake receiver' to receive each signal separately and then add them in some optimal fashion to actually take advantage of multi-path propagation. First the receiver estimates the number of incoming signals and their delays. This can be done by computing the auto-correlation function of the signal and looking for the peaks in that function. Then the receiver sets up a different matched filter (i.e., correlation filter) for each signal. After reception these signals are recombined in an optimal manner. Alternatively, each antenna can transmit different information (on the same frequency but out of phase) in order to increase bandwidth.
Another method is to transmit one signal with horizontal polarization and the other with vertical polarization, thus doubling the bandwidth. I've heard Bell Labs has come up with a way to use three spatial polarizations.
Of course there are endless variations and combinations of these schemes. For instance, the transmitter may have multiple antennas to create more multi-paths and enhance reception. Or the transmitter may slowly vary the phase on the transmitting antennas with the idea that the receiver will get good signals at least most of the time. If you know more about this subject please let me know.




. 


Digital signals with short rise times and long trace lengths will be distorted and often cause board failures. For instance, backplanes have high speed signals and long traces so care must be taken to obtain good signal integrity. The principles of signal integrity are well understood and documented. Common solutions for signal integrity problems include series termination (placing a resistor between a signal's driver and the rest of the trace), and end termination (placing a resistor between a signal's destination point and ground). Signal integrity problems can also be caused by ground bounce, trace to trace inductive coupling, and many other things.
The introduction by Intel and AMD of microprocessor chips for PCs (as well as publicity about parallel supercomputers) is drawing attention to the programming concept of multithreading. In a multithreaded program blocks of code called threads run concurrently , thus allowing multiple tasks to be performed at the same time. On a multiprocessor computer each thread can be assigned to a different processor so that the threads truly run simultaneously. But on a single processor computer (e.g., today's PCs) the execution is time sliced so that one thread runs briefly, then the next thread, and so on. This simulates concurrency, but the threads are not really running simultaneously. When 'multicore' PC microprocessors find their way into PCs the threads will actually run concurrently on different processors which will greatly speed program execution.
.








