---
title: "Josh's Note — 最优阵列处理
Part 1.3 均匀加权线阵"
mathjax: true
comments: true
copyright: true
toc:
enable: true
number: true
wrap: true
expand_all: true
max_depth: 4
tags:
- 阵列信号处理
- 均匀加权线阵
- 3dB 带宽
- 第一零点波束宽度
- 旁瓣
- 栅瓣
- 瑞利限
categories:
- - Josh 的学习笔记
- 最优阵列处理
- 阵列和空域滤波器
abbrlink: aa32ec76
date: 2023-04-20 19:34:47
---
# 均匀加权线阵的频率-波数响应函数
现在把注意力集中到均匀加权线阵(Uniformly Weighted Linear Array)的情况,即
$$\begin{equation}
w_n = \frac{1}{N}, \, n = 0,1,\cdots,N-1
\end{equation}$$
$$\begin{equation}
\boldsymbol{w} = \frac{1}{N} \boldsymbol{1}
\end{equation}$$
其中 $\boldsymbol{1}$ 是 $N \times 1$ 维的单位矢量,则在 $\psi$ 空间的频率-波数响应函数可以写成(利用等比级数的求和公式)
$$\begin{equation}
\begin{aligned}
\boldsymbol{\varUpsilon}_\psi(\psi) &= \frac{1}{N} \sum_{n=0}^{N-1} e^{j \left(n - \frac{N-1}{2}\right)\psi} \\
&= \frac{1}{N} e^{-j \left(\frac{N-1}{2}\right)\psi} \sum_{n=0}^{N-1} e^{j n \psi} \\
&= \frac{1}{N} e^{-j \left(\frac{N-1}{2}\right)\psi} \left[ \frac{1-e^{jN\psi}}{1-e^{j\psi}} \right]
\end{aligned}
\end{equation}$$
或(利用欧拉公式)
$$\begin{equation}
\boldsymbol{\varUpsilon}_\psi(\psi) = \frac{1}{N} \frac{\sin\left( N \frac{\psi}{2} \right)}{\sin\frac{\psi}{2}}
\end{equation}$$
可以观察到:
- 当 $N$ 是奇数时,$\boldsymbol{\varUpsilon}_\psi(\psi)$ 是周期函数,周期为 $2\pi$;
- 当 $N$ 为偶数时,波瓣在 $\pm 2 \pi$、$\pm 6 \pi$ 处的值为负值,周期为 $4 \pi$;
- 对任意的 $N$,$\left|\boldsymbol{\varUpsilon}_\psi(\psi)\right|$ 的周期为 $2 \pi$。
当 $N = 11$ 时, $\boldsymbol{\varUpsilon}_\psi(\psi)$ 和 $\psi$ 的关系在[图 1-3-1](#fig.1-3-1) 中给出。[图 1-3-2](#fig.1-3-2) 给出了 $\left|\boldsymbol{\varUpsilon}_\psi(\psi)\right|$,单位为 dB,其中
$$\begin{equation}
\boldsymbol{\varUpsilon}_\mathrm{dB}(\psi) = 10 \log_{10} \left|\boldsymbol{\varUpsilon}(\psi)\right|^2
\end{equation}$$
{width=1000px}
{width=1000px}
{% note primary MATLAB Code %}
``` matlab fig2_1516.m
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Figure 2.15 & 2.16
% Beampattern of uniformly weighted linear array
% Xiaomin Lu
% Updated 1/5/99
% Last updated by K. Bell 7/22/01, 10/4/01
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
clear all
close all
N = 11; % 11 elements
% Note, Eq. (2.92) is in fact the standard Dirichlet function
% beam = diric(psi, N);
% if you don't have the signal processing toolbox, this does the same thing
psi = (-5:1/400:5)*pi;
beam = zeros(1,length(psi(:)));
y=sin(.5*psi);
i=find(abs(y)>1e-12); % set where x is not divisible by 2 pi
j=1:length(psi(:));
j(i)=[]; % complement set
beam(i)=sin((N/2)*psi(i))./(N*y(i));
beam(j)=sign(cos(psi(j)*((N+1)/2)));
plot(psi/pi, beam)
grid
xlabel('$\psi/\pi$','Interpreter','latex')
ylabel('Frequency wavenumber response function')
axis([-5 5 -0.4 1])
set(gcf,'Position',[0 0 1000 600])
figure
beam = 20*log10(abs(beam));
plot(psi/pi,beam);
xlabel('$\psi/\pi$','Interpreter','latex')
ylabel('Frequency wavenumber response function (dB)')
axis([-5 5 -25 0])
grid
set(gcf,'Position',[0 0 1000 600])
```
{% endnote %}
若不指定 $\boldsymbol{w}$ 的类型,则 $\boldsymbol{\varUpsilon}_\psi(\psi)$ 是复数,所以相位也应该画出来。但是,均匀加权线阵具有对称性,因此得到的频率-波数响应是实函数。
也可以用 $k_z$ 来表示频率-波数响应
$$\begin{equation}
\boldsymbol{\varUpsilon}(\omega:k_z) = \frac{1}{N} \frac{\sin\left( N k_z \frac{d}{2} \right)}{\sin \left(k_z\frac{d}{2}\right)}
\end{equation}$$
这里 $\boldsymbol{\varUpsilon}(\omega:k_z)$ 是周期函数,周期为 $2\pi/d$。
{% note warning %}
注意,响应函数仅依赖于波数分量 $k_z$,是 $k_z$ 的周期函数,间隔为 $2\pi/d$,这是线性阵列的一维特性导致的,所以该阵列仅能分析在 $k_z$ 方向上投影的波数分量。
{% endnote %}
# 均匀加权线阵的波束方向图
均匀加权线阵的波束方向图为
$$\begin{equation}
B_\theta(\theta) = \frac{1}{N} \frac{\sin\left(\frac{N}{2} \cdot \frac{2\pi}{\lambda} \cos \theta \cdot d \right)}{\sin \left( \frac{1}{2} \cdot \frac{2\pi}{\lambda} \cos\theta \cdot d\right)}, \quad 0 \leqslant \theta \leqslant \pi \\
\end{equation}$$
$$\begin{equation}
B_u(u) = \frac{1}{N} \frac{\sin\left(\frac{ \pi Nd}{\lambda} u \right)}{\sin \left( \frac{N d}{\lambda} u\right)}, \quad -1 \leqslant u \leqslant 1 \label{BeamPatternOfUWLAInDirectionCosineDomain}
\end{equation}$$
$$\begin{equation}
B_\psi(\psi) = \frac{1}{N} \frac{\sin\left(N\frac{\psi}{2}\right)}{\sin \left( \frac{\psi}{2} \right)}, \quad -\frac{2\pi d}{\lambda} \leqslant \psi \leqslant \frac{2\pi d}{\lambda} \label{BeamPatternOfUWLAInWaveNumberDomain}
\end{equation}$$
其中定义域分别为 $0 \leqslant \theta \leqslant \pi$、$-1 \leqslant u \leqslant 1$ 和 $-\displaystyle\frac{2\pi d}{\lambda} \leqslant \psi \leqslant \frac{2\pi d}{\lambda}$,称为**{% label primary @可视区域(visible region) %}**。
{% note info %}
函数 $B_u(u)$ 和 $B_\psi(\psi)$ 有时称为**{% label primary @阵列因子(Array Factor) %}**。这个量对非全向性阵元非常重要。
{% endnote %}
[图 1-3-3](#fig.1-3-3) 给出了 $B_\theta(\theta)$ 的极坐标形式,单位为 dB。如果在三维空间画出波束方向图,在[图 1-3-3](#fig.1-3-3) 中的图将对应沿着任意方位角 $\theta$ 切割得到的方向图。[图 1-3-4](#fig.1-3-4) 给出了波束方向图的幅度和不同变量之间的关系。
{width=800px}
{% note primary MATLAB Code %}
``` matlab fig2_17.m
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Figure 2.17
% Polar plot of B (Theta)
% Lillian Xu 1/5/99
% Updated by K. Bell 6/25/01
% Functions called: polardb
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
clear all
close all
N = 11; % Elements in array
d = 0.5; % spacing wrt wavelength
beamwidth = 2/(N*d); % null-to-null (LL BW is half this)
D=d*(-(N-1)/2:1:(N-1)/2); % element locations
ang = pi*(-1:0.001:1);
u = cos(ang);
n2=size(u,2);
AS = exp(-1i*2*pi*cos(90/180*pi)*D'); % BP points to 90 (broadside)
Au = exp(-1i*2*pi*D'*u);
B = real(AS'*Au)/N;
G = 20*log10((abs(B)));
h=polardb(ang,G,-40);
```
{% endnote %}
{width=1000px}
{% note primary MATLAB Code %}
``` matlab fig2_18.m
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Figure 2.18
% beam patterns in different spaces
% Lillian Xiaolan Xu
% Last updated 09/07/2000
% updated by K. Bell 7/22/01, 10/4/01
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
clear all
close all
N = 10;
n = (-(N-1)/2:(N-1)/2).';
psi = pi*(-3:0.001:3);
w = 1/N*[ones(N,1)];
d = 1/2;
vv = exp(1i*2*d*n*psi);
B = (abs(w'*vv));
u1=-1;
u2=3;
y1=0;
y2=1;
subplot(4,1,1)
plot(-psi/d,B);
hold on
axis([u1*pi/d u2*pi/d y1 y2])
set(gca,'XTick',[-pi/d 0 pi/d 2*pi/d 3*pi/d])
set(gca,'YTick',[0 0.5 1])
set(gca,'XTickLabel',{'$-\pi/d$';'$0$';'$\pi/d$';'$2\pi/d$';'$3\pi/d$'}, ...
'TickLabelInterpreter','latex')
grid on
point=0.8;
point_up=0.84;
point_down=0.76;
plot([-pi/d pi/d],[point point],'--')
plot([-1*pi/d -0.9*pi/d],[point point_up])
plot([-1*pi/d -0.9*pi/d],[point point_down])
plot([0.9*pi/d pi/d],[point_up point])
plot([0.9*pi/d pi/d],[point_down point])
text(-0.3*pi/d,1.2,'Visible region')
plot([pi/d 3*pi/d],[point point],'--')
plot([pi/d 1.1*pi/d],[point point_up])
plot([pi/d 1.1*pi/d],[point point_down])
plot([2.9*pi/d 3*pi/d],[point_up point])
plot([2.9*pi/d 3*pi/d],[point_down point])
text(1.7*pi/d,1.2,'Virtual region')
legend({'$k_z$-space'},'Interpreter','latex')
subplot(4,1,2)
plot(psi,B);
hold on
axis([u1*pi u2*pi y1 y2])
set(gca,'XTick',[-pi 0 pi 2*pi 3*pi])
set(gca,'YTick',[0 0.5 1])
set(gca,'XTickLabel',{'$-\pi$';'$0$';'$\pi$';'$2\pi$';'$3\pi$'}, ...
'TickLabelInterpreter','latex')
grid on
legend({'$\psi$-space'},'Interpreter','latex')
subplot(4,1,3)
plot(psi/pi,B);
hold on
axis([u1 u2 y1 y2])
set(gca,'XTick',[-1 0 1 2 3])
set(gca,'YTick',[0 0.5 1])
grid on
legend({'$u$-space'},'Interpreter','latex')
theta = -180:0.1:360;
vv = exp(1i*2*d*n*pi*cos(theta/180*pi));
B = (abs(w'*vv));
subplot(4,1,4)
plot(theta,B);
hold on
axis([-180 180 y1 y2])
set(gca,'XTick',[-180 -90 0 90 180])
set(gca,'YTick',[0 0.5 1])
set(gca,'XTickLabel',{'$180^\circ$';'$90^\circ$';'$0^\circ$';'$-90^\circ$'; ...
'$-180^\circ$'},'TickLabelInterpreter','latex')
grid on
legend({'$\theta$-space'},'Interpreter','latex')
set(gcf,'Position',[0 0 800 800])
```
{% endnote %}
{% note info %}
虽然以上例子比较简单,但是可以用来展示线性阵列的一些重要特征。
{% endnote %}
# 波束方向图的参数
波束方向图的重要特征可以使用波束方向图的参数来描述。
1. 3dB 带宽(半功率波束宽度,half-power beamwidth,HPBW)
2. 到第一零点的距离(这个距离的两倍称为 $BW_{NN}$)
3. 到第一旁瓣的距离
4. 第一旁瓣的高度
5. 其余零点的位置
6. 旁瓣衰减的速率
7. 栅瓣(Grating lobes)
## 半功率波束宽度
为了说明前两个参数,考虑在[图 1-3-5](#fig.1-3-5) 中给出的原点附近的波束方向图。
{width=700px}
{% note primary MATLAB Code %}
``` matlab fig2_19.m
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Figure 2.19
% Main lobe of beam pattern
% Kristine Bell
% Last updated 6/4/01, 10/4/01
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% bp_sect - plots conventional bp with sector
clear all
% close all
%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Uniform Linear Array
%%%%%%%%%%%%%%%%%%%%%%%%%%%%
N = 10; % Elements in array
d = 0.5; % spacing wrt wavelength
beamwidth = 2/(N*d); % null-to-null (LL BW is half this)
D=d*(-(N-1)/2:1:(N-1)/2); % element locations
u = -0.45:0.01:0.45;
AS = exp(-1i*2*pi*D'*0); % BP points to 0
Au = exp(-1i*2*pi*D'*u);
B = real(AS'*Au)/N; % BP
h=plot(u,B,'-');
set(h,'LineWidth',1.5)
hold on
% HPBW
I=find(B>=0.707);
plot([u(min(I)-1) u(max(I)+1)],[B(min(I)-1) B(max(I)+1)],'-')
plot(u(min(I)-1)*[1 1],B(min(I)-1)*[1 1]+0.03*[-1 1],'-')
plot(u(max(I)+1)*[1 1],B(max(I)+1)*[1 1]+0.03*[-1 1],'-')
plot([0.03 0.13],[0.72 0.845],'-')
text(0.155,0.84,'$\Delta u_1 = $HPBW','Interpreter','latex');
% BW-NN
plot([-0.2 0.2],[-0.3 -0.3],'-')
plot(-0.2*[1 1],-0.3*[1 1]+0.03*[-1 1],'-')
plot(0.2*[1 1],-0.3*[1 1]+0.03*[-1 1],'-')
text(-0.05,-0.35,'$\Delta u_2 = BW_{NN}$','Interpreter','latex');
% axes
plot([-1 1 ],[0 0],'-')
plot([0 0],[-0 1.1],'-')
% tick marks
plot(-0.4*[1 1],0.03*[-1 1])
plot(-0.2*[1 1],0.03*[-1 1])
plot(0.2*[1 1],0.03*[-1 1])
plot(0.4*[1 1],0.03*[-1 1])
yy = -0.1;
%tick labels
text(-0.45,yy,'$-2\frac{\lambda}{ND}$','Interpreter','latex');
text(-0.21,yy,'$-\frac{\lambda}{ND}$','Interpreter','latex');
text(-0.005,yy,'0','Interpreter','latex');
text(0.18,yy,'$\frac{\lambda}{ND}$','Interpreter','latex');
text(0.38,yy,'$2\frac{\lambda}{ND}$','Interpreter','latex');
text(0.01,1.1,'$B(u)$','Interpreter','latex')
hold off
axis([-0.42 0.42 -0.4 1.2])
set(gca,'Visible','off')
```
{% endnote %}
3dB 波束宽度是波束宽度的一个度量。定义为对应 $\left| B_u(u) \right|^2 = 0.5$ 或 $\left| B_u(u) \right| = 1/\sqrt{2}$ 的点。可以通过令波束方向图 $B_u(u)$(式 $\eqref{BeamPatternOfUWLAInDirectionCosineDomain}$)等于 $1/\sqrt{2}$,来求出 $u$ 空间的半功率点。对于 $N\geqslant 10$,通过解下面的方程可以得到一个很好的近似:
$$\begin{equation}
\frac{\pi N d}{\lambda} u = 1.4
\end{equation}$$
即有
$$\begin{equation} \label{ApproximationOfHPBW}
\Delta u_1 = 0.891 \frac{\lambda}{N d}
\end{equation}$$
我们把这个间隔称为**{% label primary @半功率波束宽度(half-power beamwidth,HPBW) %}**。当 $N$ 增加时,式 $\eqref{ApproximationOfHPBW}$ 中的常系数会稍稍减小。对于 $N > 30$,$0.886 \lambda/Nd$ 是一个更好的近似表达式。
[表 1-3-1](#table.1-3-1) 中列出了不同空间内 HPBW 的表达式。