torchaudio.functional.mvdr_weights_souden¶
- torchaudio.functional.mvdr_weights_souden(psd_s: Tensor, psd_n: Tensor, reference_channel: Union[int, Tensor], diagonal_loading: bool = True, diag_eps: float = 1e-07, eps: float = 1e-08) Tensor [原始碼]¶
計算最小變異數無失真響應 (MVDR [Capon, 1969]) 波束成形權重,方法由 Souden 等人 提出 [Souden et al., 2009]。
給定目標語音的功率譜密度 (PSD) 矩陣 \(\bf{\Phi}_{\textbf{SS}}\)、雜訊的 PSD 矩陣 \(\bf{\Phi}_{\textbf{NN}}\),以及表示參考通道的 one-hot 向量 \(\bf{u}\),此方法計算 MVDR 波束成形權重矩陣 \(\textbf{w}_{\text{MVDR}}\)。公式定義如下
\[\textbf{w}_{\text{MVDR}}(f) = \frac{{{\bf{\Phi}_{\textbf{NN}}^{-1}}(f){\bf{\Phi}_{\textbf{SS}}}}(f)} {\text{Trace}({{{\bf{\Phi}_{\textbf{NN}}^{-1}}(f) \bf{\Phi}_{\textbf{SS}}}(f))}}\bm{u} \]- 參數:
psd_s (torch.Tensor) – 目標語音的複數值功率譜密度 (PSD) 矩陣。維度為 (…, freq, channel, channel) 的張量。
psd_n (torch.Tensor) – 雜訊的複數值功率譜密度 (PSD) 矩陣。維度為 (…, freq, channel, channel) 的張量。
reference_channel (int 或 torch.Tensor) – 指定參考通道。如果 dtype 為
int
,則表示參考通道索引。如果 dtype 為torch.Tensor
,則其形狀為 (…, channel),其中channel
維度為 one-hot。diagonal_loading (bool, optional) – 如果
True
,則啟用對psd_n
應用對角加載。(預設值:True
)diag_eps (float, optional) – 乘以對角加載的單位矩陣的係數。僅當
diagonal_loading
設定為True
時有效。(預設值:1e-7
)eps (float, optional) – 要加到波束成形權重公式中分母的值。(預設值:
1e-8
)
- 返回:
複數值 MVDR 波束成形權重矩陣,維度為 (…, freq, channel)。
- 返回類型: