{"id":16692,"date":"2026-09-18T06:32:48","date_gmt":"2026-09-18T06:32:48","guid":{"rendered":"https:\/\/sistc.com\/?p=16692"},"modified":"2026-09-18T06:32:51","modified_gmt":"2026-09-18T06:32:51","slug":"adaptive-noise-cancellation-lms-nlms-rls","status":"publish","type":"post","link":"https:\/\/sistc.com\/zh\/adaptive-noise-cancellation-lms-nlms-rls\/","title":{"rendered":"\u81ea\u9002\u5e94\u964d\u566a\uff1aLMS\u3001NLMS \u548c RLS \u8be6\u89e3"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\">Background noise is rarely constant.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">A microphone may encounter changing fan noise, vehicle noise, machinery, keyboard sounds, vibration, or other interference. When the noise characteristics change over time, a fixed noise-reduction filter may not be sufficient.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Adaptive noise cancellation<\/strong> addresses this problem by continuously adjusting the filter according to the incoming signal.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Instead of using a fixed set of coefficients, an adaptive filter learns the characteristics of the unwanted signal and updates its coefficients in real time.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Three classical adaptive-filter algorithms are particularly important in audio signal processing:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>LMS \u2014 Least Mean Squares<\/strong><\/li>\n\n\n\n<li><strong>NLMS \u2014 Normalized Least Mean Squares<\/strong><\/li>\n\n\n\n<li><strong>RLS \u2014 Recursive Least Squares<\/strong><\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">These algorithms form an important foundation for modern audio DSP and remain relevant to applications such as <a href=\"https:\/\/sistc.com\/audio-noise-reduction-guide\/\"><strong>acoustic echo cancellation, active noise control, microphone systems, speech enhancement, and multi-microphone audio processing<\/strong>.<\/a><\/p>\n\n\n\n<h1 class=\"wp-block-heading\">1. What Is Adaptive Noise Cancellation?<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">Adaptive noise cancellation is a signal-processing technique that estimates unwanted noise using an adaptive filter and subtracts the estimated noise from the primary signal.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">A simplified system can be represented as:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Primary Signal + Noise \u2192 Adaptive Filter \u2192 Noise Estimate \u2192 Subtraction \u2192 Enhanced Signal<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The key difference from conventional fixed filtering is that the filter coefficients change continuously.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">A simplified signal model is:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>d(n) = s(n) + v(n)<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">where:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>d(n)<\/strong> = microphone signal<\/li>\n\n\n\n<li><strong>s(n)<\/strong> = desired signal<\/li>\n\n\n\n<li><strong>v(n)<\/strong> = unwanted noise<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">The objective is to estimate the unwanted component and produce:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>e(n) = d(n) \u2212 \u0177(n)<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">where:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>\u0177(n)<\/strong> = estimated interference<\/li>\n\n\n\n<li><strong>e(n)<\/strong> = error or enhanced signal<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">The adaptive algorithm adjusts the filter so that the error signal becomes as close as possible to the desired signal.<\/p>\n\n\n\n<h1 class=\"wp-block-heading\">2. Why Is an Adaptive Filter Needed?<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">Traditional filters are usually designed around known frequency characteristics.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">For example:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Low-pass filter<\/li>\n\n\n\n<li>High-pass filter<\/li>\n\n\n\n<li>Band-pass filter<\/li>\n\n\n\n<li>Notch filter<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">These approaches work well when the unwanted signal occupies a predictable frequency range.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">However, real-world noise often overlaps the frequency range of speech.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">For example, human speech and:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Air-conditioning noise<\/li>\n\n\n\n<li>Vehicle noise<\/li>\n\n\n\n<li>Machinery<\/li>\n\n\n\n<li>Fans<\/li>\n\n\n\n<li>Other voices<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">may occupy overlapping frequency bands.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">A fixed filter cannot simply remove those frequencies without also affecting the desired speech.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Adaptive filtering takes a different approach.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">It continuously estimates the changing interference and updates its response.<\/p>\n\n\n\n<h1 class=\"wp-block-heading\">3. Basic Adaptive Noise Cancellation Architecture<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">A classic adaptive noise cancellation system uses two inputs.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Primary input<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">The primary microphone captures:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Desired Signal + Noise<\/strong><\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Reference input<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">A reference sensor captures a signal that is correlated with the unwanted noise.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The reference does not necessarily need to contain the desired speech.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The system then looks like:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Reference Noise<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u2193<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Adaptive Filter<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u2193<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Estimated Noise<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u2193<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Subtract from Primary Input<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u2193<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Enhanced Output<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Mathematically:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>d(n) = s(n) + v(n)<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">and:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>y(n) = w\u1d40(n)x(n)<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">where:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>x(n)<\/strong> = reference input vector<\/li>\n\n\n\n<li><strong>w(n)<\/strong> = adaptive filter coefficient vector<\/li>\n\n\n\n<li><strong>y(n)<\/strong> = estimated noise<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">The output is:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>e(n) = d(n) \u2212 y(n)<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The algorithm continuously updates <strong>w(n)<\/strong>.<\/p>\n\n\n\n<h1 class=\"wp-block-heading\">4. The Most Important Requirement: A Reference Signal<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">This is one of the most important concepts in adaptive noise cancellation.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">An adaptive filter normally needs information that is correlated with the unwanted interference.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">For example, imagine a device containing:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>A microphone<\/li>\n\n\n\n<li>A loudspeaker<\/li>\n\n\n\n<li>A cooling fan<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">If the fan produces a measurable acoustic signal, another sensor or microphone can potentially provide a reference correlated with that fan noise.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The adaptive filter can then learn the relationship between:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Reference Noise \u2192 Noise at Primary Microphone<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">and estimate the unwanted component.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">This is different from simply estimating a noise spectrum from silent periods.<\/p>\n\n\n\n<h1 class=\"wp-block-heading\">5. LMS: Least Mean Squares Algorithm<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">The <strong>LMS algorithm<\/strong> is one of the most widely known adaptive filtering algorithms.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Its popularity comes from its relatively simple implementation and low computational requirements.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The basic LMS update can be written as:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>w(n+1) = w(n) + \u03bce(n)x(n)<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">where:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>w(n)<\/strong> = current filter coefficients<\/li>\n\n\n\n<li><strong>\u03bc<\/strong> = step size<\/li>\n\n\n\n<li><strong>e(n)<\/strong> = error signal<\/li>\n\n\n\n<li><strong>x(n)<\/strong> = reference input vector<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">The error is:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>e(n) = d(n) \u2212 w\u1d40(n)x(n)<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The algorithm therefore follows a simple loop:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Input \u2192 Filter \u2192 Output \u2192 Error \u2192 Coefficient Update<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The filter continuously modifies its coefficients according to the error.<\/p>\n\n\n\n<h1 class=\"wp-block-heading\">6. How LMS Learns<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">Imagine that the adaptive filter initially has incorrect coefficients.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The estimated noise will therefore be inaccurate.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The error signal will contain:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Desired Signal + Residual Noise<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The LMS algorithm uses this error to adjust the filter coefficients.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">If the adjustment moves the estimated noise closer to the actual interference, the error becomes smaller.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Over time, the filter attempts to minimize the mean-square error:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>J = E[e\u00b2(n)]<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">This is the central idea behind the Least Mean Squares algorithm.<\/p>\n\n\n\n<h1 class=\"wp-block-heading\">7. LMS Step Size<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">The parameter <strong>\u03bc<\/strong> controls how quickly the LMS filter adapts.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">This creates an important engineering tradeoff.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Small \u03bc<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Advantages:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>More stable adaptation<\/li>\n\n\n\n<li>Lower coefficient fluctuation<\/li>\n\n\n\n<li>Better steady-state behavior<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Disadvantages:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Slow response to changing noise<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Large \u03bc<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Advantages:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Faster adaptation<\/li>\n\n\n\n<li>Better response to rapidly changing conditions<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Disadvantages:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Greater risk of instability<\/li>\n\n\n\n<li>Larger residual error<\/li>\n\n\n\n<li>Potential audible artifacts<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Therefore:<\/p>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p class=\"wp-block-paragraph\">The LMS step size must be selected according to the signal characteristics and system requirements.<\/p>\n<\/blockquote>\n\n\n\n<p class=\"wp-block-paragraph\">For a normalized LMS implementation, the stability relationship is also affected by the reference signal power.<\/p>\n\n\n\n<h1 class=\"wp-block-heading\">8. LMS Algorithm: Conceptual Example<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">Suppose a microphone captures speech together with a periodic machine noise.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The reference microphone captures a correlated version of the machine noise.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Initially:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Filter Error \u2192 High<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">As the adaptive filter learns:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Filter Error \u2192 Lower<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">After convergence:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Estimated Noise \u2248 Actual Noise<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">and therefore:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Output \u2248 Speech + Residual Noise<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">If the machine operating condition changes, the LMS algorithm continues updating its coefficients.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">This ability to track changing conditions is the main advantage of adaptive filtering.<\/p>\n\n\n\n<h1 class=\"wp-block-heading\">9. NLMS: Normalized Least Mean Squares<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">The standard LMS algorithm can be sensitive to the amplitude of the reference signal.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">If the reference signal becomes very large, the update term:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>\u03bce(n)x(n)<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">can also become large.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The <strong>Normalized Least Mean Squares (NLMS)<\/strong> algorithm addresses this by normalizing the update according to the reference-signal energy.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">A common form is:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>w(n+1) = w(n) + [\u03bc \/ (\u03b5 + ||x(n)||\u00b2)] e(n)x(n)<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">where:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>\u03bc<\/strong> = normalized step size<\/li>\n\n\n\n<li><strong>\u03b5<\/strong> = small positive constant used to avoid division by zero<\/li>\n\n\n\n<li><strong>||x(n)||\u00b2<\/strong> = reference signal energy<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">This normalization makes the adaptation less sensitive to changes in input amplitude.<\/p>\n\n\n\n<h1 class=\"wp-block-heading\">10. Why NLMS Is Important in Audio Systems<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">Audio levels can vary significantly.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">A microphone reference signal may change because of:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Speaker distance<\/li>\n\n\n\n<li>Volume changes<\/li>\n\n\n\n<li>Mechanical movement<\/li>\n\n\n\n<li>Environmental noise<\/li>\n\n\n\n<li>Different acoustic conditions<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">A conventional LMS implementation may need careful step-size tuning.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">NLMS automatically accounts for the approximate energy of the reference signal.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">This often makes it a practical choice for real-time audio applications.<\/p>\n\n\n\n<h1 class=\"wp-block-heading\">11. LMS vs. NLMS<\/h1>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th>Feature<\/th><th>LMS<\/th><th>NLMS<\/th><\/tr><\/thead><tbody><tr><td>Algorithm complexity<\/td><td>Low<\/td><td>Low to moderate<\/td><\/tr><tr><td>Normalization<\/td><td>No<\/td><td>Yes<\/td><\/tr><tr><td>Input amplitude sensitivity<\/td><td>Higher<\/td><td>Lower<\/td><\/tr><tr><td>Parameter tuning<\/td><td>Relatively sensitive<\/td><td>Generally easier<\/td><\/tr><tr><td>Real-time implementation<\/td><td>Very practical<\/td><td>Very practical<\/td><\/tr><tr><td>Audio applications<\/td><td>Common<\/td><td>Very common<\/td><\/tr><tr><td>Computational cost<\/td><td>Lower<\/td><td>Slightly higher<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">For many embedded audio systems, <strong>NLMS provides a useful balance between simplicity, stability, and adaptation performance<\/strong>.<\/p>\n\n\n\n<h1 class=\"wp-block-heading\">12. RLS: Recursive Least Squares<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">The <strong>Recursive Least Squares (RLS)<\/strong> algorithm takes a different approach.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Instead of simply following the instantaneous gradient of the error, RLS recursively minimizes a weighted sum of past squared errors.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The objective can be expressed conceptually as:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>J(n) = \u03a3 \u03bb\u207f\u207b\u2071 e\u00b2(i)<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">where:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>\u03bb<\/strong> = forgetting factor<\/li>\n\n\n\n<li><strong>e(i)<\/strong> = error at previous time i<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">The forgetting factor determines how strongly older observations influence the current solution.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">A value closer to 1 gives greater weight to historical data.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">A smaller value allows the system to adapt more quickly to changes.<\/p>\n\n\n\n<h1 class=\"wp-block-heading\">13. Why RLS Can Adapt Faster<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">LMS and NLMS are gradient-based methods.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">They gradually move the filter coefficients toward the optimum.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">RLS uses information from the signal correlation structure to estimate a better coefficient update.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">As a result, RLS can converge much faster under many conditions.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">This can be useful when:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Noise characteristics change rapidly<\/li>\n\n\n\n<li>Fast convergence is important<\/li>\n\n\n\n<li>The system has sufficient processing resources<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">However, this performance comes with greater computational complexity.<\/p>\n\n\n\n<h1 class=\"wp-block-heading\">14. LMS vs. NLMS vs. RLS<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">The three algorithms can be viewed as a practical engineering tradeoff.<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th>Characteristic<\/th><th>LMS<\/th><th>NLMS<\/th><th>RLS<\/th><\/tr><\/thead><tbody><tr><td>Implementation complexity<\/td><td>Low<\/td><td>Low\u2013Moderate<\/td><td>High<\/td><\/tr><tr><td>Computational cost<\/td><td>Low<\/td><td>Low\u2013Moderate<\/td><td>High<\/td><\/tr><tr><td>Convergence speed<\/td><td>Moderate<\/td><td>Moderate\u2013Fast<\/td><td>Fast<\/td><\/tr><tr><td>Input normalization<\/td><td>No<\/td><td>Yes<\/td><td>Built into formulation<\/td><\/tr><tr><td>Memory requirements<\/td><td>Low<\/td><td>Low<\/td><td>Higher<\/td><\/tr><tr><td>Parameter sensitivity<\/td><td>Moderate<\/td><td>Moderate<\/td><td>Moderate\u2013High<\/td><\/tr><tr><td>Embedded DSP suitability<\/td><td>Excellent<\/td><td>Excellent<\/td><td>Application-dependent<\/td><\/tr><tr><td>Fast-changing conditions<\/td><td>Limited<\/td><td>Better<\/td><td>Strong<\/td><\/tr><tr><td>Typical use<\/td><td>Basic adaptive filtering<\/td><td>Audio\/AEC<\/td><td>Advanced adaptive systems<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">There is no universal \u201cbest\u201d algorithm.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The appropriate choice depends on:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Processing power<\/li>\n\n\n\n<li>Memory<\/li>\n\n\n\n<li>Sampling rate<\/li>\n\n\n\n<li>Filter length<\/li>\n\n\n\n<li>Required convergence speed<\/li>\n\n\n\n<li>Noise characteristics<\/li>\n\n\n\n<li>Power consumption<\/li>\n\n\n\n<li>Latency requirements<\/li>\n<\/ul>\n\n\n\n<h1 class=\"wp-block-heading\">15. Adaptive Noise Cancellation vs. <a href=\"https:\/\/sistc.com\/spectral-subtraction-audio-noise-reduction\/\">Spectral Noise Reduction<\/a><\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">Adaptive filtering and spectral filtering solve related but different problems.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Spectral methods<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Examples:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Spectral subtraction<\/li>\n\n\n\n<li>Wiener filtering<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">They analyze the frequency content of the signal and modify frequency-dependent gain.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Adaptive filtering<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Examples:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>LMS<\/li>\n\n\n\n<li>NLMS<\/li>\n\n\n\n<li>RLS<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">They estimate the relationship between signals and continuously update filter coefficients.<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th>Technology<\/th><th>Main Information Used<\/th><\/tr><\/thead><tbody><tr><td>Spectral subtraction<\/td><td>Signal\/noise spectrum<\/td><\/tr><tr><td>Wiener filtering<\/td><td>Signal\/noise power and SNR<\/td><\/tr><tr><td>LMS<\/td><td>Reference signal + error<\/td><\/tr><tr><td>NLMS<\/td><td>Reference signal + normalized error<\/td><\/tr><tr><td>RLS<\/td><td>Reference signal + historical error statistics<\/td><\/tr><tr><td>Beamforming<\/td><td>Multi-microphone spatial information<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">These techniques can also be combined.<\/p>\n\n\n\n<h1 class=\"wp-block-heading\">16. Adaptive Filtering and Acoustic Echo Cancellation<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">One of the most important applications of adaptive filtering is <strong>Acoustic Echo Cancellation (AEC)<\/strong>.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Consider a conference device.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The loudspeaker plays:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Far-End Voice<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The microphone receives:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Near-End Speech + Far-End Echo + Background Noise<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The system can use the far-end playback signal as a reference.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The adaptive filter models the acoustic path:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Speaker \u2192 Room \u2192 Microphone<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">It then estimates the echo:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Estimated Echo<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">and subtracts it from the microphone signal.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">A simplified architecture is:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Far-End Reference<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u2193<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Adaptive Filter<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u2193<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Echo Estimate<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u2193<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Subtract from Microphone Input<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u2193<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Near-End Speech<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">This is why LMS and especially NLMS-type adaptive filtering concepts are highly relevant to conferencing and voice communication systems.<\/p>\n\n\n\n<h1 class=\"wp-block-heading\">17. Why Microphone and Speaker Placement Matters<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">An adaptive algorithm cannot completely compensate for poor acoustic design.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The acoustic path between speaker and microphone depends on:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Physical distance<\/li>\n\n\n\n<li>Device enclosure<\/li>\n\n\n\n<li>Room reflections<\/li>\n\n\n\n<li>Speaker direction<\/li>\n\n\n\n<li>Microphone direction<\/li>\n\n\n\n<li>Mechanical vibration<\/li>\n\n\n\n<li>Internal acoustic leakage<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">For microphone-array products, acoustic design therefore remains critical.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">For example, SISTC microphone-array documentation recommends considering the relative positions of the microphone, speaker, and cooling fan because the product structure directly affects microphone pickup and echo\/noise-processing performance.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">This illustrates an important engineering principle:<\/p>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p class=\"wp-block-paragraph\"><strong>Adaptive DSP should be designed together with microphone placement and acoustic structure, not treated as a software-only problem.<\/strong><\/p>\n<\/blockquote>\n\n\n\n<h1 class=\"wp-block-heading\">18. Adaptive Noise Cancellation with MEMS Microphones<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">Modern MEMS microphones are increasingly used in multi-microphone systems.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">A typical architecture may include:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>MEMS Microphone 1<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u2192 Primary Audio<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>MEMS Microphone 2<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u2192 Reference \/ Spatial Information<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u2193<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Adaptive DSP<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u2193<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Enhanced Speech<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">With more microphones, the system can obtain additional information about:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Noise direction<\/li>\n\n\n\n<li>Target direction<\/li>\n\n\n\n<li>Spatial correlation<\/li>\n\n\n\n<li>Reverberation<\/li>\n\n\n\n<li>Acoustic interference<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">This creates opportunities to combine adaptive filtering with microphone-array processing.<\/p>\n\n\n\n<h1 class=\"wp-block-heading\">19. Adaptive Filtering in <a href=\"https:\/\/sistc.com\/product\/usb-digital-mems-microphone-array-module\/\" target=\"_blank\" rel=\"noreferrer noopener\">Microphone Arrays<\/a><\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">A microphone array can provide multiple synchronized channels.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">For example:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Mic 1 \u2192 Channel 1<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Mic 2 \u2192 Channel 2<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Mic 3 \u2192 Channel 3<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Mic 4 \u2192 Channel 4<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The signals can then be processed jointly.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">An actual <a href=\"https:\/\/sistc.com\/product\/digital-mems-microphone\/\" target=\"_blank\" rel=\"noreferrer noopener\">SISTC digital microphone<\/a>-array design uses synchronized multi-channel microphone inputs and provides array signal-processing functions including noise suppression and signal enhancement.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">This type of architecture provides a foundation for more advanced processing such as:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Beamforming<\/li>\n\n\n\n<li>Direction-of-arrival estimation<\/li>\n\n\n\n<li>Adaptive filtering<\/li>\n\n\n\n<li>Noise suppression<\/li>\n\n\n\n<li>Speech enhancement<\/li>\n\n\n\n<li>Acoustic echo cancellation<\/li>\n<\/ul>\n\n\n\n<h1 class=\"wp-block-heading\">20. LMS for a Microphone Array<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">A simple multi-channel adaptive system can use one adaptive filter per microphone channel.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">For example:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Reference Signal<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u2193<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>LMS Filter 1 \u2192 Mic 1 Estimate<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>LMS Filter 2 \u2192 Mic 2 Estimate<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>LMS Filter 3 \u2192 Mic 3 Estimate<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>LMS Filter 4 \u2192 Mic 4 Estimate<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The resulting signals can then be combined.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">More advanced architectures can instead use a vector or matrix formulation to jointly process all microphone channels.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">This is where adaptive filtering begins to overlap with advanced beamforming and multi-channel signal processing.<\/p>\n\n\n\n<h1 class=\"wp-block-heading\">21. The Importance of Channel Synchronization<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">Multi-microphone adaptive processing requires accurate timing relationships between channels.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">If microphone channels are not synchronized correctly, the system may have difficulty modeling:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Phase relationships<\/li>\n\n\n\n<li>Time delays<\/li>\n\n\n\n<li>Spatial information<\/li>\n\n\n\n<li>Acoustic paths<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">This is particularly important for:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Beamforming<\/li>\n\n\n\n<li>Direction estimation<\/li>\n\n\n\n<li>Multi-channel AEC<\/li>\n\n\n\n<li>Adaptive array processing<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">For this reason, synchronized multi-channel acquisition is an important hardware consideration for microphone-array systems.<\/p>\n\n\n\n<h1 class=\"wp-block-heading\">22. Real-Time Adaptive Noise Cancellation<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">Adaptive filters are well suited to real-time systems because they update continuously as audio samples arrive.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">A typical real-time loop is:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Acquire Sample<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u2193<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Read Reference<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u2193<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Calculate Filter Output<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u2193<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Calculate Error<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u2193<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Update Coefficients<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u2193<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Output Enhanced Audio<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u2193<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Repeat<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The processing must finish before the next audio block arrives.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Otherwise, the system introduces:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Buffer underruns<\/li>\n\n\n\n<li>Audio dropouts<\/li>\n\n\n\n<li>Increased latency<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Therefore, algorithm design and hardware selection must be considered together.<\/p>\n\n\n\n<h1 class=\"wp-block-heading\">23. Filter Length<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">The adaptive filter length is another important parameter.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">A short filter requires:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Less computation<\/li>\n\n\n\n<li>Less memory<\/li>\n\n\n\n<li>Faster processing<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">But it may not be able to model a long or complex acoustic path.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">A longer filter can model more complex relationships but requires more resources.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">This is especially important for AEC because the acoustic impulse response of a room can contain many reflections.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The correct filter length therefore depends on:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Sampling rate<\/li>\n\n\n\n<li>Acoustic path<\/li>\n\n\n\n<li>Room characteristics<\/li>\n\n\n\n<li>Device geometry<\/li>\n\n\n\n<li>Required performance<\/li>\n<\/ul>\n\n\n\n<h1 class=\"wp-block-heading\">24. Convergence vs. Tracking<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">Adaptive filtering always involves a tradeoff between:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Convergence speed<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">and<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Steady-state accuracy<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">A filter that adapts very slowly may not follow changing noise.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">A filter that adapts too aggressively may introduce instability or excessive coefficient fluctuations.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">For LMS and NLMS, the step size is a major control parameter.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">For RLS, the forgetting factor plays an important role.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">A practical design should therefore evaluate both:<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>How quickly the filter adapts<\/li>\n\n\n\n<li>How stable the output becomes after convergence<\/li>\n<\/ol>\n\n\n\n<h1 class=\"wp-block-heading\">25. Common Problems in Adaptive Noise Cancellation<\/h1>\n\n\n\n<h2 class=\"wp-block-heading\">Problem 1: Poor reference signal<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">If the reference microphone does not capture a signal correlated with the unwanted noise, the adaptive filter has limited information to work with.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Problem 2: Reference contains the desired speech<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">If the reference microphone also captures significant target speech, the algorithm may partially cancel the desired signal.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">This can cause speech distortion.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Problem 3: Incorrect step size<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">An overly large LMS\/NLMS step size can cause unstable or noisy adaptation.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">An overly small step size can make the system respond too slowly.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Problem 4: Acoustic path changes too quickly<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">If the acoustic environment changes faster than the adaptive filter can track, the filter may temporarily become inaccurate.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Problem 5: Nonlinear distortion<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Many basic adaptive filters assume approximately linear signal relationships.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Real acoustic systems can contain nonlinearities from:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Loudspeakers<\/li>\n\n\n\n<li>Amplifiers<\/li>\n\n\n\n<li>Enclosures<\/li>\n\n\n\n<li>Microphone interfaces<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Additional nonlinear processing may therefore be required.<\/p>\n\n\n\n<h1 class=\"wp-block-heading\">26. LMS, NLMS and RLS in Embedded Systems<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">When implementing adaptive filtering on embedded hardware, engineers need to consider more than algorithmic accuracy.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Important factors include:<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">CPU load<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Higher-order algorithms require more calculations.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Memory<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Filter coefficients and historical samples must be stored.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Power consumption<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">This is especially important in battery-powered products.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Latency<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">The algorithm must operate within the system&#8217;s real-time budget.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Fixed-point vs. floating-point<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Some embedded platforms favor fixed-point arithmetic, while others provide efficient floating-point processing.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Sampling rate<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Higher sampling rates increase the number of samples processed per second.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Number of microphone channels<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Processing complexity increases significantly as the number of channels grows.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">27. Practical Algorithm Selection<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">A simplified selection process can be useful.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Choose LMS when:<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Low computational complexity is important<\/li>\n\n\n\n<li>The environment changes relatively slowly<\/li>\n\n\n\n<li>The system has limited processing resources<\/li>\n\n\n\n<li>A simple adaptive filter is sufficient<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Choose NLMS when:<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Input amplitude varies<\/li>\n\n\n\n<li>More robust adaptation is needed<\/li>\n\n\n\n<li>Real-time audio processing is required<\/li>\n\n\n\n<li>A good balance between complexity and performance is desired<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Consider RLS when:<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Fast convergence is important<\/li>\n\n\n\n<li>The acoustic environment changes significantly<\/li>\n\n\n\n<li>Processing resources are available<\/li>\n\n\n\n<li>Higher algorithm complexity is acceptable<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">These are general engineering guidelines rather than absolute rules.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">28. A Simplified NLMS Implementation<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">The following example demonstrates the basic structure of an NLMS adaptive filter.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>import numpy as np\n\ndef nlms(primary, reference, filter_length=128,\n         mu=0.5, epsilon=1e-8):\n\n    weights = np.zeros(filter_length)\n    output = np.zeros(len(primary))\n\n    reference_buffer = np.zeros(filter_length)\n\n    for n in range(len(primary)):\n\n        reference_buffer&#91;1:] = reference_buffer&#91;:-1]\n        reference_buffer&#91;0] = reference&#91;n]\n\n        # Estimate unwanted component\n        estimated_noise = np.dot(weights, reference_buffer)\n\n        # Error \/ enhanced signal\n        error = primary&#91;n] - estimated_noise\n\n        output&#91;n] = error\n\n        # NLMS coefficient update\n        power = np.dot(\n            reference_buffer,\n            reference_buffer\n        )\n\n        weights += (\n            mu * error * reference_buffer\n            \/ (epsilon + power)\n        )\n\n    return output<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">This example is intended to demonstrate the algorithmic structure.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">A production audio implementation would require additional considerations such as:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Numerical stability<\/li>\n\n\n\n<li>Input scaling<\/li>\n\n\n\n<li>DC offset handling<\/li>\n\n\n\n<li>Filter initialization<\/li>\n\n\n\n<li>Double-talk detection for AEC<\/li>\n\n\n\n<li>Voice activity detection<\/li>\n\n\n\n<li>Buffer processing<\/li>\n\n\n\n<li>Fixed-point optimization<\/li>\n\n\n\n<li>Real-time scheduling<\/li>\n<\/ul>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">29. Adaptive Noise Cancellation and AI<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">Adaptive filtering and AI-based audio enhancement are not necessarily competing technologies.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">They can serve different purposes.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">For example:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong><a href=\"https:\/\/sistc.com\/product\/ai-noise-reduction-4-array-mems-microphone-module\/\" target=\"_blank\" rel=\"noreferrer noopener\">MEMS Microphone Array<\/a><\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u2193<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Beamforming<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u2193<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Adaptive Filtering \/ AEC<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u2193<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>AI Speech Enhancement<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u2193<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Voice Recognition<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">In this architecture, adaptive DSP can handle predictable signal relationships while AI processes more complex residual interference.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">This hybrid approach is particularly relevant to modern voice-interface systems.<\/p>\n\n\n\n<h1 class=\"wp-block-heading\">30. Why Classical Adaptive Filtering Still Matters<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">With the rapid development of AI audio processing, it may appear that traditional algorithms such as LMS and RLS are becoming obsolete.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">They are not.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Adaptive filtering remains valuable because it offers:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Low latency<\/li>\n\n\n\n<li>Predictable computational requirements<\/li>\n\n\n\n<li>Real-time operation<\/li>\n\n\n\n<li>Mathematical interpretability<\/li>\n\n\n\n<li>Efficient embedded implementation<\/li>\n\n\n\n<li>Continuous adaptation<\/li>\n\n\n\n<li>Strong suitability for AEC and control applications<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">AI models can provide powerful nonlinear signal separation, but classical DSP remains an important part of many practical audio architectures.<\/p>\n\n\n\n<h1 class=\"wp-block-heading\">31. Adaptive Noise Cancellation in Modern Audio Products<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">A modern audio product may contain several processing layers:<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Hardware Layer<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>MEMS Microphones<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u2193<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Acquisition Layer<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Synchronized Multi-Channel Audio<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u2193<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Spatial Processing<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Beamforming \/ Direction Estimation<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u2193<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Adaptive Processing<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>AEC \/ LMS \/ NLMS \/ RLS<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u2193<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Spectral Processing<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Wiener Filtering \/ Noise Suppression<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u2193<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">AI Processing<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Neural Speech Enhancement<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u2193<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Application<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Voice Recognition \/ Communication \/ Recording<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">This layered architecture highlights an important point:<\/p>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p class=\"wp-block-paragraph\">No single noise-reduction algorithm is universally sufficient for every acoustic environment.<\/p>\n<\/blockquote>\n\n\n\n<p class=\"wp-block-paragraph\">The best system architecture depends on the interaction between the microphone hardware, acoustic structure, DSP algorithms, AI models, and application requirements.<\/p>\n\n\n\n<h1 class=\"wp-block-heading\">32. Adaptive Noise Cancellation vs. Active Noise Cancellation<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">These two terms are sometimes confused.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Adaptive Noise Cancellation<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Usually refers to a signal-processing technique in which an adaptive filter estimates and suppresses an unwanted signal.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">It can be used in:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Voice communication<\/li>\n\n\n\n<li>AEC<\/li>\n\n\n\n<li>Microphone systems<\/li>\n\n\n\n<li>Signal enhancement<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Active Noise Cancellation<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Usually refers to generating an acoustic signal that destructively interferes with unwanted sound.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Typical examples include:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Headphones<\/li>\n\n\n\n<li>Earbuds<\/li>\n\n\n\n<li>Vehicle cabins<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Although both may use adaptive filtering, their system architectures and objectives are different.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">This distinction is important when discussing audio products and engineering specifications.<\/p>\n\n\n\n<h1 class=\"wp-block-heading\">33. Practical Design Checklist<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">When designing an adaptive noise cancellation system, engineers should evaluate:<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Signal architecture<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>What is the primary signal?<\/li>\n\n\n\n<li>What is the reference signal?<\/li>\n\n\n\n<li>Is the reference correlated with the unwanted noise?<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Algorithm<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>LMS?<\/li>\n\n\n\n<li>NLMS?<\/li>\n\n\n\n<li>RLS?<\/li>\n\n\n\n<li>Multi-channel adaptive filtering?<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Acoustic design<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Microphone location<\/li>\n\n\n\n<li>Speaker location<\/li>\n\n\n\n<li>Mechanical isolation<\/li>\n\n\n\n<li>Acoustic leakage<\/li>\n\n\n\n<li>Reverberation<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Processing<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Sampling rate<\/li>\n\n\n\n<li>Filter length<\/li>\n\n\n\n<li>Block size<\/li>\n\n\n\n<li>CPU load<\/li>\n\n\n\n<li>Memory<\/li>\n\n\n\n<li>Latency<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Audio quality<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Noise attenuation<\/li>\n\n\n\n<li>Speech preservation<\/li>\n\n\n\n<li>Residual noise<\/li>\n\n\n\n<li>Convergence behavior<\/li>\n\n\n\n<li>Audible artifacts<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">System integration<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>MEMS microphone performance<\/li>\n\n\n\n<li>ADC \/ digital microphone interface<\/li>\n\n\n\n<li>DSP<\/li>\n\n\n\n<li>AI processor<\/li>\n\n\n\n<li>Communication interface<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">This system-level evaluation is usually more meaningful than comparing algorithms by name alone.<\/p>\n\n\n\n<h1 class=\"wp-block-heading\">34. Frequently Asked Questions<\/h1>\n\n\n\n<h2 class=\"wp-block-heading\">What is adaptive noise cancellation?<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Adaptive noise cancellation is a signal-processing technique that continuously adjusts a filter to estimate and suppress unwanted interference.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">What is the LMS algorithm?<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">LMS, or Least Mean Squares, is a gradient-based adaptive filtering algorithm that updates filter coefficients to minimize the mean-square error between the desired and estimated signals.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">What is NLMS?<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">NLMS, or Normalized Least Mean Squares, is an improved LMS approach that normalizes the coefficient update according to the energy of the reference signal.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">What is RLS?<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">RLS, or Recursive Least Squares, is an adaptive filtering algorithm that recursively minimizes a weighted history of squared errors. It generally converges faster than LMS-type methods but requires more computational resources.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Is NLMS better than LMS?<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Neither is universally better. NLMS is generally less sensitive to changes in reference-signal amplitude, while LMS has a simpler update rule and lower computational overhead.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Is RLS better than NLMS?<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">RLS can converge faster in many situations, but it has substantially higher computational and memory requirements. For resource-constrained embedded audio systems, NLMS may be more practical.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Can LMS be used for acoustic echo cancellation?<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Yes. Adaptive filtering is a fundamental technique in acoustic echo cancellation, where a known far-end playback signal can be used as a reference for estimating the acoustic echo path.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Can adaptive noise cancellation work with MEMS microphones?<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Yes. MEMS microphones can provide the primary and reference signals required by adaptive filtering systems. Multi-microphone systems can also provide additional spatial information for more advanced processing.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Can adaptive filtering and AI noise reduction be used together?<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Yes. Adaptive filtering can handle predictable or correlated interference, while AI models can address more complex residual noise and speech enhancement tasks.<\/p>\n\n\n\n<h1 class=\"wp-block-heading\">Conclusion<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Adaptive noise cancellation is one of the fundamental technologies in real-time audio DSP.<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The three classical algorithms\u2014<strong>LMS, NLMS, and RLS<\/strong>\u2014provide different tradeoffs between:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Computational complexity<\/li>\n\n\n\n<li>Convergence speed<\/li>\n\n\n\n<li>Stability<\/li>\n\n\n\n<li>Memory requirements<\/li>\n\n\n\n<li>Adaptation capability<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">LMS provides a simple foundation.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">NLMS improves robustness to changes in input signal power and is particularly useful in many practical audio systems.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">RLS provides faster adaptation at the cost of significantly greater computational complexity.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">In real-world audio products, however, the algorithm is only one part of the solution.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">High-quality adaptive audio processing depends on the complete signal chain:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>MEMS Microphone \u2192 Acoustic Design \u2192 Synchronized Audio Capture \u2192 Adaptive DSP \u2192 Noise Reduction \u2192 AI Enhancement \u2192 Application<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">For microphone arrays and professional audio systems, combining <strong>multi-channel microphone hardware, beamforming, adaptive filtering, spectral noise reduction, and AI<\/strong> can provide a much more flexible foundation for challenging acoustic environments.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The next step in this technical series is to examine <strong>Wavelet Denoising for Audio Signals<\/strong>, which approaches noise reduction from a different perspective by analyzing signals across multiple time-frequency scales.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Background noise is rarely constant. A microphone may encounter changing fan noise, vehicle noise, machinery, keyboard sounds, vibration, or other interference. When the noise characteristics change over time, a fixed [&hellip;]<\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_monsterinsights_skip_tracking":false,"site-sidebar-layout":"default","site-content-layout":"","ast-site-content-layout":"default","site-content-style":"default","site-sidebar-style":"default","ast-global-header-display":"","ast-banner-title-visibility":"","ast-main-header-display":"","ast-hfb-above-header-display":"","ast-hfb-below-header-display":"","ast-hfb-mobile-header-display":"","site-post-title":"","ast-breadcrumbs-content":"","ast-featured-img":"","footer-sml-layout":"","ast-disable-related-posts":"","theme-transparent-header-meta":"","adv-header-id-meta":"","stick-header-meta":"","header-above-stick-meta":"","header-main-stick-meta":"","header-below-stick-meta":"","astra-migrate-meta-layouts":"set","ast-page-background-enabled":"default","ast-page-background-meta":{"desktop":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"ast-content-background-meta":{"desktop":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"_joinchat":[],"footnotes":""},"categories":[103],"tags":[],"class_list":["post-16692","post","type-post","status-publish","format-standard","hentry","category-technical-blog"],"_links":{"self":[{"href":"https:\/\/sistc.com\/zh\/wp-json\/wp\/v2\/posts\/16692","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/sistc.com\/zh\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/sistc.com\/zh\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/sistc.com\/zh\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/sistc.com\/zh\/wp-json\/wp\/v2\/comments?post=16692"}],"version-history":[{"count":2,"href":"https:\/\/sistc.com\/zh\/wp-json\/wp\/v2\/posts\/16692\/revisions"}],"predecessor-version":[{"id":16694,"href":"https:\/\/sistc.com\/zh\/wp-json\/wp\/v2\/posts\/16692\/revisions\/16694"}],"wp:attachment":[{"href":"https:\/\/sistc.com\/zh\/wp-json\/wp\/v2\/media?parent=16692"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/sistc.com\/zh\/wp-json\/wp\/v2\/categories?post=16692"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/sistc.com\/zh\/wp-json\/wp\/v2\/tags?post=16692"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}