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.
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 bandwidth 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.
Impulse response of system for fields transmitted through the structure from 0.7-1.3um.
Oscillation is due to constructive/destructive interference as fields pass through the dielectric slab.
Spectrum of 50fs gaussian pulse.
Notice that spectrum of pulse is fully contained within the range of known impulse response data (0.7-1.3um).
Time domain response of system
Input signal: Desired input signal. This is typically specified by the user.
Response - from simulation: The response of the system as calculated by running a full FDTD simulation. For verification purposes.
Response - from impulse analysis: The response of the system as calculated from the source spectrum and impulse response data. Notice that this data is very similar to the response as calculated from the verification simulation (green line), but did not require an additional FDTD simulation.