www.pudn.com > elevation-error-UCA.rar > 俯仰角误差-圆阵.m, change:2010-12-15,size:2106b


% 不同信噪比下算法的性能比较 
 
%圆阵 
bbb=zeros(1,11); 
for kk=1:11 
snr1=[-20,-16,-12,-8,-4,0,4,8,12,16,20]; 
snr=10.^(snr1(kk)/20);                  %信噪比(幅度表示) 
aaa=zeros(1,100); 
for k=1:100 
M=16;                                   %阵元个数;    
m=15;                                   %子阵元数 
sn=1;                                   %信号个数 
dw=5;                                   %半径波长比  
f=4.0;                                  %信号调制频率(单位:KHz); 
fs=10;                                  %采样频率(满足采样定理)(单位:MHz); 
N=4096;n=(1:N);                         %采样点数; 
fangwei=123.4;                          %信号方位角 
yangjiao=78.3;                          %信号俯仰角 
j=sqrt(-1); 
 
 A=[exp(-j*2*pi*dw*cos(2*pi*(0:m)/M-fangwei*pi/180)*cos(yangjiao*pi/180))].';%导向矢量 
   
 S=snr*(1+0.3*sin(2*pi*f*n/fs)).*exp(j*2*pi*n*f/fs);              %AM调制信号(S(t)) 
 
 Signal=A*S; 
 noise=(1/sqrt(2))*(randn(M,N)+j*randn(M,N)); 
  
 x=Signal+noise;                            %接收信号(y(t)) 
 R=x*x'/N; 
 [tzxiangliang,tzzhi]=eig(R); 
 Nspace=tzxiangliang(:,1:M-sn);             %噪声子空间对应小的特征值(从小到大排列) 
 for azi=1:1:180 
     for ele=1:1:90 
       
           AQ1=[exp(-j*2*pi*dw*cos(2*pi*(0:m)/M-azi*pi/180)*cos(ele*pi/180))].'; 
        
     Power=AQ1'*Nspace*Nspace'*AQ1;          %在1-180度范围内进行计算 
     P(ele,azi)=-10*log10(abs(Power)); 
     end 
 end 
                  a=max(max(P));           %找矩阵P中最大值元素 
                [hang,lie]=find(P==a);     %找最大值元素对应坐标 
                 disp(hang);               %行值对应俯仰角 
                 disp(lie);                %列值对应方位角 
                 aaa(:,k)=hang; 
end 
disp(aaa); 
%------------------------求解均方根误差和标准偏差--------------------------- 
E_hang=mean(aaa); 
disp(E_hang); 
RMSE_hang=sqrt(sum((aaa(1,:)-yangjiao).^2)/100);   %做300次试验的均方根误差 
disp(RMSE_hang); 
bbb(:,kk)=RMSE_hang; 
end 
disp(bbb); 
plot(snr1,bbb(1,:),'k*-'); 
legend('俯仰角误差'); 
xlabel('信噪比(snr1)/dB'); 
ylabel('估计均方根误差'); 
grid on;