📄 mvdrlizi_2.m
字号:
function [Pmv,theta]=MVDR(x,f0,d,Nbeam,DL)
% minimum variance distortionless response
% x: the signal received by the array
% d: distance of interelement.
% Nbeam: 波束数 DL: diagonal loading
% revised 2003.5.26 copyright by b.jiang
c=1500;
[M,N]=size(x); %xrow:number of array elements
R=zeros(M,M);
R=x*x'/N;%简易求法,存整个矩阵
%
R=R+eye(M)*DL;%diagonal loading
R=inv(R);%inverse matrix
pos=d*(0:M-1)';
wavenum=2*pi*f0/c;
theta=linspace(-90,90,Nbeam);
Pmv=zeros(1,Nbeam);
for k=1:Nbeam
steerVec=exp(j*wavenum*pos*sin(theta(k)*pi/180));
Pmv(k)=1/abs(steerVec'*R *steerVec);
end
Pmv=Pmv/max(Pmv);
plot(theta,10*log10(Pmv));
axis([-90 90 -60 0]);
xlabel('方位 (度)');
ylabel('功率 (dB)');
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -