阵列信号处理之LCMV的matlab代码
线性限制最小方差滤波器(Linearly Contrained Minimum Variance,LCMV),也称之为Frost Algorithm,最初应用于天线阵列。背后的思想是从某方向提取目标信号, 同时最小化其他方向的干扰信号与噪声。
clc;
close all
clear all;
J=8;%传感器的个数
j=sqrt(-1);
r=1/2; %避免空间采样重叠设置传感器间隔与波长的比值为0.5
sita=-90:0.5:90; %设置角度范围
sita1=0; %设置信号入射角
sita2=[-30 30]; %设置干扰入射角
N=500; %设置采样点数
s=exp(j*2*pi*(16000*(0:1:N-1)/200)) ; %构造有用信号(正弦信号)
noise=(randn(J,N)+j*randn(J,N))/sqrt(2); %噪声分量
a1=sqrt(10)*exp(-j*pi*(0:J-1)'*sin(sita1/180*pi));
a2=sqrt(10)*exp(-j*pi*(0:J-1)'*sin(sita2/180*pi));
xi=(randn(2,N)+j*randn(2,N))/sqrt(2); %干扰信号
X=a1*s+a2*xi+noise; %含噪声的接收到的信号
Rx=X*X'/N;
C=a1;
%F=1;
w=inv(Rx)*C*inv(C'*inv(Rx)*C); %权重计算公式
for n=1:length(sita)
a=exp(-j*2*pi*r*sin(sita(n)*pi/180)*(0:J-1)');%导向矢量
p(n)=w'*a;%天线方向图
end
P=20*log10(abs(p)/max(abs(p)));%归一化换算成dB
plot(sita,P);
grid on;
xlabel('sita/度');
ylabel('P / dB');
title('lcmv方向图');
常规波束形成方法相当于是在空域做了傅里叶变换处理,精度不够。
LCMV的还可以。