Matlab 如何校准/同步两个信号?

Matlab 如何校准/同步两个信号?,matlab,data-synchronization,Matlab,Data Synchronization,我有两个信号A和B(请参见附件),这两个信号是在同一事件中从不同的设备以不同的采样频率记录的 我正试图通过互相关方法将两个信号对齐。但是,当使用alignsignals功能时,它实际上似乎会延迟更多的信号: load A load B % Sampling frequencies Fs_A = 1000; % Fs_B = 1926; % 1925.93 Hz is the one provided by the device % Resample signal A A = resamp

我有两个信号A和B(请参见附件),这两个信号是在同一事件中从不同的设备以不同的采样频率记录的

我正试图通过互相关方法将两个信号对齐。但是,当使用alignsignals功能时,它实际上似乎会延迟更多的信号:

load A 
load B

% Sampling frequencies
Fs_A = 1000; % 
Fs_B = 1926; % 1925.93 Hz is the one provided by the device

% Resample signal A
A = resample(A, Fs_B, Fs_A);

% Plot of the two signals "delayed"
figure(1)
plot(A)
hold
plot(B*1000)

% Aling both signals
X = A; 
Y = B;

[Xa,Ya,D] = alignsignals(X,Y,[],'truncate');
figure(2) % plot both signals "aligned" 
plot(Xa)
hold
plot(Ya*1000)
我也尝试过使用xcorr函数,结果类似:

load A 
load B

% Sampling frequencies
Fs_A = 1000; % 
Fs_B = 1926; % 1925.93 Hz is the one provided by the device

% Resample signal A
A = resample(A, Fs_B, Fs_A);

% Plot to visualize that one signal is delayed 
figure(1)
plot(A)
hold
plot(B*1000)

% Aling both signals using xcorr

[C,lag] = xcorr(A,B);
figure(2)
plot(lag,C);
[M,I] = max(C);
D = lag(I);
figure(3),plot(1:length(A), A, 'b',1+abs(D):length(B)+abs(D), B*1000, 'r'), title(' "Synchronised" signals ');
我犯了什么错误吗


谢谢

请看信号A和B的示例:为什么不尝试在同一时间轴上以两者的最大采样频率对它们进行插值?这将更容易,但长度(A)和长度(B)是不同的。这将如何解决?感谢您使用
interp1(x,v,xq)
并且在xq向量中,对采样频率为1926的两个信号使用相同的数据点,两个信号的合成向量将具有相同的结果请,看一个信号A和B的例子:你们为什么不试着用这两个信号的最大采样频率在同一时间轴上插值它们?这将更容易,但长度(A)和长度(B)是不同的。这将如何解决?感谢您使用
interp1(x,v,xq)
并且在xq向量中,对采样频率为1926的两个信号使用相同的数据点,两个信号的合成向量将具有相同的结果