光信号を100km伝搬させて受信した時の電力波形を算出するpythonのシミュレーションプログラムです。
今回は光源の波長を1.55[μm]としてシミュレーションを行っています。
N = 2**10 #データ点数
trange = 5.714e-10 #全時間幅
dt = trange/N
z1 = 100e3 #伝送距離
B = -21.7*10**(-27) #波長1.55[μm]のとき
ff = np.zeros(N, dtype=np.complex128)
###角周波数設定###
omega1=np.linspace(0.0,np.pi/dt,N/2.0,endpoint=False)
omega2=np.linspace(-np.pi/dt,0.0,N/2.0,endpoint=False)
omega=np.hstack((omega1,omega2))
####送信-->受信波形####
##########分散##########
##fft
ff = np.fft.fft(signal)
#分散式
signal_rx = ff * np.exp(-1j*B*(omega**2)*z1/2)
##ifft
gf1 = np.fft.ifft(signal_rx)
#受信後の分散波形
signal_bun1 = np.abs(gf1) # 複素振幅波形
signal_bun1k = np.abs(gf1) * np.abs(gf1) # 電力波形