Introduction

Digital signal processing (DSP) – the conversion of analog signals into digital form. Digital Signal Processors are the heart of a multitude of modern applications such as mobile phones, DVDs, secure phones, high-speed modems, workstations, teleconferencing, image processing, digital TV, instrumentation, etc. Knowing the working principle of DSPs is a necessity that no electronics professional should ignore. The purpose of DSP programming is to manipulate digital signals for a specific signal processing application. Currently, there is a continuous increase in the interest of developers to use Digital Signal Processors (DSP) manufactured by Analog Devices in various signal processing devices. This is due to both the ease of use, the availability, and the wide capabilities of the processors themselves.

What should I do as a beginner in DSP programming?

Get a low-cost DSP evaluation board/module, such as this one form Digital Spectrum. These typically come with a cable which you can connect to a PC or Mac, and suitable development software (Code Composer Studio, in the case of TI DSPs).

DSP programming using tools like Code Composer studio is not unlike any other programming. You can develop your algorithms in C, make sure they run correctly, and profile them to see if you need to speed up something. If you do this, the first step is to use the compiler’s built-in optimization options. The next two steps are more DSP specific: There may be C-callable pragma to accelerate specific mathematical operations such as fixed-point fractional math. And finally, you can step into the assembly language level and use DSP-specific features such as circular addressing, reverse bit addressing, and single-cycle multi-cycle accumulation.

Programmer working on the computer program

Programmers working on computer program

Practical problems

It is certainly not a simple matter to design practical applications based on digital signal processing.

  • The mathematically assumed zero-bandwidth sampling pulse, also known as the Dirac function. Unfortunately, it only exists in theory; in reality, a pulse of finite width will result in predictable frequency distortion. However, there are alternatives.
  • A “brick wall” low-pass filter that perfectly guarantees that the signal does not contain more than half of the frequency of the sampling frequency is also not possible in theory. We can work around this issue. Note that this analog filter is required before the ADC (anti-aliasing ) and after the DAC ( reconstruction ).
  • The ADC converts the signal to discrete levels, such as an 8-bit ADC with a resolution of 256 levels. This introduces the concept of quantization noise, which reduces the quantization noise by using a 12-bit, 16-bit, or even 24-bit ADC to increase the conversion resolution. Many applications use an 8-bit resolution.