ChalmersPhotonicsLab / QAMpy

QAMpy is a DSP chain for the simulation and equalisation of optical communications signals
GNU General Public License v3.0
65 stars 41 forks source link

qampy/core/impairments.py: Issue with diagonal matrix corresponding to DGD #16

Closed karstarkastro closed 3 years ago

karstarkastro commented 3 years ago

I have noticed that in line 97 of the mentioned file the equation is:

h2 = np.array([np.exp(-1.j*omega*t_dgd/2),  np.exp(1.j*omega*t_dgd/2)])

But reading academic papers about the modelling of PMD like [1] and [2] the minus sign appears in the second row rather than the first, which leads me to believe that the aforementioned line should be:

h2 = np.array([np.exp(1.j*omega*t_dgd/2),  np.exp(-1.j*omega*t_dgd/2)])

Would that be correct? To be honest I didn't notice any major difference in the results for such a slight change, but thought it would be worth to point it out.

[1] Morénas V. and Penninckx D. (1999) "Jones matrix of polarization mode dispersion" in Optics Letters, Vol. 24, No. 13, pp. 875-877 [2] Ip E. and Kahn M. (2007) "Digital Equalization of Chromatic Dispersion and Polarization Mode Dispersion" in Journal of Lightwave Technology, vol. 25, no. 8, pp. 2033-2043

cycomanic commented 3 years ago

hi @karstarkastro, that's no issue it simply changes which of the rotated x/y polarization is delayed and which is advanced, both implementations are correct.

karstarkastro commented 3 years ago

I am sorry for my bad wording when opening the case. I get it now, the order of the factors just determines which polarization is going to be affected by the minus sign but always keeping the delay between both. Thanks for the quick reply and sorry for the confusion!