This function creates a user definable digital clock signal waveform with random jitter on it. This function can be used to generate waveform data that can be uploaded onto an arbitrary waveform generator (AWG) to simulate a real world digital clock with a known amount of jitter for noise immunity and other similar test applications. The random jitter is genrated using matlab's rand function. You can choose two different distributions for generating the random values: normal and uniform. For the normal distribution jitter Magnitude variable is used as the 3 sigma point which covers 99.7% of the area of the distribution. This funtion uses Matlab's built-in error function or erf() function. For information on the
erf() function http://www.mathworks.com/help/techdoc/ref/erf.html. For more information or questions on the technique and math used in this function to simulate real world jitter refer to my blog post:
http://gpete-neil.blogspot.com/2011/08/simulating-jitter-with-arbitrary.html or email me at: neil_forcier at agilent dot com. The following is a description of the input arguments and returned variables.
sRate: The sample rate of the waveform points. This value should be same
sample rate you plan to use with the AWG
sCount: the number of points needed in one clock cycle
cCycles: the number of clock cycles you want in the waveform. cCycles *
sCount gives you the number of points in the waveform
jMag: is the maximum value in seconds that the signal should vary +/- from
the ideal value. It is used to set the limits of the uniform distribution
and the 3 sigma point of the normal distribution. jMag must be less than
or equal to 80 percent of the pulse width or one half cycle period.
Otherwise it will be set to 80 percent.
dist: Used to specify the type of distribution to be used by the random()
function. There are two distributions normal and uniform.
-->to select normal distribution enter string 'normal' or 'norm'
-->to select uniform distribution enter string 'uniform'
-->the default distribution is normal
ampl: This is the returned array of digital clock waveform amplitude
points. In terms of a plot this would be the y axis points
time: This is the array of the timing points that correspond to the array
of amplitude points. Some AWGs use the timing points to set their sample
rate. Most AWGs do not require the timing points and the sample rate can
be set manually on the front panel or remotely with a command
Neil Forcier (2021). Clock Signal Jitter Simulation (https://www.mathworks.com/matlabcentral/fileexchange/32671-clock-signal-jitter-simulation), MATLAB Central File Exchange. Retrieved .
MATLAB Release Compatibility
Platform CompatibilityWindows macOS Linux
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!Start Hunting!