Digital signal processing
This article needs additional citations for verification. (May 2008) (Learn how and when to remove this template message)

Digital signal processing (DSP) is the use of digital processing, such as by computers or more specialized digital signal processors, to perform a wide variety of signal processing operations. The signals processed in this manner are a sequence of numbers that represent samples of a continuous variable in a domain such as time, space, or frequency.
Digital signal processing and analog signal processing are subfields of signal processing. DSP applications include audio and speech processing, sonar, radar and other sensor array processing, spectral density estimation, statistical signal processing, digital image processing, signal processing for telecommunications, control systems, biomedical engineering, seismology, among others.
DSP can involve linear or nonlinear operations. Nonlinear signal processing is closely related to nonlinear system identification^{[1]} and can be implemented in the time, frequency, and spatiotemporal domains.
The application of digital computation to signal processing allows for many advantages over analog processing in many applications, such as error detection and correction in transmission as well as data compression.^{[2]} DSP is applicable to both streaming data and static (stored) data.
Contents
Signal sampling
To digitally analyze and manipulate an analog signal, it must be digitized with an analogtodigital converter (ADC). Sampling is usually carried out in two stages, discretization and quantization. Discretization means that the signal is divided into equal intervals of time, and each interval is represented by a single measurement of amplitude. Quantization means each amplitude measurement is approximated by a value from a finite set. Rounding real numbers to integers is an example.
The Nyquist–Shannon sampling theorem states that a signal can be exactly reconstructed from its samples if the sampling frequency is greater than twice the highest frequency component in the signal. In practice, the sampling frequency is often significantly higher than twice the Nyquist frequency.
Theoretical DSP analyses and derivations are typically performed on discretetime signal models with no amplitude inaccuracies (quantization error), "created" by the abstract process of sampling. Numerical methods require a quantized signal, such as those produced by an ADC. The processed result might be a frequency spectrum or a set of statistics. But often it is another quantized signal that is converted back to analog form by a digitaltoanalog converter (DAC).
Domains
In DSP, engineers usually study digital signals in one of the following domains: time domain (onedimensional signals), spatial domain (multidimensional signals), frequency domain, and wavelet domains. They choose the domain in which to process a signal by making an informed assumption (or by trying different possibilities) as to which domain best represents the essential characteristics of the signal and the processing to be applied to it. A sequence of samples from a measuring device produces a temporal or spatial domain representation, whereas a discrete Fourier transform produces the frequency domain representation.
Time and space domains
The most common processing approach in the time or space domain is enhancement of the input signal through a method called filtering. Digital filtering generally consists of some linear transformation of a number of surrounding samples around the current sample of the input or output signal. There are various ways to characterize filters; for example:
 A linear filter is a linear transformation of input samples; other filters are nonlinear. Linear filters satisfy the superposition principle, i.e. if an input is a weighted linear combination of different signals, the output is a similarly weighted linear combination of the corresponding output signals.
 A causal filter uses only previous samples of the input or output signals; while a noncausal filter uses future input samples. A noncausal filter can usually be changed into a causal filter by adding a delay to it.
 A timeinvariant filter has constant properties over time; other filters such as adaptive filters change in time.
 A stable filter produces an output that converges to a constant value with time, or remains bounded within a finite interval. An unstable filter can produce an output that grows without bounds, with bounded or even zero input.
 A finite impulse response (FIR) filter uses only the input signals, while an infinite impulse response (IIR) filter uses both the input signal and previous samples of the output signal. FIR filters are always stable, while IIR filters may be unstable.
A filter can be represented by a block diagram, which can then be used to derive a sample processing algorithm to implement the filter with hardware instructions. A filter may also be described as a difference equation, a collection of zeros and poles or an impulse response or step response.
The output of a linear digital filter to any given input may be calculated by convolving the input signal with the impulse response.
Frequency domain
Signals are converted from time or space domain to the frequency domain usually through use of the Fourier transform. The Fourier transform converts the time or space information to a magnitude and phase component of each frequency. With some applications, how the phase varies with frequency can be a significant consideration. Where phase is unimportant, often the Fourier transform is converted to the power spectrum, which is the magnitude of each frequency component squared.
The most common purpose for analysis of signals in the frequency domain is analysis of signal properties. The engineer can study the spectrum to determine which frequencies are present in the input signal and which are missing. Frequency domain analysis is also called spectrum or spectral analysis.
Filtering, particularly in nonrealtime work can also be achieved in the frequency domain, applying the filter and then converting back to the time domain. This can be an efficient implementation and can give essentially any filter response including excellent approximations to brickwall filters.
There are some commonlyused frequency domain transformations. For example, the cepstrum converts a signal to the frequency domain through Fourier transform, takes the logarithm, then applies another Fourier transform. This emphasizes the harmonic structure of the original spectrum.
Zplane analysis
Digital filters come in both IIR and FIR types. FIR filters have many advantages, but are computationally more demanding. Whereas FIR filters are always stable, IIR filters have feedback loops that may become unstable and oscillate. The Ztransform provides a tool for analyzing stability issues of digital IIR filters. It is analogous to the Laplace transform, which is used to design and analyze analog IIR filters.
Wavelet
In numerical analysis and functional analysis, a discrete wavelet transform (DWT) is any wavelet transform for which the wavelets are discretely sampled. As with other wavelet transforms, a key advantage it has over Fourier transforms is temporal resolution: it captures both frequency and location information.The accuracy of the joint timefrequency resolution is limited by the uncertainty principle of timefrequency.
Applications
Applications of DSP include audio signal processing, audio compression, digital image processing, video compression, speech processing, speech recognition, digital communications, digital synthesizers, radar, sonar, financial signal processing, seismology and biomedicine. Specific examples include speech coding and transmission in digital mobile phones, room correction of sound in hifi and sound reinforcement applications, weather forecasting, economic forecasting, seismic data processing, analysis and control of industrial processes, medical imaging such as CAT scans and MRI, MP3 compression, computer graphics, image manipulation, audio crossovers and equalization, and audio effects units.
Implementation
DSP algorithms have long been run on generalpurpose computers and digital signal processors. DSP algorithms are also implemented on purposebuilt hardware such as applicationspecific integrated circuit (ASICs). Additional technologies for digital signal processing include more powerful general purpose microprocessors, fieldprogrammable gate arrays (FPGAs), digital signal controllers (mostly for industrial applications such as motor control), and stream processors.^{[3]}
Depending on the requirements of the application, digital signal processing tasks can be implemented on general purpose computers.
Often when the processing requirement is not realtime, processing is economically done with an existing generalpurpose computer and the signal data (either input or output) exists in data files. This is essentially no different from any other data processing, except DSP mathematical techniques (such as the FFT) are used, and the sampled data is usually assumed to be uniformly sampled in time or space. For example: processing digital photographs with software such as Photoshop.
However, when the application requirement is realtime, DSP is often implemented using specialized microprocessors such as the DSP56000, the TMS320, or the SHARC. These often process data using fixedpoint arithmetic, though some more powerful versions use floating point. For faster applications FPGAs^{[4]} might be used. Beginning in 2007, multicore implementations of DSPs have started to emerge from companies including Freescale and Stream Processors, Inc. For faster applications with vast usage, ASICs might be designed specifically. For slow applications, a traditional slower processor such as a microcontroller may be adequate. Also a growing number of DSP applications are now being implemented on embedded systems using powerful PCs with multicore processors.
Techniques
Related fields
Notes
References
 ^ Billings, Stephen A. (Sep 2013). Nonlinear System Identification: NARMAX Methods in the Time, Frequency, and SpatioTemporal Domains. UK: Wiley. ISBN 9781119943594.
 ^ Broesch, James D.; Stranneby, Dag; Walker, William (20081020). Digital Signal Processing: Instant access (1 ed.). ButterworthHeinemann  Newnes. p. 3. ISBN 9780750689762.
 ^ Stranneby, Dag; Walker, William (2004). Digital Signal Processing and Applications (2nd ed.). Elsevier. ISBN 0750663448.
 ^ JPFix (2006). "FPGABased Image Processing Accelerator". Retrieved 20080510.
Further reading
Wikibooks has a book on the topic of: Digital Signal Processing 
 N. Ahmed and K.R. Rao (1975). Orthogonal Transforms for Digital Signal Processing. SpringerVerlag (Berlin – Heidelberg – New York), ISBN 3540065563.
 Jonathan M. Blackledge, Martin Turner: Digital Signal Processing: Mathematical and Computational Methods, Software Development and Applications, Horwood Publishing, ISBN 1898563489
 James D. Broesch: Digital Signal Processing Demystified, Newnes, ISBN 1878707167
 Paul M. Embree, Damon Danieli: C++ Algorithms for Digital Signal Processing, Prentice Hall, ISBN 0131791443
 Hari Krishna Garg: Digital Signal Processing Algorithms, CRC Press, ISBN 0849371783
 P. Gaydecki: Foundations Of Digital Signal Processing: Theory, Algorithms And Hardware Design, Institution of Electrical Engineers, ISBN 0852964315
 Ashfaq Khan: Digital Signal Processing Fundamentals, Charles River Media, ISBN 1584502819
 Sen M. Kuo, WoonSeng Gan: Digital Signal Processors: Architectures, Implementations, and Applications, Prentice Hall, ISBN 0130352144
 Paul A. Lynn, Wolfgang Fuerst: Introductory Digital Signal Processing with Computer Applications, John Wiley & Sons, ISBN 0471979848
 Richard G. Lyons: Understanding Digital Signal Processing, Prentice Hall, ISBN 0131089897
 Vijay Madisetti, Douglas B. Williams: The Digital Signal Processing Handbook, CRC Press, ISBN 0849385725
 James H. McClellan, Ronald W. Schafer, Mark A. Yoder: Signal Processing First, Prentice Hall, ISBN 0130909998
 Bernard Mulgrew, Peter Grant, John Thompson: Digital Signal Processing  Concepts and Applications, Palgrave Macmillan, ISBN 0333963563
 Boaz Porat: A Course in Digital Signal Processing, Wiley, ISBN 0471149616
 John G. Proakis, Dimitris Manolakis: Digital Signal Processing: Principles, Algorithms and Applications, 4th ed, Pearson, April 2006, ISBN 9780131873742
 John G. Proakis: A SelfStudy Guide for Digital Signal Processing, Prentice Hall, ISBN 0131432397
 Charles A. Schuler: Digital Signal Processing: A HandsOn Approach, McGrawHill, ISBN 0078297443
 Doug Smith: Digital Signal Processing Technology: Essentials of the Communications Revolution, American Radio Relay League, ISBN 0872598195
 Smith, Steven W. (2002). Digital Signal Processing: A Practical Guide for Engineers and Scientists. Newnes. ISBN 075067444X.
 Stein, Jonathan Yaakov (20001009). Digital Signal Processing, a Computer Science Perspective. Wiley. ISBN 0471295469.
 Stergiopoulos, Stergios (2000). Advanced Signal Processing Handbook: Theory and Implementation for Radar, Sonar, and Medical Imaging RealTime Systems. CRC Press. ISBN 0849336910.
 Van De Vegte, Joyce (2001). Fundamentals of Digital Signal Processing. Prentice Hall. ISBN 0130160776.
 Oppenheim, Alan V.; Schafer, Ronald W. (2001). DiscreteTime Signal Processing. Pearson. ISBN 1292025727.