This example show the wave breaking effect occuring in a normal optical fiber.
from numpy import * import scipy.fftpack as fftpack import matplotlib.pyplot as plt import PyOFTK T = 60.0 nt = pow(2,14) dt = T/nt t = linspace(-T/2, T/2, nt) dz = 0.01 nz = 1000 C = 2.99792458e-4 lambdaZero = 1.027e-6 betap = array([0, 0, 0.0268742]) alpha = 0.0 u_ini_x = PyOFTK.gaussianPulse(t, 2.0, 0.0, 500, 1.0, 0.0) u_out_x = PyOFTK.ssf(u_ini_x, dt, dz, nz, alpha, betap, 0.0065, 500, 1e-5) [wavelength_in, spectre_in] = PyOFTK.pulseSpectrum(t, u_ini_x, lambdaZero) [wavelength_out, spectre_out] = PyOFTK.pulseSpectrum(t, u_out_x, lambdaZero) nu_inst_out = PyOFTK.nuInst(u_out_x) nu_inst_ini = PyOFTK.nuInst(u_ini_x) # Graph plt.figure(figsize=(15,10)) ax1 = plt.subplot(221) plt.plot(t, pow(abs(u_ini_x),2), color="black", linestyle='--') plt.title("Profile temporel (z = 0)") plt.ylabel("$|a(z,t)|^2$") plt.xlabel("$t/t_0$") plt.grid(True) ax2 = plt.twinx() plt.plot(t[0:nt-1], nu_inst_ini, color="black") # ylabel("Glissement en frequence") ax2.yaxis.tick_right() plt.ylim([-0.2,0.2]) plt.xlim([-10,10]) plt.show() ax3 = plt.subplot(222) plt.plot(t, pow(abs(u_out_x),2), color="black", linestyle='--') # ylabel("$|a(z,t)|^2$") plt.xlabel("$t/t_0$") plt.grid(True) ax4 = plt.twinx() plt.plot(t[0:nt-1], nu_inst_out, color="black") plt.ylabel("Glissement en frequence") ax4.yaxis.tick_right() plt.ylim([-0.2,0.2]) plt.xlim([-10,10]) plt.show() ax5 = plt.subplot(223) plt.plot(wavelength_in, spectre_in, color="black") plt.title("Spectre (z = 0)") plt.xlabel("Longueur d'onde [nm]") plt.xlim([1015, 1040]) plt.grid(True) plt.show() ax6 = plt.subplot(224) plt.plot(wavelength_out, spectre_out, color="black") plt.title("Spectre (z =" + '%.1f'%(dz*nz) + "m)") plt.xlim([1015, 1040]) plt.xlabel("Longueur d'onde [nm]") plt.grid(True) plt.show() |
