This topic explains how to calculate the time domain response of a system to an arbitrary source time signal. The response is calculated by using the impulse response of the system (as calculated from a simulation that uses the standard source pulse).
This type of post-processing analysis is often more efficient than directly running an FDTD simulation with the arbitrary source pulse. For example, once the impulse response is known, it is possible to calculate the response to many different inputs without needing to run any additional simulations.not necessary to run any addition the response to several different time domain pulses.
The impulse response of the system is obtained by running a 'standard' simulation using the default source pulse. Important points to consider include:
- The source must be setup to excite the system over the full range of frequencies of interest (ie. it must cover the full spectrum of the desired custom source signal).
- A frequency domain monitor must be setup to measure the impulse response of the system over the same range of frequencies. It is important to understand that the frequency monitors record the impulse response of the system. No additional processing of the data is required to obtain the impulse response.
- As with any simulation, it is important that the simulation time be sufficiently long so that the time domain fields decay to ~0 by the end of the simulation.
- Note that the monitors in this example file have been setup to always record data from 0.7-1.3um, regardless of the source wavelength range.
Once the impulse response has been calculated by a frequency monitor, it is possible to calculate the system's response to an arbitrary input based on some simple fourier analysis.
- The user must specify the desired input signal as a function of time: Signal(t)
- Calculate the input signal's frequency domain spectrum with a fourier transform: Signal(f)
- Multiply the signal spectrum and the impulse response: Impulse(f) * Signal(f)
- Inverse transform the spectrum*impulse data to obtain the systems response to the desired input: Response(t).
To reproduce the following examples, open the associated simulation file (.fsp) and run the script file (.lsf). The goal of this example is to determine the response of the system to a 50fs Gaussian pulse propagating through a n=3 dielectric slab using the technique described above. To verify the result, the script runs another FDTD simulation using a 50 Gaussian pulse so the calculated response can be compared to the response from the direct FDTD simulation.