<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>ANC on Mi&amp;Bee Blog</title><link>/en/tags/anc/</link><description>Recent content in ANC on Mi&amp;Bee Blog</description><generator>Hugo -- gohugo.io</generator><language>en</language><managingEditor>蓝宝石的傻话</managingEditor><lastBuildDate>Mon, 25 May 2026 10:00:00 +0800</lastBuildDate><atom:link href="/en/tags/anc/rss.xml" rel="self" type="application/rss+xml"/><item><title>Acoustic Waves &amp; Digital Signal Processing Basics</title><link>/en/posts/physical-world/acoustics-dsp-basics/</link><pubDate>Mon, 04 May 2026 10:00:00 +0800</pubDate><guid>/en/posts/physical-world/acoustics-dsp-basics/</guid><description>&lt;h2 id="destructive-interference"&gt;Destructive Interference&lt;/h2&gt;
&lt;p&gt;Active noise cancellation (ANC) builds on a simple physical principle: destructive interference. Two sound waves of the same frequency and opposite phase cancel each other out.&lt;/p&gt;
&lt;p&gt;The original noise signal:&lt;/p&gt;
&lt;p&gt;$$
p_n(t) = A \cos(2\pi ft + \phi)
$$&lt;/p&gt;
&lt;p&gt;The anti-noise generated by the ANC system:&lt;/p&gt;
&lt;p&gt;$$
p_c(t) = -A \cos(2\pi ft + \phi) = A \cos(2\pi ft + \phi + \pi)
$$&lt;/p&gt;
&lt;p&gt;Superposition:&lt;/p&gt;
&lt;p&gt;$$
p_{\text{total}} = p_n(t) + p_c(t) = 0
$$&lt;/p&gt;</description></item><item><title>Adaptive Filtering: From LMS to NLMS</title><link>/en/posts/physical-world/adaptive-filtering-lms-nlms/</link><pubDate>Thu, 07 May 2026 10:00:00 +0800</pubDate><guid>/en/posts/physical-world/adaptive-filtering-lms-nlms/</guid><description>&lt;h2 id="the-lms-algorithm"&gt;The LMS Algorithm&lt;/h2&gt;
&lt;p&gt;The core problem in adaptive filtering is: given a reference signal &lt;code&gt;x(n)&lt;/code&gt; and a desired signal &lt;code&gt;d(n)&lt;/code&gt;, find a filter coefficient vector &lt;code&gt;w&lt;/code&gt; such that the output &lt;code&gt;y(n)&lt;/code&gt; approximates &lt;code&gt;d(n)&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;The Least Mean Square (LMS) algorithm is the most classic solution to this problem, proposed by Widrow and Hoff in 1960. The core idea is to take one step down the steepest gradient of the error surface at each iteration — stochastic gradient descent.&lt;/p&gt;</description></item><item><title>FXLMS and Active Noise Control System Architecture</title><link>/en/posts/physical-world/fxlms-anc-architecture/</link><pubDate>Mon, 11 May 2026 10:00:00 +0800</pubDate><guid>/en/posts/physical-world/fxlms-anc-architecture/</guid><description>&lt;p&gt;Active Noise Control (ANC) works by generating an acoustic wave with equal amplitude and opposite phase to the incoming noise, canceling it through destructive interference at the target zone. Translating this into hardware requires two decisions: which sensors to use for noise sensing, and what control strategy to apply for anti-noise generation. These two factors define the three canonical ANC architectures: feedforward, feedback, and hybrid.&lt;/p&gt;
&lt;h2 id="feedforward-anc"&gt;Feedforward ANC&lt;/h2&gt;
&lt;p&gt;A feedforward ANC system places a reference microphone upstream of the noise source to capture the disturbance early, feeds it to the DSP, and drives the speaker to produce the anti-noise. An error microphone near the ear monitors the residual noise and feeds it back to the adaptive algorithm for coefficient update.&lt;/p&gt;</description></item><item><title>Embedded ANC: STM32 in Practice</title><link>/en/posts/physical-world/embedded-anc-stm32/</link><pubDate>Mon, 18 May 2026 10:00:00 +0800</pubDate><guid>/en/posts/physical-world/embedded-anc-stm32/</guid><description>&lt;h2 id="hardware-architecture"&gt;Hardware Architecture&lt;/h2&gt;
&lt;p&gt;Implementing real-time ANC begins with selecting the right hardware platform. The controller must complete adaptive filtering within microseconds while managing multiple audio data streams.&lt;/p&gt;
&lt;table&gt;
	&lt;thead&gt;
			&lt;tr&gt;
					&lt;th&gt;Module&lt;/th&gt;
					&lt;th&gt;Function&lt;/th&gt;
					&lt;th&gt;Typical Choice&lt;/th&gt;
			&lt;/tr&gt;
	&lt;/thead&gt;
	&lt;tbody&gt;
			&lt;tr&gt;
					&lt;td&gt;Main Controller&lt;/td&gt;
					&lt;td&gt;Executes adaptive algorithm&lt;/td&gt;
					&lt;td&gt;STM32F4/F7, ESP32-S3, nRF5340&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;Reference Mic&lt;/td&gt;
					&lt;td&gt;Captures ambient noise&lt;/td&gt;
					&lt;td&gt;Knowles SPH0645, Infineon IM69D130&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;Error Mic&lt;/td&gt;
					&lt;td&gt;Captures residual noise&lt;/td&gt;
					&lt;td&gt;Knowles SPH0645, TDK ICS-43434&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;Audio DAC&lt;/td&gt;
					&lt;td&gt;Outputs anti-noise signal&lt;/td&gt;
					&lt;td&gt;ES9218, PCM5102&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;Amplifier&lt;/td&gt;
					&lt;td&gt;Drives speaker&lt;/td&gt;
					&lt;td&gt;Class-D&lt;/td&gt;
			&lt;/tr&gt;
	&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;The reference microphone sits outside the earcup and captures external ambient noise as the algorithm&amp;rsquo;s reference input. The error microphone sits inside the earcup near the speaker, capturing residual noise for evaluating cancellation performance and driving adaptive updates. The audio DAC converts the digital anti-noise signal to analog, which is amplified by a Class-D amplifier to drive the speaker.&lt;/p&gt;</description></item><item><title>Embedded ANC: ESP32 Practice</title><link>/en/posts/physical-world/embedded-anc-esp32/</link><pubDate>Thu, 21 May 2026 10:00:00 +0800</pubDate><guid>/en/posts/physical-world/embedded-anc-esp32/</guid><description>&lt;p&gt;The ESP32-S3&amp;rsquo;s dual-core Xtensa LX7 processor with vector instruction set extensions is well-suited for the real-time DSP workloads required by embedded ANC. Combined with the ESP-DSP library, efficient adaptive filtering becomes practical on this platform.&lt;/p&gt;
&lt;h2 id="i2s-microphone-capture"&gt;I2S Microphone Capture&lt;/h2&gt;
&lt;p&gt;ANC requires at least two synchronous input channels: a reference microphone (capturing ambient noise) and an error microphone (capturing residual error). The ESP32-S3 I2S peripheral supports simultaneous multi-channel ADC data reception. Configuring it for 16-bit, 16 kHz sampling suffices for consumer-grade ANC.&lt;/p&gt;</description></item><item><title>ANC Tuning &amp; Performance Optimization</title><link>/en/posts/physical-world/anc-tuning-debugging/</link><pubDate>Mon, 25 May 2026 10:00:00 +0800</pubDate><guid>/en/posts/physical-world/anc-tuning-debugging/</guid><description>&lt;p&gt;In engineering practice, the most time-consuming and experience-dependent part of an active noise control system is not algorithm selection, but parameter tuning and stability debugging. Filter order, step size, sampling rate — each parameter interacts with the others in ways that are not always obvious. This article draws from hands-on experience to cover the key parameter selection logic and common troubleshooting approaches in ANC tuning.&lt;/p&gt;
&lt;h2 id="filter-order-selection"&gt;Filter Order Selection&lt;/h2&gt;
&lt;p&gt;The FIR filter order $N$ directly determines two core metrics: frequency resolution and computational complexity. Getting this choice wrong reveals itself early in debugging — poor noise reduction, slow convergence, or outright divergence.&lt;/p&gt;</description></item></channel></rss>