私は 2 つの信号を持っています。そのうちの 1 つは 500 Hz のサンプリング レートを持ち、もう 1 つは (ほぼ、正確ではありませんが) 115 Hz のサンプリング レートを持っています。500 Hz 信号のイベントを検出するには、115 Hz 信号をアップサンプリングする必要がありますが、データにドリフトがあるようです。これをより明確にするために、500 Hz 信号と 115 Hz でも簡単に検出できるイベントがありますが、500 Hz 信号の実際のイベントに対する (115 Hz の) マーカーの位置は、アップサンプリング後、信号全体で変化します。私のコードは次のようになります。
counter = 1;
for i = 1:length(time)
position = round(time(i)*fs);
if position ~= 0 && position <= size(data,1)
convertedData(i,:) = data(position,:);
elseif position > size(data,1)
convertedData(i,:) = data(size(data,1),:);
else
convertedData(i,:) = data(1,:);
end
end
注: マーカーが 500 Hz 信号のイベントに対して常に同じ位置に配置されている限り、正確にいつマーカーが配置されるかは問題ではないため、ポイントを補間する必要はありません。上記のコードで、'time' は 500 Hz 信号と同じ要素数 (0 から信号の終わりまで) の配列、'fs' はマーカー信号のサンプリング周波数 (115 Hz 付近)、 'data' はマーカー信号です。
ご協力ありがとうございました!