Digital signal processor

From HvWiki

A digital signal processor is a specialised microprocessor designed for efficient digital signal processing.

Contents

What is digital signal processing?

Signal processing in general means to take information and transform it in some way that makes it more useful. Digital signal processing means using a computer to do this. Some DSP techniques are just digital copies of old techniques that were done with analog circuits, while others (such as the Fast Fourier Transform) are only practical in the digital domain.

Everyday examples of digital signal processing might be:

  • Changing the brightness or contrast of an image from a digital camera
  • Average speed cameras that recognise your car license plate
  • Bass boost or EQ on a portable MP3 player
  • Speech-to-text recognition
  • Engine management in a modern car
  • Processing digital data to squeeze more of it down phone lines, as in ADSL

There are many more specialized applications, such as:

  • Processing radar and sonar signals to identify and track targets
  • Sound effects and electronic music production
  • Controlling industrial machinery, such as robots
  • Guidance and control systems for aircraft and missiles

When is a microprocessor a DSP?

The vast majority of DSP algorithms can be expressed as a series of multiplications and additions. In fact, a basic building block is the Multiply/Accumulate, where two numbers are multiplied and the result is added to an accumulator. So, if a processor wants to be taken seriously as a DSP, it has to have dedicated hardware for doing MAC operations as fast as possible, typically one per clock cycle.

Again, many DSP algorithms involve convolution, which amounts to performing MACs over and over again on two long lists of numbers. (For instance, in FIR filtering, one list is the filter kernel, and the other is the incoming signal.) Therefore, a good DSP should have address generation logic and memory architecture that allows this to be done quickly. This often ends up being some variation on the Harvard architecture, with two separate memory banks, each with its own bus. By placing the filter kernel in one memory bank and the signal in the other, you can perform one MAC plus loading and storing of data per clock cycle.

There are other nice features, such as saturation (which stops digital overflow and replaces it with clipping behaviour similar to analog circuitry) and low-overhead looping, but the above two features are probably what characterises a DSP.

Do I need a DSP to do DSP?

The short answer is No, and in any case you probably have one already. DSP algorithms can be implemented on any kind of processor, though they may sometimes be very slow and/or inaccurate. Also, modern multimedia applications and computer games have led to desktop CPUs being designed with high DSP performance. If you want to experiment with DSP, you can easily perform real-time audio and video signal processing using algorithms coded in C on a modern desktop or laptop computer, and you will rarely need to spend time and effort building a system around a dedicated DSP chip.

The main reason to use a DSP chip would be if portability, cost, or power consumption issues stopped you from using a PC.

TBC

This article is a stub. To help HvWiki, please consider expanding it.