MVDR算法matlab程序

相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

clc

clear all

close all

%% 常量定义

Freqs=1.6e9; %工作频率

c=3e8; %光速

lamda=c/Freqs; %波长

d=0.5*lamda; %单元间距

M=16; %天线阵元数

fs=2e6; %采样频率

pd=10; %快拍数

%% 模型建立

%--------------第一个干扰模型--------------------

thetaJ1=20*pi/180; %干扰方向

FreqJ1=5e5; %第一个干扰的频率

J1NR=sqrt(10^(60/10));

J1one=J1NR*exp(j*(2*pi*FreqJ1*(1:1:pd)/fs)); %1*pd %--------------第二个干扰模型--------------------

ThetaJ2=60*pi/180; %干扰方向

FreqJ2=6e5; %第二个干扰的频率

J2NR=sqrt(10^(60/10));

J2one=J2NR*exp(j*(2*pi*FreqJ2*(1:1:pd)/fs)); %1*pd %--------------信号模型--------------------

ThetaS=30*pi/180;

FreqS=7e5;

SNR=sqrt(10^(40/10));

Sone=SNR*exp(j*(2*pi*FreqS*(1:1:pd)/fs)); %1*pd

%--------------空域处理-------------------------

I1=zeros(M,1);

I2=zeros(M,1);

IS=zeros(M,1);

for n=1:M

I1(n)=exp(j*2*pi*(n-1)*d*sin(thetaJ1)/lamda); I2(n)=exp(j*2*pi*(n-1)*d*sin(ThetaJ2)/lamda); IS(n)=exp(j*2*pi*(n-1)*d*sin(ThetaS)/lamda);

end

J1=I1*J1one;

J1=J1.';

J2=I2*J2one;

J2=J2.';

%------------产生噪声-------------------------

noise=sqrt(1/2)*randn(pd,M)+j*sqrt(1/2)*randn(pd,M);

%------------产生接收信号-------------------------

XX=J1+noise+J2;

%% MVDR算法

Rxx=zeros(M,M);

Rxx=(XX.'*(XX.')')/pd;%M*M维

detaS=IS;

Wmvdr=inv(Rxx)*detaS*inv(detaS'*inv(Rxx)*detaS); %MVDR 算法

%% 直线阵布阵

p=-pi/2:pi/180:pi/2;

for jj=1:1:length(p) %空间角度扫描

w_scan=zeros(M,1);

scan=p(jj);

for n=1:1:M

w_scan(n)=exp(j*2*pi*(n-1)*d*sin(scan)/lamda);

end%空间导向矢量

1*M

Fmvdr(jj)=abs(Wmvdr'*w_scan);

end

%% 画出方向图

Fmax=max(max(Fmvdr));

Fa=Fmvdr./Fmax;

Fa=20*log10(Fa);

figure(1);

plot(180*p/pi,Fa,'b-')

(注:文档可能无法思考全面,请浏览后下载,供参考。可复制、编制,期待你的好评与关注)

相关文档
最新文档