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 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 shows that multireference ANC can be used to enhance transient non-stationarities in electroencephalograms (EEG).
• Muhammad Afzal claims that ANC can help to better evaluate a gas pipeline system.
• Georgi Iliev 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