188金博bet

AA相位字幕通常由电源噪声、信号路由或其他信号引起的时钟抖动会严重降低系统的性能。用于高速模拟应用的FPGA中的时钟生成和分配特别容易出现这些问题。它们表现为相位噪声或时钟抖动,这是信号周期随时间的随机变化。显然,优化设计需要验证这种时钟的完整性。

虽然有几种测量相位抖动的方法,但通常使用频谱分析仪进行测量。然而,精细测量所需的高端频谱分析仪的价格对于许多应用来说是一个令人望而却步的因素。其他相位测量技术要么复杂,要么根本不准确。本文旨在描述一种简单、准确、经济的方法来测量该参数。

图1图1:示波器上显示的时钟抖动188bet金博宝登录对于较大的抖动,可用示波器测量参数。188bet金博宝登录图1显示了这种测量的一个示例。测量的准确性取决于示波器的采样率和信号触发。188bet金博宝登录例如,假设噪声分布为高斯分布,1 GHz采样率将测量值限制在约3 ns峰对峰或0.5 ns RMS。触发示波器的不确定性可以使这个数字翻倍到约6 ns。188bet金博宝登录这假定示波器的模数转换器的时钟抖动可以忽略不计。188bet金博宝登录显然,对于亚纳秒抖动测量,示波器的性能必须明显更好,这使得它昂贵,因为它是频谱分析仪的情况。188bet金博宝登录

图2图2:基于触发机制的相位抖动测量对于相位噪声测量适用的周期性信号,有效采样率超过50 GHz的示波器提供了昂贵解决方案的理想替代方案。188bet金博宝登录本文中使用的Analog Arts公司的SA987就是这样一个示波器。188bet金博宝登录当信号本身触发时,它使用低噪声同步机制。这些特性使得测量的精度和分辨率更加精细。在信号的一个边缘上触发,相位噪声是相对边缘随时间轨迹的时间宽度,如图2所示。在这种情况下,数字仪采样抖动、示波器时基分辨率和触发噪声是主要的限制因素。188bet金博宝登录对于这种设置,大约100皮秒的测量分辨率是可以实现的。

进行更精细的测量需要改变设置和简单的数学运算。该技术依赖于被测信号和干净的参考信号之间的相位测量。使用示波器的另一个通道捕获FPGA的主时钟提供了这个参考信号。188bet金博宝登录通过将捕获的信号相互关联,可以精确地计算出它们的相位差。相关性是一个简单的数学运算。该操作的理论和应用在许多文章中都有详细的解释。

图3图3:基于相关技术研制的精密相位分析仪模拟艺术c#程序[2]是一个植入相关。每次捕获信道上的信号时,程序就计算信道之间的相位。这个相位的变化构成了被测时钟上的噪声。这种技术的一个重要特征是它消除了触发的需要,这是前一种方法中的一个关键限制因素。此外,由于示波器的两个通道使用相同的数字化时钟,采样相关的误差被过滤掉了。188bet金博宝登录图3展示了基于该原理开发的完整设备。测量过程是完全自动化和准确的。对于100 GHz采样率,相位噪声测量约为10皮秒。

还有其他技术可以将测量性能提高到亚皮秒级。这是本系列下一篇文章的主题。

作者:Hamid Danesh(项目工程师;Analog Arts Inc.)

www.analogarts.com/

参考文献

[1]维基百科“相关性函数”-https://en.wikipedia.org/wiki/Correlation_function


[2]带有相关函数的c#程序代码

int horizontal_resolution;

int [] ch1_signal;

int [] ch2_signal;

双signal_period;

Double sampling_res;//采样分辨率

Double normalized_period = signal_period / sampling_res

Int number_of_period = (Int)(horizontal_resolution / normalized_period);//周期数

//计算使用多少数据点来捕获尽可能接近

//转换为整数个数

int span = (int)数学。Round(number_of_period * normalized_period);

If (span >= horizontal_resolution || span <= 0)

Span = horizontal_resolution;

//计算每个信号的平均值

双信号1_avg = 0;

双信号2_avg = 0;

For (int I = 0;I < span;我+ +)

Signal1_avg += ch1_signal[i];

Signal2_avg += ch2_signal[i];

Signal1_avg /= span;

Signal2_avg /= span;

//计算最大相关性

Int best_offset = 0;

Double best_corr = 0;

For (int di = 0;Di < span;di + +)

双corr = 0;

Int count = 0;

For (int I = 0;I < span;我+ +)

Int j = I + di;

If (j >= horizontal_resolution)

打破;

Double ch1 = ch1_signal[i] - signal1_avg;

Double ch2 = ch1_signal[j] - signal2_avg;

Corr += ch1 * ch2;

数+ +;

Corr /=计数;

If (corr > best_corr)

Best_corr = corr;

Best_offset = di;


相关文章:

广告