matlab-analyze-ams-waveform

Analyze AMS simulation waveforms for phase noise, jitter, timing, and ADC/DAC metrics using Mixed-Signal Blockset.

995|122|Updated Apr 3, 2026
One-click install
npx skills add https://github.com/matlab/matlab-agentic-toolkit --skill matlab-analyze-ams-waveform
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: matlab-analyze-ams-waveform
Source: https://github.com/matlab/matlab-agentic-toolkit/tree/main/skills-catalog/rf-and-mixed-signal/matlab-analyze-ams-waveform
Command: npx skills add https://github.com/matlab/matlab-agentic-toolkit --skill matlab-analyze-ams-waveform

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve?

Analyzing analog/mixed-signal (AMS) simulation output from PLL, VCO, and clock circuits requires specialized measurement functions and careful handling of variable-step solver data, which is easy to get wrong with generic FFT-based approaches.

Core Features & Use Cases

  • Phase Noise & Jitter Measurement: Measure phase noise from time-domain voltage waveforms with phaseNoiseMeasure, convert phase noise profiles to integrated RMS jitter, and compute period/cycle-to-cycle jitter with clockJitterMeasure.
  • Timing & Resampling: Measure rise/fall time, duty cycle, and PLL lock time, and resample non-uniform variable-step data to a uniform grid with anti-aliased lowpassResample.
  • ADC/DAC Characterization: Compute INL/DNL with transition-based analysis and calibrate converters, plus import HSpice simulation results (.tr0, .ac0, .sw0).
  • Use Case: After running a PLL simulation in Simulink with Mixed-Signal Blockset, use this Skill to measure phase noise at specified frequency offsets, convert it to RMS jitter in picoseconds, and generate an HTML report with plots and observations.

Quick Start

Ask your agent to measure the phase noise and RMS jitter from the PLL simulation waveform in my workspace and generate an HTML report.

Frequently Asked Questions about matlab-analyze-ams-waveform

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I measure phase noise from a time-domain VCO or PLL simulation in MATLAB?

Use phaseNoiseMeasure with Type='Time', passing the time and voltage vectors, resolution bandwidth, and target frequency offsets. It extracts phase via zero-crossings internally, which handles variable-step solver output correctly.

How do I convert a phase noise profile to RMS jitter?

Call phaseNoiseToJitter with the frequency axis and phase noise profile, excluding the DC bin (freqAxis == 0) to avoid Inf results. It returns jitter in radians, degrees, and seconds, which you can report in picoseconds.

Why does my FFT-based phase noise analysis fail on Mixed-Signal Blockset simulation data?

Mixed-Signal Blockset uses a variable-step discrete solver, producing non-uniformly sampled data that breaks voltage-based FFT methods. Use phaseNoiseMeasure with Type='Time', or resample to a uniform grid first with lowpassResample.

Can I import HSpice simulation results into MATLAB for analysis?

Yes, use tr0Reader for transient (.tr0), ac0Reader for AC (.ac0), and sw0Reader for DC sweep (.sw0) files. Each converts the HSpice output to a .mat file that you then load for analysis.

Why does clockJitterMeasure return NaN for my clock signal?

clockJitterMeasure returns NaN when the threshold does not cross the signal. Set the threshold to the midpoint, (max(y)+min(y))/2, or the known logic level, and pass column vectors.

When should I not use histogram-based DNL for ADC characterization?

Avoid histogram-based DNL on Mixed-Signal Blockset simulation data because outputs are not uniform ramps, causing large errors. Use the inldnl function with transition-based analysis, which works on arbitrary input stimuli.