dan@0: 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) dan@0: dlss = zeros(Q+1, N_fft-R+1); dan@0: ddlss = zeros(Q+1, N_fft-R+1); dan@0: dan@0: for l=1:N_fft-R+1 dan@0: A = A_sys(:,:,l); dan@0: b = b_sys(:,:,l); dan@0: dan@0: dan@0: AA_inv = inv(A'*A); dan@0: A_plus = AA_inv*A'; dan@0: ddm_est_ = fliplr((A_plus * b).'); dan@0: dlss(:,l) = [ddm_est_ 0]; dan@0: dan@0: A_der = A_der_sys(:,:,l); dan@0: b_der = b_der_sys(:,:,l); dan@0: AA_mix = ( A_der' * A + A' * A_der ); dan@0: A_der_plus = (-AA_inv * AA_mix * AA_inv * A' + AA_inv * A_der'); dan@0: ddm_est_der_ = fliplr((A_der_plus *b + A_plus * b_der).'); dan@0: ddlss(:,l) = [ddm_est_der_ 0]; dan@0: dan@0: end dan@0: end