Conventional beamforming principle of uniform linear array-microphone array series (4)

Read the original text, please move to my knowledge column:
https://www.zhihu.com/column/c_1287066237843951616


Following the last article, this article will continue to learn, including the content:

An overview of the principle of conventional beamforming in uniform linear array

Example 3.4 Conventional beam pattern of uniform line array


Use the coordinate system shown in the figure below:

Figure 1 Uniform linear array coordinate system

For this coordinate system, assuming  Ma linear array composed of a uniformly distributed array element, and assuming the distance between the array elements is  d , the total length of the linear array is  L=Md . When calculating the length of the linear array here, the array elements at both ends are extended outward  \frac{d}{2} , and the uniform linear array is equivalent to spatial sampling of the original continuous array.

The position of each array element can be expressed as:

p_m=\left[ 0,\left( m-\frac{M+1}{2}d \right),0 \right],m=1,...,M

Use the weighting coefficient of each array element to express the weighting function when it is regarded as a continuous linear array, namely:

w^*_a(y)=\sum_{m=1}^{M}{w^*_m\delta \left( y-\left( m-\frac{M+1}{2} \right) d \right)}

Among them,  w^*_m is the weighting coefficient of the first element;  \delta\left( \cdot \right) is a  Kroneckerfunction.

KroneckerThe function is:

\delta_{ij}=\left\{ \begin{aligned} &1,\quad i=j \\ & 0, \quad i\ne j \end{aligned} \right.

As described in the previous chapter, suppose with the frequency-wavenumber response of a continuous linear array placed on the  axis is:

Y\left( \omega, k_z\right)=\int_{-\frac{L}{2}}^{\frac{L}{2}}w^*_a(z)e^{-ik_zz}dz

The above formula is replaced  Y line a uniformly distributed array of shafts, namely:

\begin{align}\\ Y\left( \omega, k_y\right)&=\int_{-\infty}^{\infty}\sum_{m=1}^{M}{w^*_m\delta \left(y-\left( m-\frac{M+1}{2} \right) d \right)}e^{-ik_yy}dy\\ \quad &= \sum_{m=1}^{M}{w^*_me^{-i\left(m-\frac{M+1}{2} \right)k_yd}}\\ \quad &= \sum_{m=1}^{M}{w^*_me^{i\left(m-\frac{M+1}{2} \right)kdsin\theta}}\\ \end{align}

Change the beam response form to:

B\left( \theta \right)=\sum_{m=1}^{M}{w^*_me^{i\left(m-\frac{M+1}{2} \right)kdsin\theta}}

Still based on this uniform linear array coordinate system, the popular necklaces of the array are:

\bold p(\theta)=\left[ e^{i\frac{1-M}{2}kdsin\theta},..., e^{i\left( m- \frac{M+1}{2}\right)kdsin\theta},...,e^{i\frac{M-1}{2}kdsin\theta}\right]^T

The beam response can be expressed as:

B\left( \theta \right)=\bold w^H\bold p\left( \theta \right)

Perform conventional beamforming on the uniform linear array, assuming that the beam pointing angle is  \ theta _o and the beam weighting vector is:

\bold w_c=\frac{\bold p\left( \theta_o \right)}{M}

Substituting the above formula, the beam direction response can be calculated as:

\begin{align} B\left(\theta \right)&=\frac{\bold w^H_c\bold p\left( \theta_o \right)}{M}\\ &=\frac{\bold p^H\left( \theta_o \right)\bold p\left( \theta \right)}{M}\\ &=\frac{sin\left( Mkd\left( sin\theta-sin\theta_o \right)/2 \right)}{Msin\left( kd\left( sin\theta-sin\theta_o \right)/2 \right)} \end{align}

Example 3.4 Conventional beam pattern of uniform line array

Assuming that the beam observation direction is  \theta_o=0^\circ , calculate the beam response obtained by conventional beamforming. Assume that the number of array elements is M=10 , that is  , the array element interval  d=\frac{L}{M}=\frac{\lambda}{2} . Calculate the beam response using the beamforming formula calculated above.

Figure 2 Conventional beam diagram of uniform line array

Figure 2 Conventional beam diagram of uniform line array

The attached implementation code is as follows:

c=340;       %声速
theta_d = 0*pi/180; %入射角度
f=1000;      %频率
space=c/f/2;  %麦克风间距
M=10;         %麦克风数量
theta_angle=0:0.1:360;
theta=theta_angle*pi/180;    
B=sin((M*pi*f*space*(sin(theta)-sin(theta_d)))/c)...
    ./(M*sin((pi*f*space*(sin(theta)-sin(theta_d)))/c));
B_db = 20*log10(B);
limit_dB = -50;
index = B_db < limit_dB;
B_db(index) = limit_dB; 
plot(theta_angle, B_db, 'linewidth', 1.5);
grid on;
title('均匀线阵列常规波束响应');
xlabel('\theta/(\circ)');ylabel('20lg|B(\theta)|/dB');
figure;
GraphicHandle = polar(theta, B_db);
set( GraphicHandle, 'LineWidth', 1.5);

Reference books:

"Optimizing Array Signal Processing"

Guess you like

Origin blog.csdn.net/weixin_40571814/article/details/109250400