预处理信号——将信号与不同开始时间对齐

文章介绍了在处理多个传感器异步采集的数据时,如何使用MATLAB的SignalProcessingToolbox进行信号同步。通过finddelay函数计算信号延迟,然后利用alignsignals函数对信号进行延迟对齐,确保所有信号基于同一时间基准。这种方法对于分析如汽车过桥引起的不同位置振动信号的集成至关重要。
摘要由CSDN通过智能技术生成

许多测量涉及多个传感器异步采集的数据。如果您要集成信号,您必须同步它们。Signal Processing Toolbox(信号处理工具箱)提供的一些函数可实现此目的。

例如,假设有一辆汽车经过一座桥。它产生的振动由位于不同位置的三个相同传感器进行测量。信号有不同到达时间。

将信号加载到 MATLAB® 工作区并进行绘图。

load relatedsig

ax(1) = subplot(3,1,1);
plot(s1)
ylabel('s_1')

ax(2) = subplot(3,1,2);
plot(s2)
ylabel('s_2')

ax(3) = subplot(3,1,3);
plot(s3)
ylabel('s_3')
xlabel('Samples')

linkaxes(ax,'x')%同步多个坐标区的范围

 信号 s1 落后于 s2,但领先于 s3。可以使用 finddelay 精确计算延迟。您可以看到,s2 领先于 s1 350 个样本,s3 落后于 s1 150 个样本,而 s2 领先于 s3 500 个样本。

t21 = finddelay(s2,s1)
t31 = finddelay(s3,s1)
t32 = finddelay(s2,s3)

输出: 

 

截断对齐:

通过保持最早的信号不动并截除其他向量中的延迟来对齐信号。滞后需要加 1,因为 MATLAB 使用从 1 开始的索引。此方法使用最早的信号到达时间(即 s2 的到达时间)作为基准来对齐信号。 

axes(ax(1))
plot(s1(t21+1:end))

axes(ax(2))
plot(s2)

axes(ax(3))
plot(s3(t32+1:end))

 延迟对齐:

使用 alignsignals 对齐信号。该函数会延迟较早的信号,以使用最晚的信号到达时间(即 s3 的到达时间)作为基准。

alignsignals:通过延迟最早的信号对齐两个信号

[Xa, Ya] = alignsignals(X,Y):估计两个输入信号X和Y之间的延迟D,并返回对齐的信号Xa和Ya。如果Y对x延时,那么D是正的,x被D个样本延时。如果Y相对于x前进,那么D为负,Y被-D样本延迟。

[x1,x3] = alignsignals(s1,s3);
x2 = alignsignals(s2,s3);

axes(ax(1))
plot(x1)

axes(ax(2))
plot(x2)

axes(ax(3))
plot(x3)

这些信号现在已同步,可用于进一步处理。 

 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

抱抱宝

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值