So I have been trying to automate the conversion of my pulsed laser spectrum data to pulse duration via a python script. However somehow my transformed data does not seem to fit. Does anybody know what I am doing wrong?
import pandas as pd
import matplotlib.pyplot as plt
import numpy as np
# Inverse Discrete Time Fourier Transformation
def IDTFT(N,intensity,frequency,time):
inverse = np.zeros(len(time),dtype=np.clongdouble)
for t in range(len(time)):
for k in range(N):
inverse[t] += (1/N)*intensity[k]*np.exp((1j*2*np.pi*frequency[k]*time[t])/N)
return inverse
# Load Data
df = pd.read_csv(r'C:\Users\lukas\Downloads\Data.txt',sep='\t')
# Extract quantities
intensity = df['Intensity']
wavelength = df['Wavelength']
frequency = 299792458/(wavelength*1e-9)
time = np.arange(0,2024e-15,1e-15)
# Plot frequency domain
plt.figure(0)
plt.grid()
plt.plot(frequency,intensity,'o')
plt.show()
Frequency Domain (xaxis=[Hz]):

# Transform
inverse = IDTFT(len(wavelength),intensity,frequency,time)
# Plot time domain
plt.figure(1)
plt.grid()
plt.plot(time,inverse,'o')
plt.show()
Time domain (xaxis = [s]):
