Microphone array mixer

Virtual N-microphone array from a single HW capture

You are now following this Submission

`mic_array_mixer` turns a single mono (or stereo) audio block — typically the capture from one physical microphone — into the multichannel signal that an M-element microphone array would have produced if the same acoustic source had been observed with that array. It is the front-end synthesis stage used by the Q-WiSE edge speech-enhancement project to develop, validate and benchmark beamformers (MVDR, GEV, Speech-Distortion-Weighted MWF, GSC) without requiring an actual array on the bench.
Two array topologies are built in: a Uniform Linear Array (ULA) along the x-axis with element spacing d, and a Uniform Circular Array (UCA) whose radius is derived from the inter-element chord so that adjacent sensors are exactly d apart. Both regimes of acoustic propagation are supported: a plane-wave (far-field) model driven by the source direction-of-arrival, and a spherical-wave (near-field) model driven by an explicit source position with a 1/r spreading-gain term clamped at a configurable reference distance to prevent unphysical boosts when a source sits inside the array aperture.
Sub-sample TDOAs are rendered by a windowed-sinc fractional-delay tap (Hann-windowed, half-length P configurable, unity DC gain) with a per-sensor fast path that builds the FIR kernel once per channel rather than once per sample. A two-tap linear interpolator is included as a low-CPU fallback for micro-edge targets. A pre-rolled history ring keeps block boundaries click-free, and an `info.tail` is returned so the function can be driven block-by-block as a streaming processor.

Cite As

Javad Rajabzadeh (2026). Microphone array mixer (https://nl.mathworks.com/matlabcentral/fileexchange/183871-microphone-array-mixer), MATLAB Central File Exchange. Retrieved .

General Information

MATLAB Release Compatibility

  • Compatible with any release

Platform Compatibility

  • Windows
  • macOS
  • Linux
Version Published Release Notes Action
1.0.0