generate perturbations