torchaudio.functional.mvdr_weights_rtf¶
- torchaudio.functional.mvdr_weights_rtf(rtf: Tensor, psd_n: Tensor, reference_channel: Optional[Union[int, Tensor]] = None, diagonal_loading: bool = True, diag_eps: float = 1e-07, eps: float = 1e-08) Tensor [源]¶
根据噪声的相对传递函数 (RTF) 和功率谱密度 (PSD) 矩阵,计算最小方差无失真响应 (MVDR [Capon, 1969]) 波束形成权重。
给定目标语音的相对传递函数 (RTF) 矩阵或导向向量 \(\bm{v}\)、噪声的 PSD 矩阵 \(\bf{\Phi}_{\textbf{NN}}\) 和表示参考通道的独热向量 \(\bf{u}\),此方法计算 MVDR 波束形成权重矩阵 \(\textbf{w}_{\text{MVDR}}\)。公式定义为
\[\textbf{w}_{\text{MVDR}}(f) = \frac{{{\bf{\Phi}_{\textbf{NN}}^{-1}}(f){\bm{v}}(f)}} {{\bm{v}^{\mathsf{H}}}(f){\bf{\Phi}_{\textbf{NN}}^{-1}}(f){\bm{v}}(f)} \]其中 \((.)^{\mathsf{H}}\) 表示 Hermitian 共轭运算。
- 参数:
rtf (torch.Tensor) – 目标语音的复数值 RTF 向量。形状为 (…, freq, channel) 的张量。
psd_n (torch.Tensor) – 噪声的复数值功率谱密度 (PSD) 矩阵。形状为 (…, freq, channel, channel) 的张量。
reference_channel (int 或 torch.Tensor) – 指定参考通道。如果数据类型是
int
,则表示参考通道索引。如果数据类型是torch.Tensor
,则形状为 (…, channel),其中channel
维度是独热表示。diagonal_loading (bool, 可选) – 如果为
True
,则对psd_n
应用对角加载。(默认值:True
)diag_eps (float, 可选) – 对角加载中乘到单位矩阵上的系数。仅当
diagonal_loading
设置为True
时有效。(默认值:1e-7
)eps (float, 可选) – 添加到波束形成权重公式中分母上的值。(默认值:
1e-8
)
- 返回:
复数值 MVDR 波束形成权重矩阵,形状为 (…, freq, channel)。
- 返回类型: