資源簡介
此文件為多級維納濾波技術程序,該程序能夠實現(xiàn)在理想和非理想情況下,對陣列信號的DOA估計,程序比較清晰,希望能幫助到大家。

代碼片段和文件信息
%數(shù)據(jù)中含有或不含有期望信號對方向圖有影響,當MSNWF也采用理想數(shù)據(jù)時,性能相同且采樣數(shù)可以大大減小;
clc;
clear?all;
close?all;
N=16;%輔助天線的數(shù)目
d=0.5;
theta=-90:0.5:90;
theta_signal=0;????????????%來波方向
theta_jamming1=-35;????????%干擾方向
theta_jamming2=19;?????????%干擾方向
theta_jamming3=45;?????????%干擾方向
L=1024;%采樣單元數(shù)
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]‘);
%訓練數(shù)據(jù)中不含期望信號時和含有期望信號時
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‘;?%接收信號協(xié)方差矩陣
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的階數(shù)
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
評論
共有 條評論