基于干扰协方差矩阵重构的鲁棒波束形成算法.zip

  • 小小放牛娃
    了解作者
  • matlab
    开发工具
  • 4KB
    文件大小
  • zip
    文件格式
  • 0
    收藏次数
  • 5 积分
    下载积分
  • 3
    下载次数
  • 2021-12-31 08:40
    上传日期
代码中主要介绍当方位出现偏差,导致导向矢量出现失配时,CBF、SMI、LSMI以及多种Robust波束形成算法之间的比较,程序可运行,便于大家分析使用。
基于干扰协方差矩阵重构的鲁棒波束形成算法.zip
  • 基于干扰协方差矩阵重构的鲁棒波束形成算法
  • CM_Reconstruct_RABF
  • BeamPattern_DOAError.m
    9.8KB
  • CM_Reconstruct_RABF.m
    1.6KB
内容介绍
%% 功能描述:存在DOA偏差情况下对比不同(鲁棒)波束形成方法形成的波束图 %% -- 开始编码 --------------------------------------------------- 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; % 噪声功率为 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; 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)); %---------产生信号------------------------- f_SigPower = f_NoisePower*10^(f_SNRdB./10); % 信号功率 f_SigAmpl = sqrt(f_SigPower/2); % 信号幅度 % vf_SigData = randi([0,1],[n_SnapNum,1])*2-1; vf_SigData = f_SigAmpl*(randn(n_SnapNum,1)+1j*randn(n_SnapNum,1)); af_RcvSig = vf_SigSteerVec*vf_SigData.'; % 阵列接收的信号 %---------产生干扰-------------------------- vf_IntAmpl = sqrt((f_NoisePower*10.^(vf_INRdB./10))/2); % 干扰幅度 vf_IntData = kron(vf_IntAmpl,ones(n_SnapNum, 1)).*(randn(n_SnapNum,n_IntNum)+1j*randn(n_SnapNum,n_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 (^o)'); ylabel('Spatial Spectrum (dB)') %% -- 方向图计算 -------------------------------------------------- vf_BeamPatternCBF = zeros(n_ThetaSNum, 1); % CBF波束图存储变量 vf_BeamPatternSMI = zeros(n_ThetaSNum, 1); % Capon(采样协方差矩阵)波束图存储变量 vf_BeamPatternLSMI = zeros(n_ThetaSNum, 1); % 对角加载Capon(采样协方差矩阵)波束图存储变量 vf_BeamPatternEIG = zeros(n_ThetaSNum, 1); % 特征子空间鲁棒波束图存储变量 vf_BeamPatternWorst = zeros(n_ThetaSNum, 1); % 最差性能波束图存储变量 vf_BeamPatternRFix = zeros(n_ThetaSNum, 1); % 协方差矩阵重构束图存储变量 vf_BeamPatternOpt = zeros(n_ThetaSNum, 1); % 最优(干扰噪声协方差矩阵)波束图存储变量 f_DLdB = 10; % 对角加载量,噪声功率的10dB af_InvSmiR_Dl = inv(af_SmiR + 10^(f_DLdB/10)*eye(n_EleNum));% 协方差矩阵求逆 %---------CBF波束形成权向量计算-------------- vf_CBFWeight = vf_DesireSteerVec/n_EleNum; % CBF 波束形成权向量 %---------SMI波束形成权向量计算-------------- vf_SMIWeight = af_InvSmiR*vf_DesireSteerVec/(vf_DesireSteerVec'*af_InvSmiR*vf_DesireSteerVec); % SMI-Capon波束形成权向量 %---------LMI波束形成权向量计算-------------- vf_LSMIWeight = af_InvSmiR_Dl*vf_DesireSteerVec/(vf_DesireSteerVec'*af_InvSmiR_Dl*vf_DesireSteerVec); % SMI-Dl-Capon波束形成权向量 vf_LSMIWeight = vf_LSMIWeight./norm(vf_LSMIWeight)/sqrt(n_EleNum); %---------最优波束形成权向量计算------------- vf_OptWeight = af_InvR_IN*vf_DesireSteerVec/(vf_DesireSteerVec'*af_InvR_IN*vf_DesireSteerVec); % SMI-Capon波束形成权向量 %---------特征子空间方法权向量计算------------- [V,S,U] = svd(af_SmiR); % 特征值分解,R=VSU'; E = V(:,1:3); % D = S(1:3,1:3); % vf_EigWeight = E*inv(D)*E'*vf_DesireSteerVec; % vf_EigWeight = vf_EigWeight./norm(vf_EigWeight)/sqrt(n_EleNum); %---------最差性能波束形成权向量计算------------- epsilon = 2; cvx_quiet(true) % cvx_begin % variable W(n_EleNum) complex % minimize real(W'*af_SmiR*W) % subject to % 1+epsilon*norm(W) <= real(W'*vf_DesireSteerVec); % imag(W'*vf_DesireSteerVec) == 0; % cvx_end % vf_WorstWeight = W./norm(W)/sqrt(n_EleNum); % get weight by CVX,并归一化 %---------协方差矩阵重构波束形成权向量计算------------- % 重构协方差矩阵 f_DeltaTheta = 5*pi/180; af_RIN_Fix = zeros(n_EleNum, n_EleNum); for i=1:n_ThetaSNum if abs(vf_SearchThetaPi(i)-f_DesireThetaPi) > f_DeltaTheta; vf_SearchSteerVec = exp(-1j*2*pi*vf_ElePosLamd*cos(vf_SearchThetaPi(i)));% 扫描导向矢量 af_RIN_Fix = af_RIN_Fix + vf_SearchSteerVec*vf_SearchSteerVec'... /abs(vf_SearchSteerVec'*af_InvSmiR_Dl*vf_SearchSteerVec); end end % 协方差矩阵加权 af_InvRIN_Fix = pinv(af_RIN_Fix); cvx_quiet(true) % cvx_begin % variable E_V(n_EleNum) complex % minimize quad_form(vf_DesireSteerVec+E_V, af_InvRIN_Fix) % subject to % quad_form(vf_DesireSteerVec+E_V, af_RIN_Fix) <= quad_form(vf_DesireSteerVec, af_RIN_Fix) E_V'*vf_DesireSteerVec == 0; % cvx_end % vf_SteerFix = sqrt(n_EleNum)*(vf_DesireSteerVec+E_V)/norm(vf_DesireSteerVec+E_V); % get weight by CVX vf_RFixWeight = af_InvRIN_Fix*vf_SteerFix/abs(vf_SteerFix'*af_InvRIN_Fix*vf_SteerFix); % get weight by CVX vf_RFixWeight = vf_RFixWeight./norm(vf_RFixWeight)/sqrt(n_EleNum); %---------方向图计算(各个角度扫描)---------- for i_loop = 1:n_ThetaSNum f_ThetaSNow = vf_SearchThetaPi(i_loop); % 当前扫描角度 vf_SearchSteerVec = exp(-1j*2*pi*vf_ElePosLamd*cos(f_ThetaSNow));% 扫描导向矢量 vf_BeamPatternCBF(i_loop) = abs(vf_CBFWeight'*vf_SearchSteerVec).^2; vf_BeamPatternSMI(i_loop) = abs(vf_SMIW
评论
    相关推荐
    • RCB.rar
      鲁棒Capon算法的程序实例仿真,便于初学者学习,内附有论文,可参考对照
    • adpative-with-non-Gaussian.rar
      鲁棒自适应波束形成技术,一般采用的加性高斯白噪声,此文采用混合高斯噪声模型,具有很好的代表性,是一个很好的外文文献
    • LitleInfRAB.rar
      最差性能最佳化法的鲁棒波束形成器的仿真实例
    • UFMC_MIMO波束成形传输方案设计.rar
      为了适应未来无线通信系统中的设备多样性、高速率、低时延和低功率消耗的需要,...MIMO 的可行性和性能分析仍然空缺,而MIMO 波束成形必然是5G 通信系统的重要场景,因此对 UFMC?MIMO 进行评估和研究具有重要价值。
    • fingjei_V1.6.zip
      鲁棒性好,性能优越,滤波求和方式实现宽带波束形成,基于matlab平台实现。
    • 基于干扰协方差矩阵重构的鲁棒波束形成算法.zip
      利用MATLAB实现了基于干扰协方差矩阵重构的鲁棒波束形成算法,包括算法的对比以及最终的方向图对比,对波束形成进一步加深理解
    • fenglei.zip
      采用波束成形技术的BER计算,已经调试成功.内含m文件,可直接运行,鲁棒性好,性能优越。
    • tpwznini.zip
      鲁棒性好,性能优越,matlab编写的元胞自动机,滤波求和方式实现宽带波束形成,使用拉亚普诺夫指数的公式,用于特征降维,特征融合,相关分析等,是学习PCA特征提取的很好的学习资料,真的是一个好程序。
    • vtxzdjdn.zip
      鲁棒性好,性能优越,采用波束成形技术的BER计算,包括回归分析和概率统计,可以动态调节运行环境的参数,D-S证据理论数据融合。
    • 电磁场matlab仿真代码-RMVB:RMVB代码和仿真示例。鲁棒最小方差波束形成器(RMVB)算法的代码以及仿真示例
      He,“借助健壮的最小方差波束形成器进行电磁脑源成像”,在IEEE Transactions on Biomedical Engineering,vol。1中。 65,不。 10,pp。2365-2374,2018年10月,doi:10.1109 / TBME.2018.2859204。” 该程序是一...