DSP Software

The world of DSP Software is not as complex as you might expect simply because DSP has become a fundamental building block in many systems. AS DSP has become an integral part of most systems, using DSP technology in both hardware and software forms has transitioned to routine from highly specialized and complex.
 
DSP Software has become a part of many systems including:

  • Communication systems – the mainstay of DSP for signal recovery.
  • Motor and motion control systems used for industrial, consumer and other products.
  • Audio signal conditioning – Internet radio, infotainment, acoustic balancing and PA.
  • Information understanding and transformation using linear signal processing on transformed data to extract complex signals or develop deeper system understanding.

 
Developing systems generally takes place using pure hardware, software and combinations of hardware and software. The software comes in two flavors: firmware VHDL or Verilog, and the more familiar hand coded or high level language algorithms which run on a processor. The firmware approach is actually a hardware approach which allows the user to dynamically reconfigure the hardware processor based in FPGAs at different points in the processing. The pure software approach is the method that has been traditionally been used in the market.
 
Today, DSP implementations are dominated by hardware driven, domain specific solutions, with general purpose software approaches used in consumer products and smaller niches of low performance. Typical niches for DSP Software are: motor control, motion control, consumer audio signal processing, consumer video processing, sensor processing and instrumentation automation.
 
There are several important rules for DSP system implementation of DSP Software applications today. These rules are documented in the papers on this web site and in industry articles by the RoweBots Founder, Kim Rowe. The short summary is as follows:

  • Although algorithms can be written in a high level language, it is not really very useful to do this today. At the algorithm understanding stage, simulation tools are more useful to get to a bit by bit realization of algorithms running in fixed or floating point.
  • High quality systems use hand coded target libraries. Hand coded target libraries are generally offered by the processor vendor as a free add on, particularly those that use fixed point.
  • Fixed point is a good approach unless large dynamic range is required, then the application demands floating point. Typical fixed point approaches use Q15 for 16 bit processors and Q31 for 32 bit processors while float and double approaches dominate floating point.
  • DSP processing for consumer goods applications is not so complex and generally used to eliminate noise, compensate for deficiencies, compress or expand data, or control a system (ie a PID loop).
  • Many are intimidated by PID loops. Don't be. They are simple closed loop systems with well known and proven tuning methods for most stable systems.

 
DSP Software can be the difference between a barely acceptable product and a great one – its not so complex, try it today!