Microchip Technology Incorporated
Summary
The dsPIC30F Noise Suppression (NS) Library provides a function to
suppress the effect of noise interfering with a speech signal. This
function is useful for microphone-based applications, which have a
potential for incoming speech getting corrupted by ambient noise
captured by the microphone. It is especially suitable for systems in
which an acoustically isolated noise reference is not available,
such as:
Hands-free Cell Phone Kits
Speakerphones
Intercoms
Teleconferencing Systems
Headsets
As a front-end to a Speech Recognition system
Any microphone-based application that needs to eliminate
undesired noise
Description
The Noise Suppression Library is written entirely in assembly language
and is highly optimized to make extensive use of the dsPIC30F DSP
instruction set and advanced addressing modes. The algorithm avoids
data overflow. The Noise Suppression Library provides a
NoiseSuppressionInit” function for initializing the various data
structures required by the algorithm and a “NoiseSuppression
function to remove noise from a 10 ms block of sampled 16-bit
speech data. The user can easily call both functions through a
well-documented Application Programmer's Interface (API).
The “NoiseSuppression” function is primarily a Frequency Domain
algorithm. 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 NS 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.
The dsPIC30F Noise Suppression Library uses an 8 kHz sampling
rate. However, the library includes a sample rate conversion
function that ensures interoperability with libraries designed for
higher sampling rates (9.6 kHz, 11.025 kHz or 12 kHz). The
conversion function allows incoming signals at higher sampling
rates to be converted to a representative 8 kHz sample. Similarly,
the conversion function allows the output signal to be converted
upward from 8 kHz to match the user application.
dsPIC30F Noise Suppression Library
Features
Key feature of the Noise Suppression Library include:
All functions can be called from either a C or assembly
application program
Five user functions:
NoiseSuppressionInit
NoiseSuppression
InitRateConverter
SRC_upConvert
SRC_downConvert
Full compliance with the Microchip dsPIC30F C30 C Compiler,
Assembler and Linker
Simple user interface – just one library file and one header file
Highly optimized assembly code, utilizing DSP instructions and
advanced addressing modes
Audio Bandwidth: 0-4 kHz at 8 kHz sampling rate
10-20 dB noise reduction, depending on type of noise
Several speech recordings corrupted by Babble, Car Cabin,
White and Narrowband Noise included for library evaluation
dsPIC30F Noise Suppression Library User's Guide” is provided
to help the user understand and use the library
Demo application source code is provided with the library
Accessory Kit available for purchase includes: an audio cable,
headset, oscillators, microphone, speaker, DB9 M/F RS-232
cable, DB9M-DB9M Null Modem Adapter and can be used for
library evaluation
Resource Requirements
Noise Suppression
Computational Requirements: 3.3 MIPS
Program Flash Memory: 7 KB
RAM: 1 KB
Sample Rate Conversion
Computational Requirements: 1 MIPS
Program Flash Memory: 2.6 KB
RAM: 0.5 KB
Note: The user application might require an additional 1 KB-1.5 KB
of RAM for data buffering (application-dependent).
Devices Supported
dsPIC30F6014
dsPIC30F6012
dsPIC30F5013
dsPIC30F5011
dsPIC30F4013
Noise
and Speech Speech
Noise
Suppression
User Application
Part Numbers and Ordering Information:
dsPIC30F Noise Suppression Library
Part Number Description Availability
SW300040-EVAL dsPIC30F Noise Suppression Library Software License (Evaluation Only)
Now
SW300040-5K dsPIC30F Noise Suppression Library Software License (Up to 5K units)
Now
SW300040-25K dsPIC30F Noise Suppression Library Software License (5K+ to 25K units)
Now
SW300040-100K dsPIC30F Noise Suppression Library Software License (25K+ to 100K units)
Now
AC300030 Accessory Kit (includes: audio cable, headset, oscillators, microphone,
Now
speaker, DB9 M/F RS-232 cable, DB9M-DB9M Null Modem Adapter)
Note: Quantities are per project, payable as a one-time license fee based on estimated lifetime volume for products resulting from the project.
Please consult the factory for quantities above 100K.
Host System Requirements
(For programming and debugging using MPLAB® IDE)
PC-compatible system with an Intel Pentium
®
class or higher processor, or equivalent
A minimum of 16 MB RAM
A minimum of 40 MB available hard drive space
Microsoft
®
Windows
®
98, Windows 2000 or Windows XP
Microchip Technology Inc. 2355 W. Chandler Blvd. Chandler, AZ 85224-6199 USA (480) 792-7200 FAX (480) 792-7277
dsPIC®Development Tools from Microchip
MPLAB®IDE Free
MPLAB®Visual Device Initializer (included in MPLAB®IDE)
MPLAB®C30 C Compiler SW006012
MPLAB®ICD 2 In-Circuit Debugger/Programmer DV164005, DV164007
MPLAB®ICE 4000 ICE4000
MPLAB®PM3 Universal Device Programmer DV007004
dsPIC30F Math Library (included in download of MPLAB®C30 C Compiler) Free
dsPIC30F DSP Library Free
dsPIC30F Peripheral Library Free
dsPICworks™ Data Analysis and DSP Software Free
dsPIC®Digital Filter Design SW300001
dsPIC30F Soft-Modem Library SW300002/3/4/5
dsPIC®Speech Recognition Library SW300010/11/12
dsPIC®Symmetric Key Embedded Encryption Library SW300050
dsPIC®Asymmetric Key Embedded Encryption Library SW300055
dsPIC30F Acoustic Echo Cancellation Library SW300060
dsPIC30F Noise Suppression Library SW300040
CMX-RTX™ for dsPIC30F SW300031
CMX-Tiny+™ for dsPIC30F SW300032
CMX-Scheduler™ for dsPIC®Devices Free at www.cmx.com
dsPICDEM™ Starter Demonstration Board DM300016
dsPICDEM™ 28-pin Starter Demonstration Board DM300017
dsPICDEM™ 1.1 General Purpose Development Board DM300014
dsPICDEM™ MC1 Motor Control Development System DM300020
dsPICDEM.net™ 1 Connectivity Development Boards DM300004-1
dsPICDEM.net™ 2 Connectivity Development Boards DM300004-2
The Microchip name and logo, the Microchip logo, Accuron, dsPIC, KEELOQ, microID, MPLAB, PIC, PICmicro, PICSTART, PRO MATE, PowerSmart, rfPIC and SmartShunt are registered
trademarks of Microchip Technology Incorporated in the U.S.A. and other countries. AmpLab, FilterLab, Migratable Memory, MXDEV, MXLAB, PICMASTER, SEEVAL, SmartSensor and
The Embedded Control Solutions Company are registered trademarks of Microchip Technology Incorporated in the U.S.A. Analog-for-the-Digital Age, Application Maestro, dsPICDEM,
dsPICDEM.net, dsPICworks, ECAN, ECONOMONITOR, FanSense, FlexROM, fuzzyLAB, In-Circuit Serial Programming, ICSP, ICEPIC, MPASM, MPLIB, MPLINK, MPSIM, PICkit, PICDEM,
PICDEM.net, PICLAB, PICtail, PowerCal, PowerInfo, PowerMate, PowerTool, rfLAB, rfPICDEM, Select Mode, Smart Serial, SmartTel Total Endurance and WiperLock are trademarks of Microchip
Technology Incorporated in the U.S.A. and other countries. SQTP is a service mark of Microchip Technology Incorporated in the U.S.A. All other trademarks mentioned herein are property of their
respective companies. © 2005, Microchip Technology Incorporated, Printed in the U.S.A., All Rights Reserved. 3/05 DS70124C
*DS70124C*
Americas: Atlanta (770) 640-0034 • Boston (774) 760-0087 • Chicago (630) 285-0071 • Dallas (972) 818-7423 • Detroit (248) 538-2250 • Kokomo (765) 864-8360 •
Los Angeles (949) 462-9523 • San Jose (650) 215-1444 • Toronto (905) 673-0699 • Asia/Pacific: Australia-Sydney 61-2-9868-6733 • China-Beijing 86-10-8528-2100 •
China-Chengdu 86-28-8676-6200 • China-Fuzhou 86-591-8750-3506 • China-Hong Kong SAR 852-2401-1200 • China-Shanghai 86-21-5407-5533 • China-Shenyang 86-24-2334-2829 •
China-Shenzhen 86-755-8203-2660 • China -Shunde 86-757-2839-5507 • China-Qingdao 86-532-502-7355 • India-Bangalore 91-80-2229-0061 • India-New Delhi 91-11-5160-8631 •
Japan-Kanagawa 81-45-471-6166 • Korea-Seoul 82-2-554-7200 • Singapore 65-6334-8870 • Taiwan-Kaohsiung 886-7-536-4818 Taiwan-Taipei 886-2-2500-6610 •
Taiwan-Hsinchu 886-3-572-9526 • Europe: Austria-Weis 43-7242-2244-399 • Denmark-Ballerup 45-4450-2828 • France- Massy 33-1-69-53-63-20 • Germany-Ismaning 49-89-627-144-0 •
Italy-Milan 39-0331-742611 • Netherlands-Drunen 31-416-690399 • England-Berkshire 44-118-921-5869
(As of 3/05)