阵列信号处理——线性约束最小方差准则(LCMV)波束形成算法

线性约束最小方差准则(LCMV)在对有用信号形式和信号来向完全未知情况下,在某种约束条件下使阵列输出的方差最小。

LCMV方法的代价函数可以表示为 J(w)=w^{^{H}}Rw,约束条件是w^{H}a(\theta )=f。取f=1得到最佳解为w=R^{-1}c[c^{H}R^{-1}c]^{-1}

线性约束最小方差波束形成算法(Linearly constrained minimum variance,LCMV)为了消除阵列方向图在期望信号出现零陷,采取多个线性约束的方式来强制接收期望信号,即

其中,f=[1,1,……,1]^T为N×1的约束值向量,C=[\bar{a}(\theta _{01}),\bar{a}(\theta _{02}),......,\bar{a}(\theta _{0N})]为M×N维的约束矩阵,θ0n,n=1,2,…,N为可能的期望信号方向。\bar{a}(\theta _{0n})为对应的导向矢量。这样做的目的是在所有期望信号方向上设置无失真约束来达到扩展主瓣的目的。通过拉格朗日乘数法,可以求解得到最终的权系数为

当约束矩阵为一个矢量时,该方法退化为最小方差无失真响应(MVDR)波束形成算法,也就是说
MVDR算法是LCMV算法的一个特例。

仿真参数设置:

参数名称 参数值
阵列数 18
期望信号角度 10
干扰信号角度 -30,30
SNR 10
INR 10
快拍数 100

基于上述参数,仿真程序如下:

clc; 
close all
clear all; 

M=18;                                     % 天线数
L=100;                                    % 快拍数
thetas=10;                                % 信号入射角度 
thetai=[-30 30];                          % 干扰入射角度 
n=[0:M-1]';                               % 构造一个一维列矩阵 

vs=exp(-1i*pi*n*sin(thetas/180*pi));      % 信号方向矢量 
vi=exp(-1i*pi*n*sin(thetai/180*pi));      % 干扰方向矢量 
f=16000;                                  % 载波频率
t=[0:1:L-1]/200;                          % 构造时间变量
snr=10;                                   % 信噪比 
inr=10;                                   % 干噪比
xs=sqrt(10^(snr/10))*vs*exp(1i*2*pi*f*t); % 构造有用信号
xi=sqrt(10^(inr/10)/2)*vi*[randn(length(thetai),L)+1i*randn(length(thetai),L)];
% 构造干扰信号
noise=[randn(M,L)+1i*randn(M,L)]/sqrt(2); % 噪声
X=xi+noise;                               % 含噪信号
R=X*X'/L;                                 % 构造协方差矩阵
wop1=inv(R)*vs/(vs'*inv(R)*vs);           % 波束形成
sita=48*[-1:0.001:1];                     % 扫描方向范围
v=exp(-1i*pi*n*sin(sita/180*pi));         % 扫描方向向量 
B=abs(wop1'*v);                           % 求不同角度的增益
plot(sita,20*log10(B/max(B)),'k'); 
title('波束图');xlabel('角度/degree');ylabel('波束图/dB'); 
grid on 
axis([-48 48 -50 0]); 
hold off

运行结果如下:

阵列信号处理——线性约束最小方差准则(LCMV)波束形成算法_第1张图片
 

参考文献:阵列信号处理及MATLAB实现;张小飞,陈华伟,仇小锋(编著) 

你可能感兴趣的:(算法,机器学习,人工智能)