Skip to content
MATLAB script of Independent Low-Rank Matrix Analysis (ILRMA)
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Type Name Latest commit message Commit time
Failed to load latest commit information.
ILRMA_readable.m Modify header comment style Dec 1, 2019
main.m Modify header comment style Dec 1, 2019
whitening.m Modify header comment style Dec 1, 2019

Independent Low-Rank Matrix Analysis (ILRMA)


Sample MATLAB script for independent low-rank matrix analysis (ILRMA) and its application to blind audio source separation.


  • input [dir]: includes test audio signals (reverberation time is around 300 ms)
  • reference [dir]: includes reference documents for ILRMA
  • bss_ILRMA.m: apply pre- and post-processing for blind source separation (STFT, whitening, ILRMA, back projection, and ISTFT)
  • ILRMA.m: function of ILRMA (fast and heuristic implementation)
  • ILRMA_readable.m: function of ILRMA (slow but somewhat readable implementation)
  • ISTFT.m: inverse short-time Fourier transform
  • main.m: main script with parameter settings
  • backProjection.m: back projection technique (fixing frequency-wise scales)
  • STFT.m: short-time Fourier transform
  • whitening.m: applying principal component analysis for decorrelating observed multichannel signal

Usage Note

A parameter "normalize" in 47th line of main.m is important.
This parameter controls whether apply normalization process (lines from 187th to 192nd in ILRMA.m) in each iteration of ILRMA or not.
Normalization process will improve the numerical stability of the algorithm, but the monotonic decrease of the cost function in the update algorithm may be lost.
Useful information can be found at

Copyright Note

Copyright 2018 Daichi Kitamura.
These programs are distributed only for academic research at universities and research institutions.
It is not allowed to use or modify these programs for commercial or industrial purpose without our permission.
When you use or modify these programs and write research articles, cite the following references:

  • D. Kitamura, N. Ono, H. Sawada, H. Kameoka, H. Saruwatari, "Determined blind source separation unifying independent vector analysis and nonnegative matrix factorization," IEEE/ACM Trans. ASLP, vol. 24, no. 9, pp. 1626-1641, September 2016.
  • D. Kitamura, N. Ono, H. Sawada, H. Kameoka, H. Saruwatari, "Determined blind source separation with independent low-rank matrix analysis," Audio Source Separation. Signals and Communication Technology., S. Makino, Ed. Springer, Cham, pp. 125-155, March 2018.

Python Script

You can find Python script of ILRMA in Pyroomacoustics:

See Also

You can’t perform that action at this time.