Using LabVIEW for Adaptive Noise Cancellation


There are many situations where signals are noisy and where the noise has to be removed. Adaptive Noise Cancellation (ANC) is one of the major real-time methods available to remove noise from a signal. You can use the LabVIEW Adaptive Filter Toolkit to design ANC applications. This article describes some practical examples of ANC using the Adaptive Filter Toolkit.


The download files are sample files to show the results of the ANC application. The noisyspeech.wav and noisereference.wav were acquired in a lab of NI. You can easily tell the difference between denoisedspeech.wav and noisyspeech.wav, denoisedspeech.wav being clearer after having filtered most of the background noise.

Adaptive Noise Cancellation

ANC applications use adaptive filters which are filters whose coefficients adjust automatically according to certain criteria. Some fundamental criteria are least mean squares (LMS), normalized LMS, and recursive least squares (RLS). Researchers and engineers use adaptive filters to perform noise cancellation, echo cancellation, system identification, and other applications.

This article also describes how to perform real-time adaptive noise cancellation by using the NI LabVIEW graphical development environment and Compact RIO hardware.

Many scientists have worked on ANC to produce practical applications. The following studies are some examples that show ANC's importance in noise cancellation:

• B. Widow[1] concludes that ANC is effective in electrocardiography (ECG) signal extraction. There is an example of using LabVIEW and Adaptive Filter Toolkit for ECG Signal Processing on the NI website.
• C. J. James[2] shows that multireference ANC can be used to enhance transient non-stationarities in electroencephalograms (EEG).
• Muhammad Afzal[3] claims that ANC can help to better evaluate a gas pipeline system.
• Georgi Iliev[4] indicates that voice and speech recognition can use ANC.

Figure 1 shows a typical ANC system.

Figure 1 : Typical Adaptive Noise Cancellation System

where   s(n) is the pilot's speech you need to acquire

            v(n), v1(n), and v2(n) represent the jet engine noise

            y(n) is the output signal

            e(n) is the resulting signal

The communication between a pilot inside a jet craft and a ground control tower is usually polluted with jet engine noise. In Figure 1, you cannot acquire s(n) or v1(n) directly. You only can acquire s(n)+v1(n). To remove v1(n) from s(n)+v1(n), you can use  an adaptive filter.

You first have to use a sensor to acquire only the jet engine noise v2(n) and send this signal to the adaptive filter. If s(n) is uncorrelated with the jet engine noise v(n), and if both v1(n) and v2(n) are highly correlated with v(n), the noise cancellation system can estimate the jet engine noise   v1(n) by adjusting the coefficients of the adaptive filter iteratively. When the output signal y(n) becomes close to v1(n), the system can then remove the engine noise. In Figure 1, e(n) denotes the resulting signal that is close to s(n).

You can use different NI platforms to deploy real-time ANC applications. These platforms include desktop computers, laptops, LabVIEW Real-Time targets and LabVIEW FPGA targets. Figure 2 shows a common way to program ANC applications using LabVIEW and the Adaptive Filter Toolkit on desktop computers and on LabVIEW Real-Time targets.

Figure 2: Adaptive Noise Cancellation using LabVIEW and the Adaptive Filter Toolkit

On these platforms, you can use NI 4461 or NI 4472 Dynamic Signal Acquisition devices to acquire data, because both devices have PCI and PXI interfaces.

You also can use the LabVIEW Adaptive Filter Toolkit, the LabVIEW FPGA Module, and the NI Compact RIO platform to implement the real-time ANC system. Figure 3 shows a system based on a cRIO-9104 backplane with a NI 9233 analog input module in slot 1. The AI0 channel of the 9233 module acquires the signal which noise already corrupts, while the AI1 channel acquires the noise as a reference. Figure 3 shows the flow chart of adaptive noise cancellation using NI hardware.

Figure 3: Adaptive Noise Cancellation using NI Hardware and Software

The IP generator of the LabVIEW FPGA module offers a way to generate the fixed-point LMS adaptive filter to run on an FPGA. Figure 4 shows the configuration dialog box for the fixed-point LMS adaptive filter. You can specify the parameters in this configuration dialog box.

Figure 4: Configuration Dialog Box for the Fixed-Point LMS Adaptive Filter

The FXP LMS VI  generates automatically, so you only need to program how to control the overall ANC process. Figure 5 shows the block diagram to run on a cRIO-9104 FPGA.

Figure 5: Block Diagram of ANC application on a cRIO-9104 FPGA


Adaptive noise cancellation is useful in today's noise cancelling applications. By using the LabVIEW Adaptive Filter Toolkit, you can deploy real-time ANC applications on desktop computers, Real-Time targets, and FPGA platforms according to different requirements.


[1]. B. Widow, R. C. Goodlin, Adaptive noise canceling: principles and applications, Proceedings of the IEEE, 1975, 63, pp. 1692-1716.

[2]. C. J. James, M. T. Hagan, R. D. Jones, P. J. Bones, G. J. Carroll, Multireference adaptive noise cancelling applied to the EEG, IEEE Transactions on Biomedical Engineering, August 1997, 44, no. 8.

[3]. M. Afzal, R. Polikar, L. Udpa, S. Udpa, Adaptive noise cancellation  schemes for magnetic flux leakage signals obtained from gas pipeline inspection, IEEE International Conference on Acoustics, Speech and Signal Processing, 2001.

[4]. G. Iliev, N. Kasabov, Adaptive filtering with averaging in noise cancellation for voice and speech recognition, Department of Information Science, University of Otago, 2001.


Was this information helpful?