taking into account the non-diagonal terms (closer to the time domain implementation)