📄 calculate_rls_mvdr.m
字号:
% RLS Algorithm - From P.756 of Optimum Array Processing
function [w_rls, R_inv] = calculate_rls_mvdr(s, r, eta)
numIterations = size(r, 2);
N = size(r,1);
w_rls = zeros(N, numIterations);
w_rls(:,1) = s/(norm(s)^2);
R_inv = eye(N) / eta;
R_inv_last = R_inv;
Lambda = 1/(s'*R_inv*s);
Lambda_last = 1/(s'*R_inv*s);
mu = 1;
for i = 2:numIterations
R_inv = R_inv_last - (R_inv_last*r(:, i)*r(:, i)'*R_inv_last)/(1+r(:, i)'*R_inv_last*r(:, i));
Lambda = 1/(s'*R_inv*s);
G = (R_inv_last*r(:, i))/(1+r(:, i)'*R_inv_last*r(:, i));
Y = w_rls(:,i-1)'*r(:, i);
w_rls(:,i) = (Lambda/Lambda_last)*(w_rls(:,i-1)-G*Y');
Lambda_last = Lambda;
R_inv_last = R_inv;
end
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -