You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Matlab逻辑索引问题:不同采样率信号的掩码处理

解决Matlab中不同采样率信号的掩码处理问题

问题说明

  • 现有两个时间信号y1(t1)和y2(t2),t1的采样率远高于t2
  • 需求:基于y2的值对y1进行掩码处理——当y2为0时,将对应时间区间内的y1全部置0,最终得到与t1同时间轴的信号y3
  • 遇到的问题:由于两者采样率不同,无法直接匹配时间区间完成掩码操作

初始代码

t1 = 0:0.01:10;
y1 = sin(t1*10);
% plot(t1, y1)

t2 = 0:1:10;
y2 = t2.*[0 1 1 0 0 1 1 1 1 0 0];
% stairs(t2, y2)

plot(t1, y1)
hold on
stairs(t2, y2)
hold off

% I need a y3 with time t1.
% y3 is zero when y2 is zero.
% y3 = ???

当前信号展示

当前输出:y1(蓝色)与y2(橙色)

预期效果

预期输出:掩码后的y3(绿色)

解决方案

通过插值将低采样率的y2映射到高采样率t1的时间轴,采用previous插值规则(每个t1时刻取其最近的前一个t2时刻的y2值),确保时间区间的对应关系,再生成掩码对y1进行逐点处理。

最终实现代码

t1 = 0:0.01:10;
y1 = sin( t1 * 10 );

t2 = 0:1:10;
y2 = t2 .* [ 0 1 1 0 0 1 1 1 1 0 0 ];

% 将y2插值到t1时间轴,保持区间对应
y2_us = interp1( t2, y2, t1,'previous' );

% 生成掩码并处理y1得到y3
y3 = y1 .* ( y2_us > 0 );

% 绘图展示结果
plot( t1, y1 )
hold on
stairs( t2, y2 )
plot( t1, y3, 'LineWidth', 4, 'Color', [0, 0.39, 0] )
hold off

最终效果展示

最终效果:y1(蓝色)、y2(橙色)与y3(绿色)

内容的提问来源于stack exchange,提问作者Dr. Manuel Kuehner

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.23 15:03:28