1、word完整版)MVDR算法 本文档程序有误
MVDR 算法
考虑图2所示均匀线阵,m 个传感器从左到右顺序编号为,阵元的间隔为d。假设入射信号为p(p〈m)个窄带信号,第i 个声源的入射角为,阵列输出可表示为:
X=AS+N (3。1)
图2 均匀线阵
其中,,
。 (3。2)
是一个N 维列矢量,对于特定的基阵,该矢量仅取决于给定的θ ,定义常规波束形成(CBF)权矢量:
2、 (3。3)
于是,常规波束形成可以表示为:
(3.4)
其中,。
MVDR 是一种主瓣约束自适应方法,即允许在所需方向的信号通过,而尽可能地排斥其他方向的信号通过。其实现手段就是调整阵列权矢量。
在CBF中,对于特定阵列,阵列权矢量(θ )是固定的,而在MVDR 看来,W(θ )不应固定为 (θ ),应根据实际接收到的数据,也就是应根据环境噪声和实际空间目标强弱和分布,自适应地给出。用数学方法表示,就是在保证所需方向的信号输出为一常数的条件下,使阵列输出功率极小化,即:
3、 (3.5)
这是一个约束条件下的最优化问题,解方程可得:
(3。6)
主瓣约束条件下得输出功率为:
(3。7)
依据式(3。7),通过对扫描,可得空间谱曲线.
MVDR 程序:
clc
clear all
close all
j=sqrt(-1);
%---—-信号--———-%
N=4096;
T=1:1:N;
f0=1000; %信号频率
f1=2000;
4、 %干扰频率
fc=10000; %采样频率,代表每秒采样多少个点
s0=sin(2*pi*f0/fc*T); %输入的有效信号(期望信号)
s1=sin(2*pi*f1/fc*T);
M=6; %阵元数
theta0=45; %信号入射角度
theta1=60; %信号入射角度
c=1500; %声速
lamta0=c/f0;
lamta1=c/f1;
d=l
5、amta0/2; %阵元间距
A0=(exp(-j*2*pi*[0:M—1]*d/lamta0*sin(theta0*pi/180))).’;
%信号方向矢量
A1=(exp(—j*2*pi*[0:M-1]*d/lamta1*sin(theta1*pi/180))).’;
%信号方向矢量
%———阵元输入-—-
x0=A0*s0+A1*s1+0。05*rand(M,N);
R0=x0*x0’/N; %数据协方差矩阵
theta=[-90:1:90];
6、 %扫描范围
for k=1:length(theta)
a=(exp(-j*[0:M—1]*2*pi*d*sin(theta(k)*pi/180)/lamta0)).’;
Pcbf1(k)=1/(a'*inv(R0)*a);
end
for k=1:length(theta)
A=(exp(—j*2*pi*[0:M—1]*d*sin(theta(k)*pi/180)/lamta1)).’;
Pcbf2(k)=1/(A'*inv(R0)*A);
end
P=Pcbf1+Pcbf2;
plot(theta,log10(abs(P).^2));
grid on