新浪博客

jitter和noise计算相关

2020-09-09 14:26阅读:
噪声转换计算器
https://www.jitterlabs.com/support/calculators


如下图,定义每一段下边围得面积依次为A1/A2/A3/A4/A5/A6;
令A=10*lg(A1+...+A6);
则,RMS jitter(弧度)=√2*10^(A/10)
RMS jitter (秒) =【√2*10^(A/10)】/(2*╥*f₀),f₀为中心频率


分开依次算每一部分的话,Toltal RMS Jitter=√(各个频率间隔内jitter的平方之和); jitter和noise计算相关
附噪声详解两篇:
https://tech.hqew.com/fangan_118555
https://blog.csdn.net/yshhsh/article/details/47381687
先放一张忘了从哪扒下来的图:
r />
基本思路
分段求积分相噪,相加得整体的积分相噪,进而得到以弧度为单位的相位抖动,最终转换为以时间为单位的Jitter。
MATLAB代码
function ph2jt(fc, f, ph)
% ph2jt(fc, f, ph)
% fc - carrier frequency
% f - offset frequency
% ph - phase noise at offset frequency
N = length(f);
if(ph(1) > 0)
for i=1:N
ph(i) = -ph(i);
end
end
a = zeros(1, N-1);
a_dBc = zeros(1, N-1);
jt = zeros(1, N-1);
for i=2:N
f0 = f(i-1);
f1 = f(i);
ph0= 10^(ph(i-1)/10);
ph1= 10^(ph(i)/10);
k = 10*log10(ph1/ph0)/log10(f1/f0);
a(i-1) = 10*f1*ph0*(f1/f0)^(k/10)/(10+k) - 10*f0*ph0/(10+k);
a_dBc(i-1) = 10*log10(a(i-1));
jt(i-1) = sqrt(2*a(i-1))/(2*pi*fc);
end
a_tol = sum(a);
a_tol_dBc = 10*log10(a_tol);
jt_tol = sqrt(2*a_tol)/(2*pi*fc);
for i=1:N-1
display(sprintf('%g ~ %g\t%g\t%f\t%g', f(i), f(i+1), a(i), a_dBc(i), jt(i)));
end


display(sprintf('Total\t\t%g\t%f\t%g', a_tol, a_tol_dBc, jt_tol));

我的更多文章

下载客户端阅读体验更佳

APP专享