Introduction                                                                                                                                   Print this page
<< Previous |  First |  Last |  Next >>       


The world in which we live is analog, and signals from this world such as light, temperature, sound, electrical conductivity, electric and magnetic fields, and phenomena such as the flow of time, are for most practical purposes continuous and thus analog quantities rather than discrete digital ones. For a digital system to do useful things in the real world, translation from the continuous realm to the discrete digital realm must occur, resulting in quantization errors. This problem can usually be mitigated by designing the system to store enough digital data to represent the signal to the desired degree of fidelity. The Nyquist-Shannon sampling theorem provides an important guideline as to how much digital data is needed to accurately portray a given analog signal.

Fragility

Digital systems can be fragile, in that if a single piece of digital data is lost or misinterpreted, the meaning of large blocks of related data can completely change. This problem can be mitigated by designing the digital system for robustness. For example, a parity bit or other error-detecting or error-correcting code can be inserted into the signal path so that if less than a certain fraction of the data is corrupted, the system can determine that this has occurred and possibly uncorrupt the data, or ask for the corrupted data to be resent. In a state-machine, the state transition logic can be designed to catch all unused states and trigger a reset sequence or other error recovery routine. For example, it is standard practice in embedded software design to fill unused program memory with interrupt instructions that point to an error recovery routine, to help guard against a failure that corrupts the microcontroller's instruction pointer which could otherwise cause random code to be executed.

<< Previous |  First |  Last |  Next >>