Introduction Moving Average Filters FIR Filters Code and data IIR Filters Transfer Functions

Introduction to Digital Signal Processing with MicroModeler DSP

What are digital filters?

Digital filters typically have one input and one output. A digital signal is applied to the input and a modified digital signal is produced at the output. A digital signal is basically a stream of numbers, usually spaced evenly in time.

In the time domain, a Digital Filter processes a stream of numbers

Typically the signal is modified in some frequency dependent way, so that wanted frequencies are retained and unwanted frequencies are removed.

In the frequency domain, the input signals spectrum is multiplied by the filter's frequency response

What are digital filters used for?

They are used to process signals in the fields of audio, speech, image and video processing, radar, sonar, ultra-sonics, communications, modulation and demodulation, sensors, motor control, power management, sensor arrays, medical, automotive, aviation, aero-space, hi-fi, cell-phones, audio effects, appliances and many, many more. Anywhere that a computer meets a sensor or signal is a candidate for a digital filter.

They are typically used on personal computers, micro-processors, micro-controllers, digital signal processors (DSPs) and controllers (DSCs), field-programmable gate arrays (FPGAs) and application-specific integrated circuit (ASICs).

What is MicroModeler DSP?

MicroModeler DSP is a digital filter editor. You choose from a variety of digital filters from the menu-bar and drag them to your application. You then use the handles and controls to interactively adjust the filter's response while viewing the various graphs and curves. Code, coefficients and test cases are automatically generated which you then copy and paste into your project. In your application, you create an instance of the filter, write a stream of numbers into its input and read a stream of numbers from its output.

With Micromodeler DSP, you can drag an IIR/FIR digital filter from the toolbar, use the controls to edit the response then copy and paste the code into the application

Digital filters are typically one software component in a larger system and the goal of MicroModeler DSP is to make the design, coding and testing of these components as straightforward and as cost effective as possible. We hope to be able to remove the steep learning curves, thick books filled with equations and long, iterative development cycles often associated with digital filter development and provide a system that is robust, fast to learn and use and produces excellent quality results in minutes instead of weeks.

Who is it intended for?

MicroModeler DSP is designed for engineers, programmers and scientists, who have a need to process data in some frequency dependent way. The ability to quickly design integer filters and automatically generate efficient filter code make it very suitable for embedded systems developers.

What is digital signal processing?

Traditionally, electronic signals were processed using analog components such as inductors, capacitors, transistors, op-amps and active filters. In today's digital age, these signals are becoming more frequently processed by digital elements such as computers, microprocessors and FPGAs. Digital Signal Processing involves the application of digital elements to the processing of electronic signals.

The advantages of digital over analog signal processing are:
  1. Stability and reliability - The values of analog components are not precisely defined during manufacturing, and tend to drift with age, temperature, humidity etc. An analog filter designed today may not work in the same way on a cold or warm day or in a few years time. This creates a major reliability, testing and design headache. In contrast, digital filters usually receive their reference timing from a crystal oscillator which is extremely stable over time and temperature. Filter specifications are stored in program memory and never change, making digital filters far more stable and reliable than analog filters.
  2. Flexibility - Digital elements are far more flexible in their signal processing capabilities than analog ones. They can process signals using complex algorithms in complex ways that could never be acheived using analog components.
  3. Quality - Most analog filters suffer from phase distortion where signals at different frequencies are delayed by different amounts. While this is still present in digital IIR filters, FIR filters are normally designed as "Linear phase" meaning that the filter is free from phase distortion. This means a better quality signal.
  4. Costs, board size and weight - Analog components require physical components that have to be routed, placed and soldered, consuming board space and increasing manufacturing costs, size and weight. In comparison, a microcontroller, DSP or FPGA can pack a ton of other functions into a tiny area with all the signal processing being handled on the device alongside a multitude of other functions.

In the next section, we will introduce you to a simple digital filter (the moving average filter) and how to create it in MicroModeler DSP. We will then take the concept of the moving average filter and extend it to the more general case of the FIR filter.

Introduction Moving Average Filters FIR Filters Code and data IIR Filters Transfer Functions