Matlab では、次のように finddelay を使用してオーディオ信号のペア (同じ周波数) をクリップ/トリムして、それらが整列し、同じ長さになるようにすることができます。
d12 = finddelay(s1,s2);
if(d12 < 1)
start1 = -d12+1;
start2 = 1;
end1 = length(s1);
end2 = min(length(s1(-d12+1:end)), length(s2));
else
start1 = 1;
start2 = d12+1;
end1 = min(length(s2(d12+1:end)), length(s1));
end2 = length(s2);
end
clipped_s1 = s1(start1:end1);
clipped_s2 = s2(start2:end2);
3 つ以上のシグナルで同じことをしたいのですが、これまでのところ、シグナルのペア、つまり d12、d23、d31 の開始/終了境界を取り、開始インデックスの最大値と最小値を取得しようとしていました。対応するインデックスの終了インデックス。ただし、s1、s2、s3 の境界が等しいわけではありません。根本的に何かを誤解しています。誰にもアドバイスはありますか?