# HG changeset patch # User Chris Cannam # Date 1396368116 -3600 # Node ID 6a80e0cb2c947a69185959b5b9f19c5014840dc5 # Parent cd9fd74931bb0fbf7d384a2f35ccde7cc3dd6d91 Notes diff -r cd9fd74931bb -r 6a80e0cb2c94 notes/cplcaMT-annotated.m --- a/notes/cplcaMT-annotated.m Mon Mar 31 17:21:51 2014 +0100 +++ b/notes/cplcaMT-annotated.m Tue Apr 01 17:01:56 2014 +0100 @@ -254,7 +254,14 @@ xbar = x ./ xa; xbar = eval( flz); - %% xbar now contains the result of Eqn 8 in the CMJ paper, Pt(p,f,s|w) + %% xbar now contains the summation of Eqn 8 in the CMJ paper, i.e. + %% it is a time-frequency distribution consisting of the + %% five-dimensional distribution Pt(p,f,s|w) summed across p, f, + %% and s. In the M step, for each parameter we want to update, we + %% take the same five-dimensional distribution and marginalise it + %% across the other parameters that that one does not depend on. + %% The M-step is a bit tricky for me to follow here, with the + %% convolution and use of MATLAB eval macros. fx = fftn( xbar, wc); @@ -288,11 +295,8 @@ nhu = eval( fnh); %% more magic - %% h{k} is 5x100, I'd expect this to be 100x5, I must - %% have got something transposed somewhere nhu = nhu .* h{k}; - %% so I guess this is xbar-for-all-w-for-all-h? nu = sum(nhu)'; nu = u{r,k} .* nu + eps; if lu