This page provides source code for the paper:
D. L. Sun and R. Mazumder. Non-negative matrix completion for bandwidth extension: a convex optimization approach, IEEE Workshop on Machine Learning and Signal Processing (MLSP), September 2013.
Matlab code: nmc_admm.m
% generate a random matrix to start (just for testing the code) V = rand(1000, 1000); % specify which entries in V are missing missing = false(size(V)); missing(501:1000, 501:1000) = 1; % set quarter of entries to be missing % specify which entries in V should be held fixed (i.e., not updated in the algorithm) fixed = false(size(V)); fixed(1:1000, 1:500) = 1; % hold first half of matrix fixed % other parameters of the algorithm lam = 1; % regularization parameter in the objective function rho = 1; % ADMM parameter beta = 1; % set beta=1 for KL divergence, beta=2 for Euclidean distance % run non-negative matrix completion algorithm [X, ~, ~, ~] = nmc_admm(V, missing, fixed, lam, rho, beta);
Please feel free to contact me with any questions and bug reports: firstname.lastname@example.org.
In the paper, we applied non-negative matrix completion to the problem of bandwidth extension. Shown below are spectrograms of the bandlimited signal, the full-bandwidth training data, and the recovered signal, alongside the ground truth. You can listen to the audio by clicking on the link below.
|Bandlimited Signal||Training Data||Bandwidth Extended||Ground Truth|
|Back in Black||Highway to Hell||Back in Black||Back in Black|