Mercurial > hg > ddm
diff ddm_der_lin_sys_sol.m @ 0:a4a7e3405062
Import DDM code by Sašo Muševič
author | Dan Stowell <dan.stowell@elec.qmul.ac.uk> |
---|---|
date | Thu, 09 May 2013 20:04:15 +0100 |
parents | |
children |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/ddm_der_lin_sys_sol.m Thu May 09 20:04:15 2013 +0100 @@ -0,0 +1,23 @@ +function [ddlss dlss A_plus AA_inv A_der_plus] = ddm_der_lin_sys_sol(A_sys,b_sys,A_der_sys,b_der_sys,N_fft,R,Q) +dlss = zeros(Q+1, N_fft-R+1); +ddlss = zeros(Q+1, N_fft-R+1); + +for l=1:N_fft-R+1 + A = A_sys(:,:,l); + b = b_sys(:,:,l); + + + AA_inv = inv(A'*A); + A_plus = AA_inv*A'; + ddm_est_ = fliplr((A_plus * b).'); + dlss(:,l) = [ddm_est_ 0]; + + A_der = A_der_sys(:,:,l); + b_der = b_der_sys(:,:,l); + AA_mix = ( A_der' * A + A' * A_der ); + A_der_plus = (-AA_inv * AA_mix * AA_inv * A' + AA_inv * A_der'); + ddm_est_der_ = fliplr((A_der_plus *b + A_plus * b_der).'); + ddlss(:,l) = [ddm_est_der_ 0]; + +end +end \ No newline at end of file