annotate ddm_der_lin_sys_sol.m @ 4:72c011ed1977
tip
more elaborate example with non-stat. estimate explanation
author |
smusevic |
date |
Tue, 30 Jul 2013 09:56:27 +0100 |
parents |
a4a7e3405062 |
children |
|
rev |
line source |
dan@0
|
1 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
|
2 dlss = zeros(Q+1, N_fft-R+1);
|
dan@0
|
3 ddlss = zeros(Q+1, N_fft-R+1);
|
dan@0
|
4
|
dan@0
|
5 for l=1:N_fft-R+1
|
dan@0
|
6 A = A_sys(:,:,l);
|
dan@0
|
7 b = b_sys(:,:,l);
|
dan@0
|
8
|
dan@0
|
9
|
dan@0
|
10 AA_inv = inv(A'*A);
|
dan@0
|
11 A_plus = AA_inv*A';
|
dan@0
|
12 ddm_est_ = fliplr((A_plus * b).');
|
dan@0
|
13 dlss(:,l) = [ddm_est_ 0];
|
dan@0
|
14
|
dan@0
|
15 A_der = A_der_sys(:,:,l);
|
dan@0
|
16 b_der = b_der_sys(:,:,l);
|
dan@0
|
17 AA_mix = ( A_der' * A + A' * A_der );
|
dan@0
|
18 A_der_plus = (-AA_inv * AA_mix * AA_inv * A' + AA_inv * A_der');
|
dan@0
|
19 ddm_est_der_ = fliplr((A_der_plus *b + A_plus * b_der).');
|
dan@0
|
20 ddlss(:,l) = [ddm_est_der_ 0];
|
dan@0
|
21
|
dan@0
|
22 end
|
dan@0
|
23 end |