【问题标题】:How do I sync two or more waveforms in MATLAB?如何在 MATLAB 中同步两个或多个波形?
【发布时间】:2013-08-01 08:04:26
【问题描述】:

我会尝试更具体一点:我有几个信号的时间历史,它们具有几乎所有相同的行为(正弦波),但都在不同的时间点开始。如何自动检测初始时间延迟并将其删除,以便所有正弦波在同一时刻开始?

【问题讨论】:

  • 听起来您正在尝试重现示波器的行为。您能否发布可用于重现信号的图像或代码。 “几乎相同”不是很有帮助。在正弦波开始之前信号是静态的吗?
  • 我可以在 cmets 中发布图像吗?但无论如何,想象一下你有 3 个幅度和频率相同的正弦波,它们在不同的时刻开始。我想要做的是“同步”它们,使它们都在同一时刻开始。我已经手动切割了 3 个向量,从而消除了初始偏移量,但我正在寻找一个自动执行完全相同的功能的函数。我也尝试过使用“xcorr”,但我得到的回报要么没有真正的帮助,要么我不知道如何使用它。有什么帮助吗?

标签: matlab synchronization waveform


【解决方案1】:

如果您有两个信号 x 和 y,每个信号都是一个 n x 1 矩阵,其中 y 是 x 的移位版本:

[c,lags] = xcorr(x,y); % c is the correlation, should have a clear peak
s = lags(c==max(c)); % s is the shift you need
y2 = circshift(y,s); % y2 should now overlap x

(仅用于演示目的 - 我不建议您对实际数据进行 circshift)。在这种情况下,您正在寻找的偏移与 x 和 y 的长度相比,理想情况下应该相对较小。很大程度上取决于噪声水平和偏移的性质。

【讨论】:

    【解决方案2】:

    以下方法在低噪声条件和快速采样下工作得非常好,并且可能会根据您对准确性的要求进行。它使用一个简单的阈值,因此当事情变得嘈杂时会变得不准确。将thresh 调整为高于噪声的较低值。

    Nwav = 3;
    Np = 100;
    tmax = 50;
    A = 1000;
    Nz = Np/5;
    
    %%%%%%%%%%%%%%
    thresh = A/50;
    %%%%%%%%%%%%%%
    
    
    
    % generate some waveforms
    t = [0:tmax/(Np-1):tmax].';
    w = rand(1,Nwav);
    offs = round(rand(1,Nwav)*100);
    sig = [A*sin(t(1:end-Nz)*w) ; zeros(Nz,Nwav)] + randn(Np,Nwav);
    for ii=1:Nwav
        sig(:,ii) = circshift(sig(:,ii),round(rand()*Nz));
    end
    figure, plot(t,sig)
    hold on, plot(t,repmat(thresh,length(t),1),'k--')
    
    
    % use the threshold and align the waveforms
    for ii=1:Nwav
        [ir ic] = find(sig(:,ii)>thresh,1)
        sig(:,ii) = circshift(sig(:,ii),-ir+1);
    end
    figure, plot(t,sig)
    hold on, plot(t,repmat(thresh,length(t),1),'k--')
    

    还有改进的余地(噪声过滤、斜率检测),但这应该可以帮助您入门。

    我还建议您查看波形处理工具箱,例如 matlab central。

    【讨论】:

    • 感谢您的意见!我有点搞定了!一切都是自动的,除了门槛!有时我不得不调整它,因为噪音!我也在使用低通滤波器来降低噪音,但有时还不够!还是谢谢你
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-01-08
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多