The first option, which is also the default option, constructs an optimal modulated Gaussian pulse waveform based on your project's specified center frequency and bandwidth. This optimal waveform guarantees the most accurate frequency domain computations for your simulation. The second option gives you a choice of the three standard waveforms and lets you define their waveform parameters in terms of frequency domain characteristics like center frequency and bandwidth and spectral contents. The third option lets you define a completely arbitrary temporal waveform for your source.
Select the third option of waveform definition and then choose the '''Custom''' option from the '''Waveform Type''' dropdown list. Enter a mathematical expression for your custom waveform a function of the time variable "T" or "t" in the box labeled '''Expression'''. You can use arithmetic operationoperations, standard and library functions as well as you models and variables. For example, in the figure on the right, we have user-defined a modulated Bessel waveform in the form of "sin(2*pi*Fc*T-pi/4)*Jn(0,pi*Fc*T/4)", where Fc is the center frequency of the project and one of the project's default variables and Jn(n,x) denotes the Bessel function of the first kind and order n, which is one of [[EM.Cube]]'s library Python functions.
[[Image:Info_icon.png|40px]] Click here to learn more about '''[[Using Python to Create Functions, Models & Scripts#Creating Custom Python Functions | Creating Custom Python Functions]]'''.
</table>
When you define a custom waveform in the Excitation Waveform dialog, make sure to click the {{key|Accept}} button of the dialog to make your changes effective. A graph of your custom waveform is plotted in the right panel of the dialog for your review. It is important to keep in mind that typical time scales in the FDTD simulation of RF structures are on the order of nanosecond or smaller. Using the variable "Fcfc" in the expression of your waveform definition usually takes care of this required scaling. Otherwise, you need to use scaling factors like 1e-9 explicitly in your expression. For example, in the figure below, we have defined a modulated Bessel waveform in the form of "sp.j0(t/2e-9)*sin(2*pi*fc*t)", where sp.j0(x) denotes the zeroth-order Bessel function of the first kind burrowed from Python's special functions module.
{{Note| If you define a custom excitation waveform for your source based on arbitrary time domain specifications, none of the standard frequency domain output data and parameters will be computed at the end of your FDTD simulation.}}
<table>