资源简介

利用MATLAB实现了基于干扰协方差矩阵重构的鲁棒波束形成算法,包括算法的对比以及最终的方向图对比,对波束形成进一步加深理解

资源截图

代码片段和文件信息

clc; 
clear; 
close all; 
 
f_SigThetaPi = 80*pi/180;    %信号角度                            
f_SNRdB = 0;                  %信噪比                           
vf_IntThetaPi = [60 105]*pi/180;                         
vf_INRdB = [30 40];     %干扰角度                               
n_IntNum = length(vf_IntThetaPi);    %干噪比                     
f_NoisePower = 1;                 %噪声功率                        

n_EleNum = 16;              %阵元数                            
n_SnapNum = 50;             %快拍数                           
f_DToLamda = 0.5;           %阵元间距                             
vf_ElePosLamd = [0:n_EleNum-1]‘*f_DToLamda;                     
vf_SigSteerVec = exp(-1j*2*pi*vf_ElePosLamd*cos(f_SigThetaPi)); %信号导向矢量
af_IntSteerVec = exp(-1j*2*pi*vf_ElePosLamd*cos(vf_IntThetaPi));%干扰导向矢量
f_DOAError = 2/180*pi; %DOA误差角度
f_DesireThetaPi = f_SigThetaPi-f_DOAError;    %期望角度                      
vf_DesireSteerVec = exp(-1j*2*pi*vf_ElePosLamd*cos(f_DesireThetaPi)); %期望导向矢量

f_NoiseAmpl = sqrt(f_NoisePower/2);                         % 噪声幅度                   
af_RcvNoise = f_NoiseAmpl*(randn(n_EleNum n_SnapNum)+1j*randn(n_EleNum n_SnapNum)); 
af_R_IN_Real=1;
f_SigPower = f_NoisePower*10^(f_SNRdB./10);                 % 噪声
f_SigAmpl = sqrt(f_SigPower/2);        % 噪声幅度
% vf_SigData = randi([01][n_SnapNum1])*2-1;  
vf_SigData = f_SigAmpl*(randn(n_SnapNum1)+1j*randn(n_SnapNum1)); 
af_RcvSig = vf_SigSteerVec*vf_SigData.‘;                    %阵列接收信号      
vf_IntAmpl = sqrt((f_NoisePower*10.^(vf_INRdB./10))/2);     %干扰
vf_IntData = kron(vf_IntAmplones(n_SnapNum 1)).*(randn(n_SnapNumn_IntNum)+1j*randn(n_SnapNumn_IntNum)); 
af_RcvInt = af_IntSteerVec*vf_IntData.‘;                    %阵列接收到的干扰       

af_RcvDataAll = af_RcvNoise+af_RcvSig+af_RcvInt;            % 阵列接受到的信号、干扰和噪声

af_SmiR = af_RcvDataAll*af_RcvDataAll‘/n_SnapNum;          
af_InvSmiR = inv(af_SmiR);                                 
 
af_Rcv_i_n = af_RcvNoise+af_RcvInt; 
af_R_IN = af_Rcv_i_n*af_Rcv_i_n‘/n_SnapNum;                
af_InvR_IN = inv(af_R_IN);                               
 

vf_SearchThetaPi = [40:0.5:140].‘/180*pi;              
n_ThetaSNum = length(vf_SearchThetaPi);                  
vf_SpaceSpec = zeros(n_ThetaSNum 1);                    
for i_loop = 1:n_ThetaSNum 
    vf_SearchSteerVec = exp(-1j*2*pi*vf_ElePosLamd*cos(vf_SearchThetaPi(i_loop))); 
    vf_SpaceSpec(i_loop) = 1./abs(vf_SearchSteerVec‘*af_InvSmiR*vf_SearchSteerVec); 
end 
 
figure();plot(vf_SearchThetaPi/pi*180 10*log10(vf_SpaceSpec)); grid on; 
xlabel(‘Angle/\circ‘); ylabel(‘Spatial Spectrum (dB)‘) 
 

vf_BeamPatternCBF = zeros(n_ThetaSNum 1);                  % CBF初始化
vf_BeamPatternSMI = zeros(n_ThetaSNum 1);                  % SMI初始化
vf_BeamPatternLSMI = zeros(n_ThetaSNum 1);                 % LSMI初始化
vf_BeamPatternEIG = zeros(n_ThetaSNum 1);                  % EIG初始化
vf_BeamPatternWorst = zeros(n_ThetaSNum 1);                %Worst初始化
vf_B

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     文件        8492  2020-06-17 10:04  基于干扰协方差矩阵重构的鲁棒波束形成算法\BeamPattern_DOAError.m
     文件        1493  2020-06-17 09:55  基于干扰协方差矩阵重构的鲁棒波束形成算法\CM_Reconstruct_RABF.m
     目录           0  2020-06-17 10:05  基于干扰协方差矩阵重构的鲁棒波束形成算法\

评论

共有 条评论