Katana VentraIP

Digital signal processing

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 digital 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. In digital electronics, a digital signal is represented as a pulse train,[1][2] which is typically generated by the switching of a transistor.[3]

"Digital transform" redirects here. For the impact of digital technology on society, see Digital transformation.

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, data compression, video coding, audio coding, image compression, signal processing for telecommunications, control systems, biomedical engineering, and seismology, among others.


DSP can involve linear or nonlinear operations. Nonlinear signal processing is closely related to nonlinear system identification[4] and can be implemented in the time, frequency, and spatio-temporal 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.[5] Digital signal processing is also fundamental to digital technology, such as digital telecommunication and wireless communications.[6] DSP is applicable to both streaming data and static (stored) data.

Implementation[edit]

DSP algorithms may be run on general-purpose computers[16] and digital signal processors.[17] DSP algorithms are also implemented on purpose-built hardware such as application-specific integrated circuit (ASICs).[18] Additional technologies for digital signal processing include more powerful general purpose microprocessors, graphics processing units, field-programmable gate arrays (FPGAs), digital signal controllers (mostly for industrial applications such as motor control), and stream processors.[19]


For systems that do not have a real-time computing requirement and the signal data (either input or output) exists in data files, processing may be done economically with a general-purpose computer. This is essentially no different from any other data processing, except DSP mathematical techniques (such as the DCT and FFT) are used, and the sampled data is usually assumed to be uniformly sampled in time or space. An example of such an application is processing digital photographs with software such as Photoshop.


When the application requirement is real-time, DSP is often implemented using specialized or dedicated processors or microprocessors, sometimes using multiple processors or multiple processing cores. These may process data using fixed-point arithmetic or floating point. For more demanding applications FPGAs may be used.[20] For the most demanding applications or high-volume products, ASICs might be designed specifically for the application.


Parallel implementations of DSP algorithms, utilising multi-core CPU and many-core GPU architectures, are developed to improve the performances in terms of latency of these algorithms.[21]


Native processing is done by the computer's CPU rather than by DSP or outboard processing, which is done by additional third-party DSP chips located on extension cards or external hardware boxes or racks. Many digital audio workstations such as Logic Pro, Cubase, Digital Performer and Pro Tools LE use native processing. Others, such as Pro Tools HD, Universal Audio's UAD-1 and TC Electronic's Powercore use DSP processing.