⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 rcb_array.m

📁 一个鲁榜自适应Capon波束形成器(Robust Capon Beamforming)的实现算法。该算法是先进的
💻 M
字号:
function rcb_amp=RCB_array(Y,a_pool,epsilon)

% INPUT
% Y:       input data matrix: each column is one snapshot 
% a_pool:  all steering vectors need to be evaluated: each column is one 
% epsilon: the size of the uncertainty set of RCB

% OUPUT
% rcb_amp: signal waveform

M=size(Y,1);
L=size(Y,2);
a_size=size(a_pool,2);
R_rank=L;
R_hat=1/L*Y*Y';

if M<=R_rank
    R_inv=inv(R_hat);
    [U,D,V]=svd(R_hat);
    d=diag(D);
    for num_a=1:a_size
        %num_a
        a=a_pool(:,num_a);
        z=abs(U'*a);
        lambda=0;
        while abs(norm(z./(1+lambda*d))^2-epsilon)>1e-5
            %lambda
            lambda=lambda+(norm(z./(1+lambda*d))^2-epsilon)/ ...
                sum(2*z.^2.*d.*(1+lambda*d)./(1+lambda*d).^4);
        end
        a0=a-U*diag(1./(1+lambda*d))*U'*a;
        w=R_inv*a0/(a0'*R_inv*a0);
        %rcb_amp(num_a,1)=abs(1/(a0'*R_inv*a0))*(norm(a0)^2/M);
        rcb_amp(:,num_a)=(w'*Y*sqrt(norm(a0)^2/M)).';
    end
else
    [U,D,V]=svd(R_hat);
    d=diag(D);
    [d_sort,i_sort]=sort(d);
    d=flipud(d_sort);
    U=U(:,flipud(i_sort));
    U_small=U(:,1:R_rank);
    d_small=d(1:R_rank);
    D_small=diag(d_small);
    for num_a=1:a_size
        %num_f
        a=a_pool(:,num_a);
        z=abs(U'*a);
        if norm(z(1:R_rank))^2 < M-epsilon
            rcb_amp(num_f+1)=0;
        else
            lambda=0;
            while abs(norm(z./(1+lambda*d))^2-epsilon)>1e-5
                %lambda
                lambda=lambda+(norm(z./(1+lambda*d))^2-epsilon)/ ...
                    sum(2*z.^2.*d.*(1+lambda*d)./(1+lambda*d).^4);
            end
            IplusLambdaR_inv=eye(M)-U_small* ...
                inv(diag(1./(lambda*d_small))+U_small'*U_small)*U_small';
            a0=a-IplusLambdaR_inv*a;
            w=IplusLambdaR_inv*a/(lambda* ...
                ((a'*IplusLambdaR_inv)*R_hat*(IplusLambdaR_inv*a)));
            rcb_amp(:,num_a)=(w'*Y*sqrt(norm(a0)^2/M)).';
        end
    end
end

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -