资源简介
此文件为多级维纳滤波技术程序,该程序能够实现在理想和非理想情况下,对阵列信号的DOA估计,程序比较清晰,希望能帮助到大家。
代码片段和文件信息
%数据中含有或不含有期望信号对方向图有影响,当MSNWF也采用理想数据时,性能相同且采样数可以大大减小;
clc;
clear all;
close all;
N=16;%辅助天线的数目
d=0.5;
theta=-90:0.5:90;
theta_signal=0; %来波方向
theta_jamming1=-35; %干扰方向
theta_jamming2=19; %干扰方向
theta_jamming3=45; %干扰方向
L=1024;%采样单元数
steer_signal=exp(1i*2*pi*d*sin(theta_signal*pi/180)*[0:N-1]‘); %期望信号导向矢量
%干扰信号导向矢量
steer_jamming1=exp(1i*2*pi*d*sin(theta_jamming1*pi/180)*[0:N-1]‘);
steer_jamming2=exp(1i*2*pi*d*sin(theta_jamming2*pi/180)*[0:N-1]‘);
steer_jamming3=exp(1i*2*pi*d*sin(theta_jamming3*pi/180)*[0:N-1]‘);
%训练数据中不含期望信号时和含有期望信号时
for i=1:L;
amp_signal=sqrt(2*10)*randn(1);%信号的幅度随机产生,保证信号之间是不相关的
amp_jamming1=sqrt(2*10^4)*randn(1); %4
amp_jamming2=sqrt(2*10^3.5)*randn(1); %3.5
amp_jamming3=sqrt(2*10^5)*randn(1); %5
amp_noise=sqrt(2);
jam(:i)=amp_jamming1*exp(1i*2*pi*d*sin(theta_jamming1*pi/180)*[0:N-1]‘)...
+amp_jamming2*exp(1i*2*pi*d*sin(theta_jamming2*pi/180)*[0:N-1]‘)...
+amp_jamming3*exp(1i*2*pi*d*sin(theta_jamming3*pi/180)*[0:N-1]‘)...
+amp_noise*(randn(N1)+1i*randn(N1));%干扰+噪声
s(:i)=amp_signal*exp(1i*2*pi*d*sin(theta_signal*pi/180)*[0:N-1]‘)...
+amp_jamming1*exp(1i*2*pi*d*sin(theta_jamming1*pi/180)*[0:N-1]‘)...
+amp_jamming2*exp(1i*2*pi*d*sin(theta_jamming2*pi/180)*[0:N-1]‘)...
+amp_jamming3*exp(1i*2*pi*d*sin(theta_jamming3*pi/180)*[0:N-1]‘)...
+amp_noise*(randn(N1)+1i*randn(N1));%接收信号(信号+干扰+噪声)
end
Rs=10*steer_signal*steer_signal‘;%噪声自相关矩阵,相当于X(t)
Rj=10^4*steer_jamming1*steer_jamming1‘...
+10^3.5*steer_jamming2*steer_jamming2‘...
+10^5*steer_jamming3*steer_jamming3‘;
Rn=eye(N);
Rx=Rs+Rj+Rn;
% Sx=1/L*s*s‘; %接收信号协方差矩阵
Sx=1/L*jam*jam‘;
us=d*sin(theta_signal*pi/180); %期望信号方向空间频率;
d0=steer_signal‘*s; %进行上支路匹配滤波,d0中含有期望信号和干扰
for j=1:N-1
uk(j)=us+j/N;
end
for l=1:N-1
a(:l)=exp(1i*2*pi*uk(l)*[0:N-1]‘);
end
B0=a‘;%构造阻塞矩阵
x0=B0*s;
Rx0=B0*Rx*B0‘;
rx0d0=B0*Rx*steer_signal;
Wx0=pinv(Rx0)*rx0d0;
W_GSC=steer_signal-B0‘*Wx0;
beam3=W_GSC‘*exp(1i*2*pi*d*[0:N-1]‘*sin(theta*pi/180));%波束形成
F3=20*log10(abs(beam3)/(max(max(abs(beam3)))));
h0=steer_signal/(steer_signal‘*steer_signal)^0.5;
B_0=zeros(N-1N);
for i=1:N-1
for k=i:i+1
B_0(ik)=(-1)^(i+k)/h0(k1);
end
end
x=B_0*s;
R_x0=B_0*Sx*B_0‘;
r_x0d0=B_0*Sx*h0;
%理想情况
% R_x0=B_0*Rx*B_0‘;
% r_x0d0=B_0*Rx*h0;
% %前向递推
r=N-1; % r MWF的阶数
T=[];
h=[];
B=eye(N-1);
rxd=r_x0d0;
Rxi=R_x0;
for i=1:r
if i delta(i)=(rxd‘*rxd)^0.5;
hi=rxd/delta(i);
if i==1
T=[T;hi‘];
else
T=[T;hi‘*B];
end
Bi=zeros(N-i-1N-i);
for kk=1:N-i-1
for k=kk:kk+1
Bi(kkk)=(-1)^(kk+k)/hi(k);
end
end
B=Bi*B;
omiga(i)=hi‘*Rxi*hi;
sigma(i)=hi‘*rxd;
rxd=Bi*Rxi*hi;
Rxi=Bi*Rxi*Bi‘;
else
delta(i)=(rxd‘*rxd)^
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 3887 2013-03-22 11:00 MSNWF.m
----------- --------- ---------- ----- ----
3887 1
- 上一篇:4_11_基于压缩感知理论的DOA估计.zip
- 下一篇:编译原理识别活缀的DFA
评论
共有 条评论