Matlab测量脉冲宽度并随时间绘制抖动评估图

时间:2015-11-26 15:41:19

标签: matlab plot pwm jitter

我想测量信号的低脉冲长度,然后绘制它以查看在该信号的运行时间内pwm比率是否发生变化。

使用示波器获取信号并将其存储为 cvs 文件,通道2是一个脉冲信号,我想评估脉冲在哪些边界稳定。

with d = dutycycle(CH2)

我可以从我的信号中获得工作周期

如何将占空比或低脉冲时间绘制为图形线或字段以查看其随时间的变化?

两个测试文件都在这里:

1 个答案:

答案 0 :(得分:0)

你的信号非常干净,所以你可以使用简单的阈值处理。如果你需要处理更多的噪音,这是一种方式。

基本方法是分段分解信号(进入一系列恒定段)。变更点识别为您提供每个段的开始和结束时间以及幅度。

enter image description here

然后,所有偶数时间都是上升沿,奇数时间是下降沿(反之亦然)。这两个矢量之间的差异给出了每个脉冲的高持续时间和低持续时间,并且上升沿之间的差异给出了每个脉冲的持续时间。

rising = TIME(1+est.time(2:2:end));
falling = TIME(1+est.time(1:2:end));
hightime = falling(2:end) - rising(1:end-1); 
lowtime = rising(2:end) - falling(2:end);
plot([lowtime hightime diff(rising)])
legend('Low Time', 'High Time', 'Pulse Duration')

Analysis Results: Low, High, and Cycle durations

占空比为hightime ./ diff(rising),您可以继续进行抖动计算。

为了进行分割,我使用了我的论文中的代码,但是这个简单的情况(分段常数)已经被Killick等人解决了。 al(2012)

  

R. Killick, P. Fearnhead, and I. A. Eckley. Optimal detection of changepoints with a linear computational cost. Journal of the American Statistical Association, 107(500):1590–1598, Dec 2012. doi: 10.1080/01621459.2012.737745.