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

📄 mvdr2.m

📁 智能天线自适应波束形成算法的研究,进行了基本算法的改进与运算,大家可以进行参考,以便更好的学习.
💻 M
字号:
clear,clc
m=8;  
n=2;  
theta=[-20 0]; 
d=1/2;        
N=100; 
L=100; 
meann=0; 
varn=1;  
SNR=10; 
INR=30;
rvar1=sqrt(varn) * 10^(SNR/20); 
rvar2=sqrt(varn) * 10^(INR/20); 

% generate the source signals
s=[rvar1*exp(j*2*pi*(50*0.001*[0:N-1]+rand))
   rvar2*exp(j*2*pi*(100*0.001*[0:N-1]+rand))];
% generate the A matrix
A=exp(-j*2*pi*d*[0:m-1].'*sin(theta*pi/180));
% generate the noise component
e=sqrt(varn/2)*(randn(m,N)+j*randn(m,N));
% generate the ULA data
Y=A*s+e;
% compute R
R=Y*Y'/N;
% inverse of R
IR=inv(R);
% beamform using the MVDR method
a1=A(:,1);
w=IR*a1/real(a1'*IR*a1);
beam=zeros(1,L);
for i = 1 : L
   a=exp(-j*2*pi*d*[0:m-1].'*sin(-pi/2 + pi*(i-1)/L));
   beam(i)=20*log10(abs(w'*a));
end
angle=-90:180/L:(90-180/L);
plot(angle,beam,'b');
hold on;

%*****************************************************************
m=8;  
n=2;  
theta=[-20 0]; 
d=1/2;         
N=150; 
L=100; 
meann=0; 
varn=1;  
SNR=10;
INR=30; 
rvar1=sqrt(varn) * 10^(SNR/20); 
rvar2=sqrt(varn) * 10^(INR/20); 

s=[rvar1*exp(j*2*pi*(50*0.001*[0:N-1]+rand))
   rvar2*exp(j*2*pi*(100*0.001*[0:N-1]+rand))];
A=exp(-j*2*pi*d*[0:m-1].'*sin(theta*pi/180));
e=sqrt(varn/2)*(randn(m,N)+j*randn(m,N));
Y=A*s+e;
R=Y*Y'/N;
IR=inv(R);
% beamform using the MVDR method
a1=A(:,1);
w=IR*a1/real(a1'*IR*a1);
beam=zeros(1,L);
for i = 1 : L
   a=exp(-j*2*pi*d*[0:m-1].'*sin(-pi/2 + pi*(i-1)/L));
   beam(i)=20*log10(abs(w'*a));
end
angle=-90:180/L:(90-180/L);
plot(angle,beam,'r');

%****************************************************************
m=8;  
n=2;  
theta=[-20 0]; 
d=1/2;         
N=200; 
L=100; 
meann=0; 
varn=1;  
SNR=10; 
INR=30;
rvar1=sqrt(varn) * 10^(SNR/20);
rvar2=sqrt(varn) * 10^(INR/20); 

s=[rvar1*exp(j*2*pi*(50*0.001*[0:N-1]+rand))
   rvar2*exp(j*2*pi*(100*0.001*[0:N-1]+rand))];
A=exp(-j*2*pi*d*[0:m-1].'*sin(theta*pi/180));
e=sqrt(varn/2)*(randn(m,N)+j*randn(m,N));
Y=A*s+e;
R=Y*Y'/N;
IR=inv(R);
% beamform using the MVDR method
a1=A(:,1);
w=IR*a1/real(a1'*IR*a1);
beam=zeros(1,L);
for i = 1 : L
   a=exp(-j*2*pi*d*[0:m-1].'*sin(-pi/2 + pi*(i-1)/L));
   beam(i)=20*log10(abs(w'*a));
end
angle=-90:180/L:(90-180/L);
plot(angle,beam,'g');

xlabel('angle');
ylabel('幅度响应/dB');
gtext({'\bf\leftarrow迭代次数N=100';'\bf\leftarrowN=150';'\bf\leftarrowN=200'})

⌨️ 快捷键说明

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