Clock and Jitter Phase Noise
1、Jitter定義
定義1(SONET規范):抖動可以定義為數字信號在重要時點上偏離理想時間位置的短期變化。
2、Total Jitter表征方式
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表明的周期性抖動用來測量波形中每個時鐘周期的時間。這是可以執行的最簡單、最直接的測量。通過調節示波器,并對無窮大余輝設置顯示結果,可以顯示略長于一個完整時鐘周期的周期,進而可以估計峰到峰值。如果示波器在第一個邊沿上觸發(中間電平觸發),可以在第二個邊沿上查看周期性抖動,如下圖所示。
?測量實時波形中每個時鐘和數據的周期的寬度。這是最早最直接的一種測量抖動的方式。這一指標說明了時鐘信號每個周期的變化。
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 trigger和DC 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
測量任意兩個相鄰時鐘或數據的周期寬度的變動有多大,通過對周期抖動應用一階差分運算,可以得到周期間抖動。這個指標在分析鎖相環性質的時候具有明顯的意義。
2.3、時間間隔誤差(Time Interval Error,TIE),與理想時鐘有關,且累積
測量時鐘或數據的每個活動邊沿與其理想位置有多大偏差,它使用參考時鐘或時鐘恢復提供理想的邊沿。TIE在通信系統中特別重要,因為它說明了周期抖動在各個時期的累計效應。
2.4、三者關系
備注:上面的圖片關于Period Jitter是錯誤的,顯示的是單純的Period,而不是Period Jitter。?
例:某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 | -10 | 10 | 10 | 10 | 10 | 10 | 10 | 10 | 10 | -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來源
其中,
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
4.1、Standard deviation is same as RMS(Root Mmean Square),Why?
?當平均值時,兩者相等,而對于隨機抖動而言,平均值可以認為等于0。
5、Phase Noise
5.1、jitter和phase noise的關系
- 數字電路:jitter較多
- 模擬電路:phase noise較多
5.2、Phase Noise to Jitter的轉化
function Jitter = Pn2Jitter(f, Lf, fc) % % Summary: Jitter (RMS) calculation from phase noise vs. frequency data. % % Calculates RMS jitter by integrating phase noise power data. % Phase noise data can be derived from graphical information or an % actual measurement data file. % % Usage: % Jitter = Pn2Jitter(f, Lf, fc) % Inputs: % f: Frequency vector (phase noise break points), in Hz, row or column. % Lf: Phase noise vector, in dBc/Hz, same dimensions, size(), as f. % fc: Carrier frequency, in Hz, a scalar. % Output: % Jitter: RMS jitter, in seconds. % % Examples: % [1] >> f = [10^0 10^1 10^3 10^4 10^6]; Lf = [-39 -73 -122 -131 -149]; % >> Jitter = Pn2Jitter(f, Lf, 70e6) % Jitter = 2.3320e-011 % Comparing fordahl application note AN-02-3{*} and jittertime.com{+} % calculations at fc = 70MHz % Pn2Jitter.m: 23.320ps % AN-02-3 (graphical method): 21.135ps % AN-02-3 (numerical method): 24.11ps % Aeroflex PN9000 computation: 24.56ps % JitterTime.com calculation: 23.32ps % % {*} fordahl Application Note AN-02-3: % "Phase noise to Jitter conversion" % http://fordahl.com/images/phasenoise.pdf % As of 11 May 2007 it also appears here: % http://www.metatech.com.hk/appnote/fordahl/pdf/e_AN-02-3.pdf % http://www.metatech.com.tw/doc/appnote-fordahl/e-AN-02-3.pdf % % {+} JitterTime Consulting LLC web calculator % http://www.jittertime.com/resources/pncalc.shtml % As of 5 May 2008 % % [2] >> f = [10^2 10^3 10^4 10^5 10^6 10^7 4.6*10^9]; % >> Lf = [-82 -80 -77 -112 -134 -146 -146 ]; format long % >> Jitter = Pn2Jitter(f, Lf, 2.25e9) % Jitter = 1.566598599875678e-012 % Comparing ADI application note{$} calculations at fc = 2.25GHz % Pn2Jitter.m: 1.56659859987568ps % MT-008: 1.57ps % Raltron {&}: 1.56659857673259ps % JitterTime: 1.529ps--excluding the (4.6GHz, -146) data point, % as 1GHz is the maximum allowed % {$} Analog Devices, Inc. (ADI) application note MT-008: % "Converting Oscillator Phase Noise to Time Jitter" % http://www.analog.com/en/content/0,2886,760%255F%255F91502,00.html % {&} Raltron web RMS Phase Jitter calculator: % "Convert SSB phase noise to jitter" % http://www.raltron.com/cust/tools/osc.asp % Note: Raltron is restricted to f(min) = 10Hz; % therefore it cannot be used in this example [1]. % % [3] >> f = [10^2 10^3 10^4 200*10^6]; Lf = [-125 -150 -174 -174]; % >> Jitter = Pn2Jitter(f, Lf, 100e6) % Jitter = 6.4346e-014 % Comparing ADI application note{$} calculations at fc = 100MHz % Pn2Jitter.m: 0.064346ps % MT-008: 0.064ps % JitterTime: 0.065ps % % Note: % f and Lf must be the same length, lest you get an error and this % Improbable Result: Jitter = 42 + 42i. % % (A spreadsheet, noise.xls, is available from Wenzel Associates, Inc. at % http://www.wenzel.com, "Allan Variance from Phase Noise." % It requires as input tangents to the plotted measured phase noise data, % with slopes of 1/(f^n)--not the actual data itself--for the % calculation. The app. note from fordahl discusses this method, in % addition to numerical, to calculate jitter. This graphical straight- % line approximation integration technique tends to underestimate total % RMS jitter.) % % [4] Data can also be imported directly from an Aeroflex PN9000 ASCII % file, after removing extraneous text. How to do it: % (1) In Excel, import the PN9000 data file as Tab-delimited data, % (2) Remove superfluous columns and first 3 rows, leaving 2 columns % with frequency (Hz) and Lf (dBc/Hz) data only. % (With the new PN9000 as of April 2006, only the first row % is to be removed, and there are only two columns. % I may take advantage of this in an updated version of this % program,thereby eliminating the need to edit the data), % (3) Save As -> Text (MS-DOS) (*.txt), e.g., a:\Stuff.txt, % (4) At the MATLAB Command Window prompt: % >> load 'a:\Stuff.txt' -ascii % Now Stuff is a MATLAB workspace variable with the % phase noise data, % (5) >> Pn2Jitter(Stuff(:,1), Stuff(:,2), fc); % (assuming fc has been defined) % One 10MHz carrier data set resulted in the following: % Pn2Jitter.m: 368.33fs % PN9000 calculation: 375fs % % Runs at least as far back as MATLAB version 5.3 (R11.1). % % Copyright (c) 2005 by Arne Buck, Axolotol Design, Inc. Friday 13 May 2005 % arne (d 0 t) buck [a +] alum {D o +} mit (d 0 +} e d u % $Revision: 1.2 $ $Date: 2005/05/13 23:42:42 $ % % License to use and modify this code is granted freely, without warranty, % to all as long as the original author is referenced and attributed % as such. The original author maintains the right to be solely % associated with this work. So there. % Bug fixes to resolve problematic data resulting in division by 0, or % excessive exponents beyond MATLAB's capability of realmin (2.2251e-308) % and realmax (1.7977e+308); no demonstrable effect on jitter calculation % AB 18May2005 Fix /0 bug for *exactly* -10.000dB difference in adjacent Lf % AB 24May2005 Fix large and small exponents resulting from PN9000 data % AB 11May2007 Improve documentation, update URLs % AB 5May2008 Verify and update URLs tic %% It's almost nine o'clock. We've got to go to work. L = length(Lf); if L == length(f) % Fix ill-conditioned data. I=find(diff(Lf) == -10); Lf(I) = Lf(I) + I/10^6; % Diddle adjacent Lf with% a diff=-10.00dB, avoid ai:/0 % Just say "No" to For loops. lp = L - 1; Lfm = Lf(1:lp); LfM = Lf(2:L); % m~car+, M=cdr fm = f(1:lp); fM = f(2:L); ai = (LfM-Lfm) ./ (log10(fM) - log10(fm)); % Cull out problematic fine-sieve data from the PN9000. Iinf = find( (fm.^(-ai/10) == inf) | fm.^(-ai/10)<10^(-300)); % Find Inf fm(Iinf) = []; fM(Iinf-1) = []; Lfm(Iinf) = []; LfM(Iinf-1) = []; ai(Iinf) = []; f(Iinf) = []; Lf(Iinf) = []; % Where's the beef? Jitter = ...1/(2*pi*fc)*sqrt(2*sum( 10.^(Lfm/10) .* (fm.^(-ai/10)) ./ (ai/10+1)....* (fM.^(ai/10+1) - fm.^(ai/10+1)) )); elsedisp('> > Oops!');disp('> > > The f&Lf vector lengths are unequal. Where''s the data?')Jitter = sqrt(sqrt(-12446784)); end % if L toc?備注:可以看到換算結果是有多種方法的,結果略有偏差!
5.3、測試
?
6、附錄
6.1、正弦函數概率密度函數
總結
以上是生活随笔為你收集整理的Clock and Jitter Phase Noise的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: CSS 弹性盒子布局详解
- 下一篇: 计算机教师幽默介绍,老师幽默的自我介绍6