First Technology Transfer

Standard and Advanced Technical Training, Consultancy and Mentoring

Course M206 A Practical Introduction to Digital Signal Processing (DSP) for dsPIC developers (5 days)

Duration: 5 Days

Intended Audience

This is an intensive 5-day course for engineers who have relatively little experience of DSP,or, whose knowledge of DSP has become somewhat rusty.


To take advantage of the DSP capabilities of the dsPIC architecture a sound understanding of the principles and practice of Digital Signal Processing is Required. This 5 day course avoids digging deep into the underlying theory and maths. Rather it aims to provide a sound understanding of the principles, uses and limitations of Digital Signal Processing. Its goal is to ensure that engineers learn how to select and parameterize the most appropriate DSP Algorithms for the task at hand. The objectives of the course are to provide an understanding of the uses and limitations of DSP and those features of the dsPIC architecture relevant to DSP and to teach the practical aspects of the design and implementation of DSP filters on a dsPIC and the use of Fourier Transform techniques to perform frequency analysis.


  • Overview of DSP
  • What can DSP do
    • DSP vs. analog electronics
    • DSP and microcontrollers
    • DSP and the dsPIC
    • Limitations of DSP
  • Analog Signals and Systems
    • Frequency and time description of signals and systems
    • Linear and time invariant systems
  • Analog Filters
    • Uses and purpose
    • Ideal vs. real world
    • Filter specification
      • Filter types (low pass, highpass, bandpass, ....)
      • Specifying filters (magnitude response, phase response, transient response)
    • Passive vs. active filters
    • Poles and zeros
  • Overview of Concepts Underlying Discrete-Time Signals and Systems
    • Time and frequency domain description of discrete-time signals
    • Quantization (linear, non-linear, noise)
    • A-to-D and D-to-A conversion
    • Overview of digital filters - FIR and IIR
  • FIR Filters
    • Understanding convolution
    • How FIR filters work
    • Generating coefficients for FIR filters (Parks-McClellan, Windowing, Frequency Sampling)
  • IIR Filters
    • Basic concepts
    • Design techniques (manual, time-domain methods, frequency domain methods)
    • Cascade and parallel IIR filter structures
  • Implementing filters on a dsPIC
    • dsPIC as a DSP Processor
    • dsPIC compared with TI DSP processors
    • Overview of programming the dsPIC in 'C' and Assembler
      • Data representation issues, speed vs. size optimization ...
      • Finite word length effects (coefficient quantization, limit cycles)
  • Frequency Analysis
    • Discrete Fourier Transform (DFT)
    • Fast Fourier Transform (FFT)
    • Implementing FFT on the dsPIC
    • Inverse DFT/FFT
    • Overview of wavelets
  • Correlation
    • Cross-correlation
    • Auto-correlation
    • Pseudo-noise signals
    • Signal averaging
  • Sampling
    • Choosing sampling rates
    • Multi-rate signal processing
    • Decimation
    • Interpolation
  • Signal Synthesis
    • Random numbers - generating pseudo random numbers
    • Functions - polynomials, sine, cosine, arbitrary waveforms ...
  • dsPIC DSP Hardware and Instruction Set Support In Depth
    • dsPIC hardware extensions to basic PIC24 architecture to support DSP
    • dsPIC hardware support for circular buffers
    • dsPIC instruction extensions to support DSP
    • Use of DSP design tools to generate DSP assembler code
    • Calling DSP filter code from C
  • Implementing DSP Algorithms in C
    • Pointers and C Array Manipulation
    • FFT in C
    • FIR in C
    • IIR in C