• Jitter


    1、Jitter定义

     

    定义1(SONET规范):抖动可以定义为数字信号在重要时点上偏离理想时间位置的短期变化。

    2、Total Jitter表征方式

    Tektronix理解和检定定时抖动入门手册.pdf

    2.1、周期抖动(Period Jitter),与理想时钟无关,不累积

    Period jitter is defined as the maximum deviation of any clock period from its mean clock period(替代ideal clock period).

    Period jitter is typically specified over a set number of clock cycles. Jedec Specification, JESD65B, suggests, measuring jitter over 10,000 cycles when the clock is in a range of 10 to 100 MHz. However, if clock cycles are not specified, it is recommended to measure period jitter over 100,000 cycles to better represent jitter over an “infinite” time span.

    测量项目P1、P2和P3表明的周期性抖动用来测量波形中每个时钟周期的时间。这是可以执行的最简单、最直接的测量。通过调节示波器,并对无穷大余辉设置显示结果,可以显示略长于一个完整时钟周期的周期,进而可以估计峰到峰值。如果示波器在第一个边沿上触发(中间电平触发),可以在第二个边沿上查看周期性抖动,如下图所示。

    Tektronix理解和检定定时抖动入门手册.pdf

     测量实时波形中每个时钟和数据的周期的宽度。这是最早最直接的一种测量抖动的方式。这一指标说明了时钟信号每个周期的变化。

    2.1.1、Long term period jitter(K-Cycle jitter or K-Period Jitter),测量Crystal常用

    测量由参考点滞后相当数量K个Cycle(一般K去稍大的值,如500~1000)后时钟的抖动值。该抖动参数也是时钟稳定性的一个重要指标。

    Period Jitter也就是K=1的Long term period jitter。

    2.1.2、测试25MHz Crystal long term period jitter

    Step1:如下图连接被测设备(示波器探头电容尽量小),量测的点是crystal 的XI pin,探棒的接地点离测试点越近越好。接地线也尽可能的短,保证接地效果要好。且点在测点上的探棒要固定,防止接触不良造成jitter值不稳定。

    Step2:设定positive edge triggerDC coupling, autoset使整个clock波形在屏幕中间。并调整position 为50%和trigger点约为整个振幅的一半。

    Step3:设定delay time to 10us(相当于K=250,如果10us不是被测时钟周期的的整数倍N,则选择10us附近的值; 如11.0592MHz的时钟,选择10.037 us(相当于K=111))

    Step4:将水平(200ps)和垂直(10mv)的scale都调制最小。点击[Display] → [Display Persistence] → [Infinite Persistence],打开累积功能。就会观察到下图clock Jitter的抖动

    Step5:点击MeasureàWaveform Histogram。水平方向的宽度能完全覆盖jitter抖动的范围即可。但垂直方向的高度越扁越好(推荐2mv)。

    Step6:点击[Measurement Setup] → [Histog] → [PK-PK / Std Dev / Hits in Box] → [Statistics] → [off] → [setup] → [Histogram]。选择Hits(≥10khits)/Std Dev/Pk-Pk三个参数来量测jitter

    2.2、相邻周期抖动(Cycle-Cycle Jitter),与理想时钟无关,不累积,属于short-term jitter

    测量任意两个相邻时钟或数据的周期宽度的变动有多大,通过对周期抖动应用一阶差分运算,可以得到周期间抖动。这个指标在分析锁相环性质的时候具有明显的意义。

    https://www.nxp.com/docs/en/application-note/AN4056.pdf

    2.3、时间间隔误差(Time Interval Error,TIE),与理想时钟有关,且累积

    测量时钟或数据的每个活动边沿与其理想位置有多大偏差,它使用参考时钟或时钟恢复提供理想的边沿。TIE在通信系统中特别重要,因为它说明了周期抖动在各个时期的累计效应。

    某以太网产品datasheet中的TIE Jitter指标如下:

    https://html.alldatasheet.com/html-pdf/1131976/REALTEK/RTL8211F-CG/22938/65/RTL8211F-CG.html

    25KHz to 25MHz:指的是示波器测试TIE Jitter时,打开TIE Bandpass Filter,选择25KHz to 25MHz。

    Broadband:指的是示波器测试TIE Jitter时,关闭TIE Bandpass Filter。

    2.4、三者关系

    备注:上面的图片关于Period Jitter是错误的,显示的是单纯的Period,而不是Period Jitter。 

    J_{period,n} = P_{n} - P_{ideal}

    J_{cycle-cycle,n} = P_{n} - P_{n-1}

    J_{TIE,n} = \sum_{i=0}^{n}(P_{i} - P_{ideal} )

    例:某1MHz时钟(1000ns),测得的周期分别为990、990、990、990、1010、1010、1010、1010…

    Period

    990

    990

    990

    990

    1010

    1010

    1010

    1010

    1010

    1010

    1010

    1010

    990

    Period Jitter-10-10-10-101010101010101010-10

    Cycle-Cycle Jitter

    NA

    0

    0

    0

    20

    0

    0

    0

    0

    0

    0

    0

    -20

    TIE Jitter

    -10

    -20

    -30

    -40

    -30

    -20

    -10

    0

    10

    20

    30

    40

    30

    3、Jitter来源

    \LARGE Jitter_{Total} = Jitter_{Deterministic} +Jitter_{Random}数值直接相加即可

    其中,

    DCD是Duty-Cycle Distortion;

    DDJ也有称作Pattern-Dependent Jitter,或ISI。

    确定性抖动是非高斯分布的,且有界(Bounded)的。

    3.1、随机性抖动(Random Jitter):高斯分布

    3.2、周期性抖动(Periodic Jitter):正弦函数概率密度,不同于Period Jitter

    3.3、数据相关抖动(DDJ):多个独立分布(至少两个)

    图中PDF是与随机抖动卷积之后的结果,原本应该是两条竖线。

    3.4、占空比相关抖动(DCD):两个独立分布

     图中PDF是与随机抖动卷积之后的结果,原本应该是两条竖线。

    4、Peak to Peak和Std Dev(RMS)

    4.1、Standard deviation is same as RMS(Root Mmean Square),Why?

     当平均值\bar{X} = 0时,两者相等,而对于随机抖动而言,平均值可以认为等于0。

    4.2、Peak-Peak和RMS Random Jitter之间的关系

    两者换算的前提是Random Jitter满足高斯分布,另外必须在换算之前框定Probability of Error(如bit error,BER)。

    其中,DTD是信号的数据变换密度,对于数据data而言,DTD定义为边沿变化与比特数之间的比率(如sgmii的DTD=0.5,625MHz,1.25G 比特数据);对于时钟clock而言,DTD=1。由上面的公式可以得到波峰因数N。

    Jitter_{Peak-Peak} = N\times Jitter_{RMS}

    其中,N是波峰因数(crest factor)。

    例如,IEEE 802.3规定1000Base-X BER(Probability of Error)为1012" role="presentation">1012,因为1000Base-X信号的DTD=0.5,所以波峰因数N=14.069;当Jitter RMS为10ps时,Jitter Peak-Peak等于140.69ps。

    5、Phase Noise

    5.1、jitter和phase noise的关系

    • 数字电路:jitter较多
    • 模拟电路:phase noise较多

    5.2、Phase Noise to Jitter的转化

    1. function Jitter = Pn2Jitter(f, Lf, fc)
    2. %
    3. % Summary: Jitter (RMS) calculation from phase noise vs. frequency data.
    4. %
    5. % Calculates RMS jitter by integrating phase noise power data.
    6. % Phase noise data can be derived from graphical information or an
    7. % actual measurement data file.
    8. %
    9. % Usage:
    10. % Jitter = Pn2Jitter(f, Lf, fc)
    11. % Inputs:
    12. % f: Frequency vector (phase noise break points), in Hz, row or column.
    13. % Lf: Phase noise vector, in dBc/Hz, same dimensions, size(), as f.
    14. % fc: Carrier frequency, in Hz, a scalar.
    15. % Output:
    16. % Jitter: RMS jitter, in seconds.
    17. %
    18. % Examples:
    19. % [1] >> f = [10^0 10^1 10^3 10^4 10^6]; Lf = [-39 -73 -122 -131 -149];
    20. % >> Jitter = Pn2Jitter(f, Lf, 70e6)
    21. % Jitter = 2.3320e-011
    22. % Comparing fordahl application note AN-02-3{*} and jittertime.com{+}
    23. % calculations at fc = 70MHz
    24. % Pn2Jitter.m: 23.320ps
    25. % AN-02-3 (graphical method): 21.135ps
    26. % AN-02-3 (numerical method): 24.11ps
    27. % Aeroflex PN9000 computation: 24.56ps
    28. % JitterTime.com calculation: 23.32ps
    29. %
    30. % {*} fordahl Application Note AN-02-3:
    31. % "Phase noise to Jitter conversion"
    32. % http://fordahl.com/images/phasenoise.pdf
    33. % As of 11 May 2007 it also appears here:
    34. % http://www.metatech.com.hk/appnote/fordahl/pdf/e_AN-02-3.pdf
    35. % http://www.metatech.com.tw/doc/appnote-fordahl/e-AN-02-3.pdf
    36. %
    37. % {+} JitterTime Consulting LLC web calculator
    38. % http://www.jittertime.com/resources/pncalc.shtml
    39. % As of 5 May 2008
    40. %
    41. % [2] >> f = [10^2 10^3 10^4 10^5 10^6 10^7 4.6*10^9];
    42. % >> Lf = [-82 -80 -77 -112 -134 -146 -146 ]; format long
    43. % >> Jitter = Pn2Jitter(f, Lf, 2.25e9)
    44. % Jitter = 1.566598599875678e-012
    45. % Comparing ADI application note{$} calculations at fc = 2.25GHz
    46. % Pn2Jitter.m: 1.56659859987568ps
    47. % MT-008: 1.57ps
    48. % Raltron {&}: 1.56659857673259ps
    49. % JitterTime: 1.529ps--excluding the (4.6GHz, -146) data point,
    50. % as 1GHz is the maximum allowed
    51. % {$} Analog Devices, Inc. (ADI) application note MT-008:
    52. % "Converting Oscillator Phase Noise to Time Jitter"
    53. % http://www.analog.com/en/content/0,2886,760%255F%255F91502,00.html
    54. % {&} Raltron web RMS Phase Jitter calculator:
    55. % "Convert SSB phase noise to jitter"
    56. % http://www.raltron.com/cust/tools/osc.asp
    57. % Note: Raltron is restricted to f(min) = 10Hz;
    58. % therefore it cannot be used in this example [1].
    59. %
    60. % [3] >> f = [10^2 10^3 10^4 200*10^6]; Lf = [-125 -150 -174 -174];
    61. % >> Jitter = Pn2Jitter(f, Lf, 100e6)
    62. % Jitter = 6.4346e-014
    63. % Comparing ADI application note{$} calculations at fc = 100MHz
    64. % Pn2Jitter.m: 0.064346ps
    65. % MT-008: 0.064ps
    66. % JitterTime: 0.065ps
    67. %
    68. % Note:
    69. % f and Lf must be the same length, lest you get an error and this
    70. % Improbable Result: Jitter = 42 + 42i.
    71. %
    72. % (A spreadsheet, noise.xls, is available from Wenzel Associates, Inc. at
    73. % http://www.wenzel.com, "Allan Variance from Phase Noise."
    74. % It requires as input tangents to the plotted measured phase noise data,
    75. % with slopes of 1/(f^n)--not the actual data itself--for the
    76. % calculation. The app. note from fordahl discusses this method, in
    77. % addition to numerical, to calculate jitter. This graphical straight-
    78. % line approximation integration technique tends to underestimate total
    79. % RMS jitter.)
    80. %
    81. % [4] Data can also be imported directly from an Aeroflex PN9000 ASCII
    82. % file, after removing extraneous text. How to do it:
    83. % (1) In Excel, import the PN9000 data file as Tab-delimited data,
    84. % (2) Remove superfluous columns and first 3 rows, leaving 2 columns
    85. % with frequency (Hz) and Lf (dBc/Hz) data only.
    86. % (With the new PN9000 as of April 2006, only the first row
    87. % is to be removed, and there are only two columns.
    88. % I may take advantage of this in an updated version of this
    89. % program,thereby eliminating the need to edit the data),
    90. % (3) Save As -> Text (MS-DOS) (*.txt), e.g., a:\Stuff.txt,
    91. % (4) At the MATLAB Command Window prompt:
    92. % >> load 'a:\Stuff.txt' -ascii
    93. % Now Stuff is a MATLAB workspace variable with the
    94. % phase noise data,
    95. % (5) >> Pn2Jitter(Stuff(:,1), Stuff(:,2), fc);
    96. % (assuming fc has been defined)
    97. % One 10MHz carrier data set resulted in the following:
    98. % Pn2Jitter.m: 368.33fs
    99. % PN9000 calculation: 375fs
    100. %
    101. % Runs at least as far back as MATLAB version 5.3 (R11.1).
    102. %
    103. % Copyright (c) 2005 by Arne Buck, Axolotol Design, Inc. Friday 13 May 2005
    104. % arne (d 0 t) buck [a +] alum {D o +} mit (d 0 +} e d u
    105. % $Revision: 1.2 $ $Date: 2005/05/13 23:42:42 $
    106. %
    107. % License to use and modify this code is granted freely, without warranty,
    108. % to all as long as the original author is referenced and attributed
    109. % as such. The original author maintains the right to be solely
    110. % associated with this work. So there.
    111. % Bug fixes to resolve problematic data resulting in division by 0, or
    112. % excessive exponents beyond MATLAB's capability of realmin (2.2251e-308)
    113. % and realmax (1.7977e+308); no demonstrable effect on jitter calculation
    114. % AB 18May2005 Fix /0 bug for *exactly* -10.000dB difference in adjacent Lf
    115. % AB 24May2005 Fix large and small exponents resulting from PN9000 data
    116. % AB 11May2007 Improve documentation, update URLs
    117. % AB 5May2008 Verify and update URLs
    118. tic
    119. %% It's almost nine o'clock. We've got to go to work.
    120. L = length(Lf);
    121. if L == length(f)
    122. % Fix ill-conditioned data.
    123. I=find(diff(Lf) == -10); Lf(I) = Lf(I) + I/10^6; % Diddle adjacent Lf with
    124. % a diff=-10.00dB, avoid ai:/0
    125. % Just say "No" to For loops.
    126. lp = L - 1; Lfm = Lf(1:lp); LfM = Lf(2:L); % m~car+, M=cdr
    127. fm = f(1:lp); fM = f(2:L); ai = (LfM-Lfm) ./ (log10(fM) - log10(fm));
    128. % Cull out problematic fine-sieve data from the PN9000.
    129. Iinf = find( (fm.^(-ai/10) == inf) | fm.^(-ai/10)<10^(-300)); % Find Inf
    130. fm(Iinf) = []; fM(Iinf-1) = []; Lfm(Iinf) = []; LfM(Iinf-1) = [];
    131. ai(Iinf) = []; f(Iinf) = []; Lf(Iinf) = [];
    132. % Where's the beef?
    133. Jitter = ...
    134. 1/(2*pi*fc)*sqrt(2*sum( 10.^(Lfm/10) .* (fm.^(-ai/10)) ./ (ai/10+1)...
    135. .* (fM.^(ai/10+1) - fm.^(ai/10+1)) ));
    136. else
    137. disp('> > Oops!');
    138. disp('> > > The f&Lf vector lengths are unequal. Where''s the data?')
    139. Jitter = sqrt(sqrt(-12446784));
    140. end % if L
    141. toc

     备注:可以看到换算结果是有多种方法的,结果略有偏差!

    5.3、测试

    6、附录

    6.1、正弦函数概率密度函数

    All About the Acronyms: RJ, DJ, DDJ, ISI, DCD, PJ, SJ, …

  • 相关阅读:
    基于Spring Boot+Unipp的校园志愿者小程序(图形化分析)
    中小企业怎么实现数字化转型?有什么实用的工单管理系统?
    M的编程备忘录之C++——map和set
    猿如意|手把手教你下载、安装和配置PyCharm社区版
    ROS 文件系统
    can中继 智能CAN总线隔离中继器集线器CANBridge-300/400
    mysql根据逗号将一行数据拆分成多行数据,并展示其他列
    4.8烧饼排序问题
    Spring MVC 源码分析
    动态规划--完全背包问题详解2
  • 原文地址:https://blog.csdn.net/impossible1224/article/details/128156219