📄 form_e_mat.m
字号:
function E_mat = form_E_mat(Rec_Sig,l,w,Q)
%----------------------------
% Step 1: construct Z_Mat
%----------------------------
Mr = size(Rec_Sig,1);
Z_Mat = zeros((2*w+l+1)*Mr,Q-2*w-l);
for row = 1:2*w+l+1
Z_Mat((row-1)*Mr+1:row*Mr,:) = Rec_Sig(:,2*w+l+2-row:Q+1-row);
end
%----------------------
% Step 2: denoising
%----------------------
[U,S,V] = svd(Z_Mat,'econ');
rank_Z = effective_rank(S);
P = size(S,1);
n_eig = 0;
for i = rank_Z+1:P
n_eig = n_eig + abs(S(i,i))/(P-rank_Z);
end
S = S - n_eig*eye(P);
Z_Mat = U(:,1:rank_Z)*S(1:rank_Z,1:rank_Z)*V(:,1:rank_Z)';
F_Mat = Z_Mat(1:w*Mr,:);
Y_Mat = Z_Mat(w*Mr+1:(w+l+1)*Mr,:);
P_Mat = Z_Mat((w+l+1)*Mr+1:(2*w+l+1)*Mr,:);
D_Mat = [F_Mat;P_Mat];
%------------------------
% Step 3: Calculate E
%------------------------
V_mat = orth(D_Mat');
E_mat = Y_Mat-Y_Mat*V_mat*V_mat';
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -