目录
1. 问题描述
假设存在一个声源以及由N个阵元组成的麦克风阵列,且声源到各个阵元的传播信道只会引入时延与衰减,即
y
n
(
k
)
=
α
n
s
[
k
−
t
−
F
n
(
τ
)
]
+
v
n
(
k
)
=
x
n
(
k
)
+
v
n
(
k
)
,
n
=
1
,
2
,
…
,
N
,
(
1.1
)
\begin{aligned} y_{n}(k)& =\alpha_ns\left[k-t-\mathcal{F}_n(\tau)\right]+v_n(k) \\ &=x_n(k)+v_n(k), n=1,2,\ldots,N, \end{aligned}(1.1)
yn(k)=αns[k−t−Fn(τ)]+vn(k)=xn(k)+vn(k),n=1,2,…,N,(1.1)
其中
y
n
(
k
)
y_{n}(k)
yn(k)是各个阵元接收到的信号,
α
n
\alpha_n
αn是声源到各个阵元的衰减系数,在0到1之间,
s
(
k
)
s(k)
s(k)是未知的声源信号,
t
t
t是从声源到第一个阵元的传播时延,
F
n
(
τ
)
\mathcal{F}_n(\tau)
Fn(τ)是第1个阵元与第
n
n
n个阵元之间的相对时延,
v
n
(
k
)
v_n(k)
vn(k)是第
n
n
n个阵元接收到的噪声信号。
我们把第一个阵元接收到的信号作为参考信号,那么我们的目标就是通过处理N个阵元的观测含噪信号
y
n
(
k
)
y_{n}(k)
yn(k),来复原在第一个阵元上接收到的纯净语音信号
x
1
(
k
)
=
α
1
s
[
k
−
t
]
x_{1}(k)=\alpha_1s\left[k-t\right]
x1(k)=α1s[k−t]。
2. DAS波束形成
时延求和(Delay-and-Sum, DAS)是最简单的波束形成器,广泛用于语音增强降噪。它包含两个步骤,首先对每个阵元接收到的信号进行时延,使其与参考信号对齐,其次将对齐后的信号进行求和。具体时延的大小就是
F
n
(
τ
)
\mathcal{F}_n(\tau)
Fn(τ),即第1个阵元与第
n
n
n个阵元之间的相对时延,我们先假设它是已知的。那么通过在(1.1)中的信号模型中进行
F
n
(
τ
)
\mathcal{F}_n(\tau)
Fn(τ)的时延,可得
y
a
,
n
(
k
)
=
y
n
[
k
+
F
n
(
τ
)
]
=
α
n
s
(
k
−
t
)
+
v
n
(
k
+
F
n
(
τ
)
)
=
x
a
,
n
(
k
)
+
v
n
(
k
+
F
n
(
τ
)
)
,
n
=
1
,
2
,
…
,
N
,
(
2.1
)
\begin{aligned} y_{\mathrm{a},n}(k)& =y_{n}\left[k+\mathcal{F}_{n}(\tau)\right] \\ &=\alpha_ns(k-t)+v_n(k+\mathcal{F}_{n}(\tau)) \\ &=x_{\mathrm{a},n}(k)+v_n(k+\mathcal{F}_{n}(\tau)) , n=1,2,\ldots,N, \end{aligned}(2.1)
ya,n(k)=yn[k+Fn(τ)]=αns(k−t)+vn(k+Fn(τ))=xa,n(k)+vn(k+Fn(τ)),n=1,2,…,N,(2.1)
下标’a’是"aligned"的意思,即对齐。第二步就是将时延对齐后的信号进行求和,就能得到DAS的输出:
z
D
S
(
k
)
=
1
N
∑
n
=
1
N
y
a
,
n
(
k
)
=
α
s
s
(
k
−
t
)
+
1
N
v
s
(
k
)
,
(
2.2
)
\begin{aligned} z_{\mathrm{DS}}(k)& =\frac{1}{N}\sum_{n=1}^{N}y_{\mathrm{a},n}(k) \\ &=\alpha_\text{s}s(k-t)+\frac{1}{N}v_\text{s}(k), \end{aligned}(2.2)
zDS(k)=N1n=1∑Nya,n(k)=αss(k−t)+N1vs(k),(2.2)
其中
α
s
=
1
N
∑
n
=
1
N
α
n
,
v
s
(
k
)
=
∑
n
=
1
N
v
n
[
k
+
F
n
(
τ
)
]
.
\begin{aligned} \alpha_{\mathrm{s}}& =\frac1N\sum_{n=1}^N\alpha_n, \\ v_{\mathrm{s}}(k)&=\sum_{n=1}^Nv_n\left[k+\mathcal{F}_n(\tau)\right]. \end{aligned}
αsvs(k)=N1n=1∑Nαn,=n=1∑Nvn[k+Fn(τ)].
现在我们考虑一下输入信噪比与通过DAS之后的输出信噪比的关系。由(1.1)易知参考信号
y
1
(
k
)
=
x
1
(
k
)
+
v
1
(
k
)
=
α
1
s
(
k
−
t
)
+
v
1
(
k
)
y_{1}(k)=x_{1}(k)+v_{1}(k)=\alpha_1s(k-t)+v_{1}(k)
y1(k)=x1(k)+v1(k)=α1s(k−t)+v1(k)的输入信噪比为
S
N
R
=
σ
x
1
2
σ
v
1
2
=
α
1
2
σ
s
2
σ
v
1
2
,
(
2.3
)
\mathrm{SNR}=\frac{\sigma_{x_1}^2}{\sigma_{v_1}^2}=\alpha_1^2\frac{\sigma_s^2}{\sigma_{v_1}^2},(2.3)
SNR=σv12σx12=α12σv12σs2,(2.3)
其中
σ
x
1
2
=
E
[
x
1
2
(
k
)
]
,
σ
v
1
2
=
E
[
v
1
2
(
k
)
]
,
σ
s
2
=
E
[
s
2
(
k
)
]
\sigma_{x_1}^2=E\left[x_1^2(k)\right], \sigma_{v_1}^2=E\left[v_1^2(k)\right],\sigma_s^2=E\left[s^2(k)\right]
σx12=E[x12(k)],σv12=E[v12(k)],σs2=E[s2(k)]
由(2.2)可知输出信噪比为
oSNR
=
N
2
α
s
2
E
[
s
2
(
k
−
t
)
]
E
[
v
s
2
(
k
)
]
=
N
2
α
s
2
σ
s
2
σ
v
s
2
=
(
∑
n
=
1
N
α
n
)
2
σ
s
2
σ
v
s
2
,
(
2.4
)
\begin{aligned} \text{oSNR}& =N^2\alpha_\mathrm{s}^2\frac{E\left[s^2(k-t)\right]}{E\left[v_\mathrm{s}^2(k)\right]} \\ &=N^2\alpha_\mathrm{s}^2\frac{\sigma_s^2}{\sigma_{v_\mathrm{s}}^2} \\ &=\left(\sum_{n=1}^N\alpha_n\right)^2\frac{\sigma_s^2}{\sigma_{v_\mathrm{s}}^2}, \end{aligned}(2.4)
oSNR=N2αs2E[vs2(k)]E[s2(k−t)]=N2αs2σvs2σs2=(n=1∑Nαn)2σvs2σs2,(2.4)
其中
σ
v
s
2
=
E
{
[
∑
n
=
1
N
v
n
[
k
+
F
n
(
τ
)
]
]
2
}
=
∑
n
=
1
N
σ
v
n
2
+
2
∑
i
=
1
N
−
1
∑
j
=
i
+
1
N
ϱ
v
i
v
j
,
\begin{gathered} \sigma_{v_{\mathrm{s}}}^2 =E\left\{\left[\sum_{n=1}^Nv_n\left[k+\mathcal{F}_n(\tau)\right]\right]^2\right\} \\ =\sum_{n=1}^N\sigma_{v_n}^2+2\sum_{i=1}^{N-1}\sum_{j=i+1}^N\varrho_{v_iv_j}, \end{gathered}
σvs2=E⎩
⎨
⎧[n=1∑Nvn[k+Fn(τ)]]2⎭
⎬
⎫=n=1∑Nσvn2+2i=1∑N−1j=i+1∑Nϱvivj,
其中
ϱ
v
i
v
j
\varrho_{v_iv_j}
ϱvivj是
v
i
(
k
)
v_\mathrm{i}(k)
vi(k)与
v
j
(
k
)
v_\mathrm{j}(k)
vj(k)的互相关。
接下来分析不同场景下DAS波束输出信噪比相比于输入信噪比能改善多少。
第一种情况:各阵元接收到的噪声互不相关,即互相关
ϱ
v
i
v
j
=
0
\varrho_{v_iv_j}=0
ϱvivj=0,且功率相等,衰减系数都为1,即
α
n
=
1
\alpha_n=1
αn=1。此时可得
o
S
N
R
=
N
⋅
S
N
R
.
(
2.5
)
\mathrm{oSNR}=N\cdot\mathrm{SNR}.(2.5)
oSNR=N⋅SNR.(2.5)
可以看到,在这种场景下,一个简单的DAS能够让输出信噪比达到N倍于输入信噪比的效果。
第二种情况:(更一般的情况)只假设噪声信号功率相等以及衰减系数为1。这种情况下可得
o
S
N
R
=
N
1
+
ρ
s
⋅
S
N
R
,
(
2.6
)
\mathrm{oSNR}=\frac{N}{1+\rho_\mathrm{s}}\cdot\mathrm{SNR},(2.6)
oSNR=1+ρsN⋅SNR,(2.6)
其中
ρ
s
=
2
N
∑
i
=
1
N
−
1
∑
j
=
i
+
1
N
ρ
v
i
v
j
,
ρ
v
i
v
j
=
ϱ
v
i
v
j
σ
v
i
σ
v
j
.
\begin{aligned}\rho_{\mathrm{s}}&=\frac{2}{N}\sum_{i=1}^{N-1}\sum_{j=i+1}^{N}\rho_{v_{i}v_{j}},\\\rho_{v_{i}v_{j}}&=\frac{\varrho_{v_{i}v_{j}}}{\sigma_{v_{i}}\sigma_{v_{j}}}.\end{aligned}
ρsρvivj=N2i=1∑N−1j=i+1∑Nρvivj,=σviσvjϱvivj.
ρ
v
i
v
j
\rho_{v_{i}v_{j}}
ρvivj就是
v
i
(
k
)
v_\mathrm{i}(k)
vi(k)与
v
j
(
k
)
v_\mathrm{j}(k)
vj(k)的互相关系数。当各阵元接收到的噪声互不相关(空间白噪声),即
ρ
v
i
v
j
=
0
\rho_{v_{i}v_{j}}=0
ρvivj=0,
o
S
N
R
=
N
⋅
S
N
R
\mathrm{oSNR}=N\cdot\mathrm{SNR}
oSNR=N⋅SNR,即第一种情况。当各阵元接收到的噪声完全相关,即
ρ
v
i
v
j
=
1
\rho_{v_{i}v_{j}}=1
ρvivj=1,此时
o
S
N
R
=
S
N
R
\mathrm{oSNR}=\mathrm{SNR}
oSNR=SNR,即此时DAS波束输出并不能提高SNR,但实际中各阵元接收到的噪声往往不会完全相关,因此DAS总是可以提高SNR。
3. DAS波束响应与波束图
从上面分析我们可以知道DAS其实就是对N个阵元接收到的信号进行时移对齐再加权求和。时域的时移等价于频域的相移,那么如果我们把DAS当作一个N通道滤波器,那么该滤波器各个通道的系数(波束加权向量)就是
1
N
e
j
2
π
f
F
n
(
τ
)
\frac{1}{N}e^{j2\pi f{\mathcal{F}}_{n}(\tau)}
N1ej2πfFn(τ),我们用
h
=
[
h
1
h
2
⋯
h
N
]
T
\mathbf{h}=\left[ h_{1} h_{2} \cdots h_{N} \right]^{T}
h=[h1h2⋯hN]T来表示。其中
F
n
(
τ
)
\mathcal{F}_n(\tau)
Fn(τ)(TDOA)与声源位置(信号到达方向)和阵列形状有关。在一个给定的阵列的情况下,即阵列形状固定,则
F
n
(
τ
)
\mathcal{F}_n(\tau)
Fn(τ)只与声源位置(信号到达方向)有关。现在引入一个重要的概念:波束响应。
一个阵列的波束响应可以由下式计算
S
(
ψ
)
=
∑
n
=
1
N
h
n
e
−
j
2
π
f
F
n
[
τ
(
ψ
)
]
=
h
T
ς
(
ψ
)
,
(
3.1
)
\mathcal{S}(\psi)=\sum_{n=1}^Nh_ne^{-j2\pi f\mathcal{F}_n[\tau(\psi)]}=\mathbf{h}^T\boldsymbol{\varsigma}(\psi),(3.1)
S(ψ)=n=1∑Nhne−j2πfFn[τ(ψ)]=hTς(ψ),(3.1)
其中
ς
(
ψ
)
=
[
e
−
j
2
π
f
F
1
[
τ
(
ψ
)
]
e
−
j
2
π
f
F
2
[
τ
(
ψ
)
]
⋯
e
−
j
2
π
f
F
N
[
τ
(
ψ
)
]
]
T
.
\left.\boldsymbol{\varsigma}(\psi)=\left[\begin{array}{cccc}e^{-j2\pi f\mathcal{F}_1[\tau(\psi)]}&e^{-j2\pi f\mathcal{F}_2[\tau(\psi)]}&\cdots&e^{-j2\pi f\mathcal{F}_N[\tau(\psi)]}\end{array}\right.\right]^T.
ς(ψ)=[e−j2πfF1[τ(ψ)]e−j2πfF2[τ(ψ)]⋯e−j2πfFN[τ(ψ)]]T.
且
ψ
\psi
ψ是信号实际到达方向。
现考虑一个均匀线列阵,如下图所示。
假设声源位于远端,入射角为
θ
\theta
θ,那么第
n
n
n个阵元与参考阵元之间的TDOA可以写成
F
n
(
τ
)
=
(
n
−
1
)
τ
=
(
n
−
1
)
d
cos
(
θ
)
/
c
,
(
3.2
)
\mathcal{F}_n(\tau)=(n-1)\tau=(n-1)d\cos(\theta)/c,(3.2)
Fn(τ)=(n−1)τ=(n−1)dcos(θ)/c,(3.2)
其中
c
c
c是声速,
d
d
d是阵元间距。
我们据此来设计一个DAS波束形成器,即让该DAS指向
θ
\theta
θ的方向。那么该阵列的波束响应为
S
D
S
(
ψ
,
θ
)
=
1
N
∑
n
=
1
N
[
e
j
2
π
(
n
−
1
)
f
d
cos
(
θ
)
/
c
]
e
−
j
2
π
(
n
−
1
)
f
d
cos
(
ψ
)
/
c
=
1
N
∑
n
=
1
N
e
−
j
2
π
(
n
−
1
)
f
d
[
cos
(
ψ
)
−
cos
(
θ
)
]
/
c
,
(
3.3
)
\begin{gathered} \mathcal{S}_{\mathrm{DS}}(\psi,\theta) =\frac{1}{N}\sum_{n=1}^{N}\left[e^{j2\pi(n-1)fd\cos(\theta)/c}\right]e^{-j2\pi(n-1)fd\cos(\psi)/c} \\ =\frac1N\sum_{n=1}^Ne^{-j2\pi(n-1)fd[\cos(\psi)-\cos(\theta)]/c}, \end{gathered}(3.3)
SDS(ψ,θ)=N1n=1∑N[ej2π(n−1)fdcos(θ)/c]e−j2π(n−1)fdcos(ψ)/c=N1n=1∑Ne−j2π(n−1)fd[cos(ψ)−cos(θ)]/c,(3.3)
其中
ψ
\psi
ψ是信号实际到达方向。
波束图就是波束响应的幅值
A
D
S
(
ψ
,
θ
)
=
∣
S
D
S
(
ψ
,
θ
)
∣
=
∣
sin
[
N
π
f
d
(
cos
ψ
−
cos
θ
)
/
c
]
N
sin
[
π
f
d
(
cos
ψ
−
cos
θ
)
/
c
]
∣
.
(
3.4
)
\begin{aligned} \mathcal{A}_{\mathrm{DS}}(\psi,\theta)& =|\mathcal{S}_{\mathrm{DS}}(\psi,\theta)| \\ &=\left|\frac{\sin\left[N\pi fd(\cos\psi-\cos\theta)/c\right]}{N\sin\left[\pi fd(\cos\psi-\cos\theta)/c\right]}\right|. \end{aligned}(3.4)
ADS(ψ,θ)=∣SDS(ψ,θ)∣=
Nsin[πfd(cosψ−cosθ)/c]sin[Nπfd(cosψ−cosθ)/c]
.(3.4)
实际中还会将它转换成dB,变为
20
l
g
A
D
S
(
ψ
,
θ
)
20lg\mathcal{A}_{\mathrm{DS}}(\psi,\theta)
20lgADS(ψ,θ)
以下是一个10阵元,阵元间距为8cm,频率为2000Hz,DAS指向方向为90°的均匀线列阵的波束图
从波束图可以看到,当信号到达方向为90°,即我们设计的DAS指向方向时,波束响应为0dB,也就是信号能够无损通过,而当信号到达方向为其它角度时,通过DAS时都会受到不同程度的抑制。这也就是为什么说波束形成器具有指向性。该波束图的主瓣宽度也可以令
A
D
S
(
ψ
,
θ
)
\mathcal{A}_{\mathrm{DS}}(\psi,\theta)
ADS(ψ,θ)等于0计算得到为
2
sin
−
1
[
c
/
(
N
d
f
)
]
2\sin^{-1}\left[c/(Ndf)\right]
2sin−1[c/(Ndf)]。显然,主瓣宽度越小越好,且它会随着
N
,
d
,
f
N,d,f
N,d,f的增大而减小。孔径定义为阵列总长度除以波长,即
(
N
−
1
)
d
f
/
c
(N-1)df/c
(N−1)df/c,所以孔径越大,主瓣越窄,方位分辨率越高。既然增加阵元间距
d
d
d可以使主瓣变窄,那是不是意味着可以无限制的增加
d
d
d呢?这就引入了空域采样定理:为了避免空域混叠现象(出现栅瓣),阵元间距要小于等于半波长,
d
≤
λ
2
=
c
2
f
d\leq\frac{\lambda}{2}=\frac{c}{2f}
d≤2λ=2fc。
至于栅瓣是什么,如下图所示
我们发现除了在我们设计的DAS指向角度90°外,还出现了两个角度的波束响应到达了
0
d
B
0dB
0dB,这就是栅瓣,栅瓣会导致我们无法分辨信号的到达方向,因此我们的阵元间距一定要小于等于半波长。