• Skip to main content
  • Skip to search
  • Skip to footer
Cadence Home
  • This search text may be transcribed, used, stored, or accessed by our third-party service providers per our Cookie Policy and Privacy Policy.

  1. Community Forums
  2. Mixed-Signal Design
  3. measurements on spectrum

Stats

  • Locked Locked
  • Replies 2
  • Subscribers 64
  • Views 14974
  • Members are here 0
This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

measurements on spectrum

vamshiky
vamshiky over 4 years ago

Hi,

I am trying to measure these on spectrum and please help for.

1) calculator expression to find second/third/foruth maximum power tone from a spectral plot.

Also the frequency bin location of Nth max tone (analogous to xmax for time domain signals)

2) spectral measurement with time. Lets say  have a random signal and want to measure sfdr/hd3/enob etc with time.

I mean with multiple spectral measurements by charging the start time for DFT and finally plot sfdr with time.

Thanks,

vamshiky

  • Cancel
  • ShawnLogan
    ShawnLogan over 4 years ago

    Dear vamshiky,

    vamshiky said:

    1) calculator expression to find second/third/foruth maximum power tone from a spectral plot.

    Also the frequency bin location of Nth max tone (analogous to xmax for time domain signals)

    I think if you take a few minutes to think about your request, you will quickly realize that you need to write a custom SKILL or ocean based function. To my knowledge, an existing calculator function can not take the output of its dft() function and interactively scan the result to determine the ordered peak amplitudes and their respective frequencies. Further, as you have not indicated if the tones are integrally related to the sample frequency, their power may extend over several adjacent frequency bins. Hence, the entire power of a given tone is more accurately assessed by integrating over a number of frequency bins and not simply the amplitude of the contents on a single frequency bin. Hence, simply providing the power of a single frequency bin that meets your request may have limited accuracy.

    I do have an ocean procedure that does basically what you are interested, but cannot release the code as it was done for my company. However, I assembled an example using a Virtuoso schematic that generates a sum of sinusoidal tones, performed a transient simulation using a strobe period that includes the dft size to assure the dft() function does not need to interpolate the simulation time domain data. I then used the dft() function to determine its Fourier components. Figure 1 details a plot of the resulting Fourier components. The ocean procedure writes the peak amplitude data to a comma-separated file as well as printing its result to the stdio. Its printed output follows and you will observe that the amplitudes and frequencies it determines correspond to those in Figure 1.


    Simulation case number 1 has valid input.scs file.
    process_case:
    typicalmid
    num_dft_points = 32768
    tstop = 1000.000 ns.
    sim_temp = 25C.
    Number of dft points = 32768.
    Clipping data between 0.000 ns and 1000.000 ns (1000.0 ns window).
    Searching for tones whose amplitude exceeds minimum threshold of 10.0 mV...
    Number of data points in sdd5e_TB_test_fft_tran_single_freq waveform vout (32769) allow specified dft length of 32768.
    Tone 48: 46.67 mV at 48.0000 MHz
    Tone 60: 58.33 mV at 60.0000 MHz
    Tone 80: 333.33 mV at 80.0000 MHz
    Tone 100: 83.33 mV at 100.0000 MHz
    File name defined as: "sdd5e_TB_test_fft_tran_single_freq_vout_dft_spur_removed_dft_10.csv".


    vamshiky said:

    2) spectral measurement with time. Lets say  have a random signal and want to measure sfdr/hd3/enob etc with time.

    I mean with multiple spectral measurements by charging the start time for DFT and finally plot sfdr with time.

    This also cannot be performed with a single calculator function to my knowledge, but could be achieved with a custom SKILL or ocean procedure. Alternatively, one might create a number, N, of calculator dft() expressions to use in Assembler/Explorer with each expression containing one of the N start times you are interested. Please note that if you are changing the elapsed time over which the dft() is performed but maintain the same number of points when performing the dft(), without due care, some start times will likely require interpolating the data - which will degrade the accuracy of the dft() function. There is a Cadence Application note detailing accuracy considerations when using the dft() function at the On-line support URL:

    Getting accurate results when using the calculator DFT and the Fourier component.

    I hope this provides some insight into what you might need to get started vamshiky!

    Shawn

    Fullscreen example_tone_finder_output_sml_051321.txt Download
    Simulation case number 1 has valid input.scs file.
    process_case:
    typicalmid
    num_dft_points = 32768
    tstop = 1000.000 ns.
    sim_temp = 25C.
    Number of dft points = 32768.
    Clipping data between 0.000 ns and 1000.000 ns (1000.0 ns window).
    Searching for tones whose amplitude exceeds minimum threshold of 10.0 mV...
    Number of data points in sdd5e_TB_test_fft_tran_single_freq waveform vout (32769) allow specified dft length of 32768.
    Tone 48: 46.67 mV at 48.0000 MHz
    Tone 60: 58.33 mV at 60.0000 MHz
    Tone 80: 333.33 mV at 80.0000 MHz
    Tone 100: 83.33 mV at 100.0000 MHz
    File name defined as: "sdd5e_TB_test_fft_tran_single_freq_vout_dft_spur_removed_dft_10.csv".
    

    Figure 1

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • vamshiky
    vamshiky over 4 years ago in reply to ShawnLogan

    Hi Shawn,

    Thanks for the response, yes I understand  and need some skill/ocean script to get started here.

    -Vamshiky

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel

Community Guidelines

The Cadence Design Communities support Cadence users and technologists interacting to exchange ideas, news, technical information, and best practices to solve problems and get the most from Cadence technology. The community is open to everyone, and to provide the most value, we require participants to follow our Community Guidelines that facilitate a quality exchange of ideas and information. By accessing, contributing, using or downloading any materials from the site, you agree to be bound by the full Community Guidelines.

© 2025 Cadence Design Systems, Inc. All Rights Reserved.

  • Terms of Use
  • Privacy
  • Cookie Policy
  • US Trademarks
  • Do Not Sell or Share My Personal Information