Microchip Technology Inc

dsPIC DSC Noise Suppression Library

The dsPIC DSC Noise Suppression Library provides a function to suppress the effect of noise in a speech signal. This function is useful for microphone-based applications that have a potential for incoming speech corruption from ambient noise. It is especially suitable for systems where an acoustically isolated noise reference is not available, such as:

      • Hands-free cell phone kits

      • Speaker phones

      • Intercoms

      • Teleconferencing systems

      • Headsets

      • Front-end to a speech recognition system

      • Any microphone-based application that needs to eliminate undesired noise


Input Audio Files with Noise 

Output Audio Files with suppressed Noise 

Example Noisy Input File - Babble Noise

Example Noise Suppressed Output File - Babble Noise

Example Noisy Input File -Machine Noise

Example Noise Suppressed Output File - Machine Noise

Example Noisy Input File - White Noise

Example Noise Suppressed Output File - White Noise


The Noise Suppression Library is written almost entirely in assembly language. It is highly optimized to make extensive use of the dsPIC DSC device DSP instruction set and advanced addressing modes. The algorithm has been implemented keeping in mind the need to avoid data overflow. The library functions can be easily called by the user application through a well-documented Application Programmer’s Interface.

The noise suppression function removes noise from a 10 ms block of 16-bit speech data sampled at 8 kHz. This function is primarily a Frequency Domain algorithm in which a Fast Fourier Transform (FFT) is performed on each 10 ms block of data to analyze the frequency components of the signal. Thereafter, a Voice Activity Detection (VAD) algorithm is used to determine if the signal segment is speech or noise. The noise suppression algorithm maintains a profile of the noise and updates it every time a noise segment is detected by the VAD. Every frequency band of the input signal is then scaled according to the proportion of noise contained in that frequency band, thereby causing a significant degree of noise suppression in the resultant signal. The Algorithm thus adapts to changes in the nature and level of noise and does not require a separate noise reference input.


Key feature of the Noise Suppression Library include:

    • Simple user interface – only one library file and one header file

    • All functions called from a C application program

    • Full compliance with the Microchip C30 Compiler, Assembler and Linker

    • Highly optimized assembly code that uses DSP instructions and advanced addressing modes

    • Comprehensive API provides parametric control of the Noise Suppression Engine

    • Noise reduction level can be controlled from 0 dB to 44 dB

    • Audio Bandwidth: 0-4 kHz at 8 kHz sampling rate

    • Library delivered on CD, which also includes:

    o Several sample .wav files that incorporate different types of noise components

    o User’s Guide

    o Sample demo application with complete source code

Resource Requirements

Computational Requirements: 3.5 MIPS
Program Flash Memory: 8 KB

This library is available for free download and there are no associated royalties for this library


KB Size
Updated as of
dsPIC® DSC Noise Suppression Library User’s Guide
NS setup