MATLAB Implementation of the DUET Algorithm for Blind Source Separation

Resource Overview

MATLAB code implementation of the DUET (Degenerate Unmixing Estimation Technique) algorithm for blind source separation with time-delay and attenuation mixing models

Detailed Documentation

The DUET (Degenerate Unmixing Estimation Technique) algorithm is a blind source separation method designed for time-delay and attenuation mixing models. This algorithm is particularly effective for two-channel mixed signal scenarios, capable of accurately estimating the relative time delays and attenuation coefficients of source signals arriving at microphones.

### Algorithm Core Concept The fundamental principle of DUET involves exploiting the time-frequency characteristics of mixed signals. By applying Short-Time Fourier Transform (STFT) to convert signals into the time-frequency domain, the algorithm analyzes phase differences and amplitude ratios at each time-frequency point to estimate source signal parameters. DUET operates under the "sparsity assumption" - that each time-frequency point is predominantly dominated by a single source signal.

### Implementation Workflow Overview Signal Preprocessing: Perform STFT on the input two-channel mixed signals to obtain time-frequency representations. Phase Difference Calculation: Compute inter-channel phase differences for each time-frequency point to estimate relative time delays. Amplitude Ratio Calculation: Calculate amplitude ratios between channels to estimate attenuation coefficients. Parameter Clustering: Cluster the estimated delay and attenuation parameters using histogram analysis or K-means methods, where each cluster center corresponds to parameters of one source signal. Mask Generation: Create time-frequency masks based on clustering results for source separation. Signal Reconstruction: Apply inverse STFT to convert separated time-frequency signals back to the time domain.

### MATLAB Implementation Considerations When implementing DUET in MATLAB, consider these key aspects: Time-Frequency Analysis: Use MATLAB's `spectrogram` function or custom STFT implementation with appropriate window functions and overlap lengths. Phase Difference Handling: Address phase wrapping issues in phase difference calculations, potentially requiring unwrapping techniques. Clustering Methods: Utilize MATLAB's `histogram` or `kmeans` functions for parameter clustering, selecting optimal cluster numbers based on data distribution. Mask Optimization: Implement binary or soft mask strategies to balance separation quality and signal integrity.

The DUET algorithm finds extensive applications in speech separation and sound source localization, though its performance depends on signal sparsity and mixing model assumptions. Implementation may require parameter adjustments and optimization steps tailored to specific application scenarios.