Matlab测量脉冲宽度并绘制随时间变化的曲线图,以评估抖动

Matlab测量脉冲宽度并绘制随时间变化的曲线图,以评估抖动,matlab,plot,pwm,jitter,Matlab,Plot,Pwm,Jitter,我想测量一个信号的低脉冲长度,然后绘制它,看看pwm比在该信号的运行期间是否发生变化 它自身的信号是使用示波器采集的,并存储为cvs文件,通道2是一个脉冲信号,我想在这里评估脉冲在哪个边界上稳定或不稳定 带d=占空比循环(CH2) 我可以从信号中得到占空比 如何将占空比或低脉冲时间绘制为图形线或字段,以查看其随时间的变化 用于测试的两个文件都位于此处: 您的信号非常清晰,因此您可以使用简单的阈值设置。如果你需要处理更多的噪音,这里有一种方法 基本方法是将信号分段分解(分解为一系列常量段)。

我想测量一个信号的低脉冲长度,然后绘制它,看看pwm比在该信号的运行期间是否发生变化

它自身的信号是使用示波器采集的,并存储为cvs文件,通道2是一个脉冲信号,我想在这里评估脉冲在哪个边界上稳定或不稳定

带d=占空比循环(CH2)

我可以从信号中得到占空比

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

用于测试的两个文件都位于此处:


    • 您的信号非常清晰,因此您可以使用简单的阈值设置。如果你需要处理更多的噪音,这里有一种方法

      基本方法是将信号分段分解(分解为一系列常量段)。变更点标识为您提供每个段的开始和结束时间以及大小

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

      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')
      

      然后,占空比为
      高位。/diff(上升)
      ,您可以继续进行抖动计算

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


      我发现,用“代码”p=pulsewidth(CH2,TIME,'极性','负');'代码“我可以测量我绝对想要的低脉冲长度。。。我的下一个问题是如何在脉冲信号上均匀地间隔低时间,以获得脉冲长度变化的感觉。你用交替的颜色绘图吗?看起来很酷!。。谢谢你的意见。。。我尝试了Matlabs Fileexchange中的peakfinder函数,因为在labview安装中找不到变更点标识^^