ivan@155: function [] = DLMM_Audio(m,n,l,it,Lambda,admiss) ivan@155: M = str2num(m); ivan@155: N = str2num(n); ivan@155: L = str2num(l); ivan@155: IT = str2num(it); ivan@155: lambda = str2num(Lambda); ivan@155: load(['Param',num2str(M),'X',num2str(N),'X',num2str(L),'kADCT2X01.mat']) ivan@155: method = ['bn';'un']; ivan@155: res = 1; ivan@155: while method(res)~=admiss ivan@155: res = res+1; ivan@155: end ivan@155: [PhiN,PhiM] = size(Phio); ivan@155: Phi = randn(M,N); ivan@155: Phi = Phi*diag(1./sqrt(sum(Phi.^2))); ivan@155: [PhiN,L] = size(x); ivan@155: phim = PhiM; ivan@155: unhat = zeros(PhiM,L); ivan@155: maxIST = 10; ivan@155: maxIDU = 10; ivan@155: it = 1; ivan@155: ert(1) = norm(Phi*unhat-x,'fro')^2 + lambda*(sum(sum(abs(unhat)))); ivan@155: while it <= IT ivan@155: it ivan@155: % %%%%%% Iterative Soft-Thresholding for Sparse Approximation %%%%% ivan@155: tau2 = .1+(svds(Phi,1))^2; ivan@155: eps = 3*10^-4; ivan@155: map = 0; % Projecting on the selected space (0=no,1=yes) ivan@155: [unhat,er] = mm1(Phi,x,unhat,tau2,lambda,maxIST,eps,map); ivan@155: er ivan@155: %%%%%% Majorisation Minimisation for Dictionary Update %%%%%% ivan@155: c = .1 + svds(unhat,1)^2; ivan@155: eps = 10^-7; ivan@155: [Phi,unhat] = dict_update_REG_cn(Phi,x,unhat,maxIDU,eps,'un'); ivan@155: %%%%% ivan@155: ert(it+1) = norm(Phi*unhat-x,'fro')^2 + lambda*(sum(sum(abs(unhat)))); ivan@155: it = it+1; ivan@155: end ivan@155: save(['DLMMl1',num2str(PhiN),'X',num2str(PhiM),'X',num2str(L),'iK',method(res,:),'Lambda',num2str(lambda),'Audio.mat'],'Phi','x','unhat','ert','lambda')