FFT Analysis in Cadence
1. Refer to the slides of [Link] Sir in this folder for a detailed description. It misses out on Steps 2
and 3 of Point 3 mentioned in this document. Rest all can be followed from there.
2. [Link]
Read the “Simulation Issues” section in this paper on Page 8 (also present in the folder)
3. Below is the step-by-step method to obtain a simple, good FFT:
Step 1: You must set the input source frequency as (N1/NFFT*fs). Here, NFFT is the number of
sample points you want to consider in your FFT plot (usually 128, 256, 512 or 1024), and fs is the
sampling frequency of your system (ADC/DAC/any other). N1 is a number used to define the input
signal frequency. It must be co-prime (read Point 2 above to understand why) and is usually kept
between 3 to NFFT/2.
Fig. 1: Input Source Settings
N1 can be taken larger than NFFT/2, but remember that it causes aliasing in the output. Usually, a
larger value of N1 (>NFFT/2) is used to check for the sampler bandwidth.
Step 2: Go to the test setup window (in ADE L, etc. - should look as shown below in Fig 2). Set the
respective values of fs, N1, NFFT there. Open the Analysis window (Fig. 3). Set the total simulation
time to be more than (10+NFFT)*1/fs. It is useful to ignore the initial few readings of the ADC,
which may be more erroneous due to transients.
Fig.2 : ADE L Settings
Fig.3 : Choose your analysis
Step 3: Go to Options -> Output (Fig. 4). Set the “strobeperiod” value equal to 1/fs. It should be a
numeric value, and no variables should be used. Be sure to change this when you change your
sampling frequency. This option results in a periodic output once every sampling period. Set the
“skipstart” value (if needed) so that the output you want to observe has settled by that time in
that particular sampling period.
Say you set “strobeperiod” to x, and “skipstart” to y, then you will observe the output after every
y+n*x time interval, where n is a non-negative integer (0, 1, 2…)
Run the simulation.
Fig.4: Transient Options
Step 4: Open the plotting options menu and select Type -> Points. You can see the individual
points in the output if you zoom in on the curve. Each of them should be uniformly spaced in time.
Fig. 5: Observe spacing between individual points
Step 5: Go to Measurements -> Spectrum. An FFT window will open. Select the curve you want to
plot an FFT for. If you previously did an FFT for a curve with the same name, delete the name from
the FFT selection window and reselect the new curve.
Fig 6. To select “Spectrum”
Set the options as shown below. Set the FFT Input Method to “Calculate Start Time”. Put the
“Stop Time” value as the time of the second last sample in the output curve (This can be checked
by zooming in on the curve and hovering on the output points towards the end)
Then, set the Sample Count same as your NFFT value and Sampling Frequency accordingly. The
start time should be updated based on this. Press the “S” button.
Keep the window type rectangular, and you can set the value of harmonics around 20. If the
harmonics value is kept at 1, then SINAD = SNR (otherwise, SNR > SINAD). You can set the plot
mode to New Window.
Fig 7. FFT Options
Step 6: Plot the FFT by clicking on the “Plot” button. You will see the different harmonics in your
FFT. The overall results are also shown in the outputs window.
Fig 8. Final FFT Output
• Press M by keeping the cursor over the point to bring marker, press D on a selected marker
and drag to get a delta or difference marker - applicable on any time domain waveform as
well
• Right click on the plot -> Graph Properties -> Set Background Color to White for your
reports
Note: Speeding up your simulation -
Go to ADE L window -> Setup -> High-Performance Simulation -> APS -> use ++aps