updated heterodyne d1 and d2 functions