自适应波束形成(二)——时域窄带LCMV波束形成器

1 算法原理

        如果期望信号的到达角和带宽范围已知,那么可以先对阵列接收数据进行时延补偿,使阵列对期望信号的接收保持一致性,然后对阵列系数强加约束条件以自适应的使波束形成器输出能量E{y(t)*y(t)}最小,等效于使输出信号中非期望方向的噪声能量最小,从而达到增强期望方向信号的目的。这就是线性约束最小方差(LCMV)波束形成器。

        波束形成器的响应是频率ω和到达角θ的函数,为了保证一个频率为ω0、到达角为θ0的信号有指定的响应G0(复常量),则约束条件可写成

                        wH d(θ0,ω0) = G0

        波束形成器的输出能量为

                        E{|y[n]|2} =wHRxxw

其中Rxx为观察数据的自相关矩阵,可表示为

                        Rxx = E{xxH}

从而LCMV波束形成问题归结于

                        

        经过时延补偿,期望信号同一成分将同时到达传感器并通过快拍延迟线,因此,其结构等效于一个FIR滤波器,图1所示,其中

                        

式中j = 0,1,…,J-1。

                         自适应波束形成(二)——时域窄带LCMV波束形成器_第1张图片

                                                             图1  宽带波束形成器等效结构

        扩展到多个到达角和多个频率的一般情况,可得一般约束条件

                         CHw =

式中

                         f = [f[0] f[1] …f[J-1]]T

                         C = [(c000)T (0 c00)T … (0 0 c0)T] ∈CMJ*J

                         c0 = [1 1 … 1]TCM*1

C称为约束矩阵,f称为响应向量。

2 最优权向量

        运用拉格朗日乘法,引入拉格朗日算子λ,在目标函数E{|y[n]|2}=wHRxxw后加上约束函数的实部CHw- f,即

                        wHRxxw +λH(CHw- f) +λT(CTw*-f*)

        拉格朗日乘子使得上式第二项和第三项的梯度是线性独立的,即C的每列是满秩的。对上式关于w*微分得

                        Rxxw+Cλ

令其等于0,即可解得最优权向量

                         w opt = -R xx -1 Cλ 

将其代入CHw = f,得

                        -CHRxx-1= f

解出λ并代回wopt = -Rxx-1Cλ ,即可得LCMV波束形成器最优权向量

                        wopt = -Rxx-1C(CHRxx-1C)-1 f

3 算法仿真

        Matlab仿真代码如下:

       

%%%LCMV在多个来波方向约束下波束形成%%%
clc;clear all;close all;ima=sqrt(-1);esp=0.01;
%%天线参数设定%%
N=16;                               %阵元数
d_lamda=0.5;                  %阵元间距与波长的比值
theta=-90:0.5:90;            %搜索范围确定
theta1=-10;                      %来波方向1
theta2=0;                          %来波方向2
theta3=40;                        %来波方向3
theta_jam=70;                  %干扰方向
L=512;                              %采样点数
%%%%%%%%%%%%%%%%%%%%%%%%%

%%信号形成%%
for k=1:L;
    a1=10*randn(1);
    a2=10*randn(1);
    a3=10*randn(1);
    ajam=10*randn(1);
    an=1;
    s(:,k)=a1*exp(ima*2*pi*d_lamda*sin(theta1*pi/180)*[0:N-1]')+...
            +a2*exp(ima*2*pi*d_lamda*sin(theta2*pi/180)*[0:N-1]')+...
            +a3*exp(ima*2*pi*d_lamda*sin(theta3*pi/180)*[0:N-1]');
    jam(:,k)=ajam*exp(ima*2*pi*d_lamda*sin(theta_jam*pi/180)*[0:N-1]');
    n(:,k)=an*(randn(N,1)+ima*randn(N,1));
end
%%%%%%%%%%%%%%%%%%%%%%%%%

%最优权矢量产生%
x=s+jam;
Rx=1/L*x*x';                          %求信号相关矩阵
R=pinv(Rx);                           %相关矩阵求逆
a1theta=exp(ima*2*pi*d_lamda*sin(theta1*pi/180)*[0:N-1]');
a2theta=exp(ima*2*pi*d_lamda*sin(theta2*pi/180)*[0:N-1]');
a3theta=exp(ima*2*pi*d_lamda*sin(theta3*pi/180)*[0:N-1]');
C=[a1theta a2theta a3theta];%方向矩阵
F=[1 1 1]';
Wopt=R*C*(inv(C'*R*C))*F;
%%%%%%%%%%%%%%%%%%%%%%%%%

%%最优波束形成%%
for m=1:length(theta);
    a=exp(ima*2*pi*d_lamda*sin(theta(m)*pi/180)*[0:N-1]');
    y(m)=Wopt'*a;
 
end
%%%%%%%%%%%%%%%%%%%%%%%%%
Y=20*log10(abs(y)/max(abs(y))+esp);

%%作图%%
plot(theta,Y);hold on;grid on;
axis([-90 90 -50 0]);
plot(theta1,-30:0,'.');
plot(theta2,-30:0,'.');
plot(theta3,-30:0,'.');
plot(theta_jam,-30:0,'.');
xlabel('\theta/o');
ylabel('Amplitude in dB');
title('LCMV准则下多个方向波束形成');
        麦克风阵列阵元数为10,阵元间距为半波长,入射信号为窄带信号,分别来自-10 o、0 o和40 o,运用LCMV算法,首先对-10 o方向信号进行增强,画出波束图,如图2所示

                        自适应波束形成(二)——时域窄带LCMV波束形成器_第2张图片

                                   图2  运用LCMV算法增强-10o信号

        然后改变响应向量f,分别对0o和40o方向信号进行增强,仿真结果如图3所示。

                        自适应波束形成(二)——时域窄带LCMV波束形成器_第3张图片

                                  图3  分别运用LCMV算法增强0o和40o方向信号

        由图2和图3可知,期望信号位于波束图的主瓣位置,干扰信号则处于陷波位置,说明LCMV算法增强了期望信号,同时抑制了非期望方向上的干扰。

你可能感兴趣的:(语音增强)