annotate Sirtassa/UpdateFilterCoefficientsOL.m @ 2:13ec2fa02a26 tip

(none)
author Yannick JACOB <y.jacob@se12.qmul.ac.uk>
date Tue, 03 Sep 2013 15:33:42 +0100
parents 2cd427e000b0
children
rev   line source
y@0 1 GEA = cell(nbInstrument,nbBandPassFilters);
y@0 2
y@0 3
y@0 4 xHat = sparse(zeros(HFFTS,len));
y@0 5
y@0 6 % Model Spectrogram
y@0 7 for ins = 1:nbInstrument
y@0 8 for filterInd = 1:nbBandPassFilters
y@0 9 GEA{ins,filterInd} = sparse(zeros(HFFTS, len));
y@0 10 for frame = first:curFrame
y@0 11 GEA{ins,filterInd}(:,frame-first+1) = (filterBasis(:,filterInd)*gains(ins,frame)).*(excitationSpectrums{ins,frame}*partialsWeights(:,ins));
y@0 12 end
y@0 13 xHat = xHat + GEA{ins,filterInd}*filterCoefficients(filterInd,ins);
y@0 14 end
y@0 15 end
y@0 16
y@0 17 %Compute distance and r
y@0 18 distFilter(nbUpdates) = sum(sum( tmpMaskedSpectrogram .* log((tmpMaskedSpectrogram+eps) ./ (xHat+eps)) - tmpMaskedSpectrogram + xHat));
y@0 19 r = (currentMag+eps)./(xHat+eps);
y@0 20 updateFilterCoeff = ones(nbBandPassFilters,nbInstrument);
y@0 21
y@0 22 %Update Filter Coefficients
y@0 23 for ins = 1:nbInstrument
y@0 24 for filterInd = 1:nbBandPassFilters
y@0 25 updateFilterCoeff(filterInd,ins) = (sum(sum(GEA{ins,filterInd}.*r))+eps)/(sum(sum(GEA{ins,filterInd}))+eps);
y@0 26 end
y@0 27 end
y@0 28 clear GEA;
y@0 29 filterCoefficients = filterCoefficients.*updateFilterCoeff;
y@0 30 for ins=1:nbInstrument
y@0 31 maxValue = max(filterCoefficients(:,ins));
y@0 32 filterCoefficients(:,ins) = filterCoefficients(:,ins) / maxValue;
y@0 33 gains(ins,:) = gains(ins,:) * maxValue;
y@0 34 end
y@0 35 outlook = filterBasis * filterCoefficients;
y@0 36 % figure, plot(outlook(1:blockSize/8,:));