def METHOD_NAME(data, ilens, psd_speech, psd_noise):
    # u: (B, C)
    if self.ref_channel < 0:
        u, _ = self.ref(psd_speech, ilens)
    else:
        # (optional) Create onehot vector for fixed reference microphone
        u = torch.zeros(
            *(data.size()[:-3] + (data.size(-2),)), device=data.device
        )
        u[..., self.ref_channel].fill_(1)
    ws = get_mvdr_vector(psd_speech, psd_noise, u)
    enhanced = apply_beamforming_vector(ws, data)
    return enhanced, ws