如何找到特定间隔的两个正弦波之间的相关性并将值保存在数组中?

How to find correlation between two sine waves for specific intervals and save the value in an array?

我创建了两个不同频率的正弦波。两个波的时间周期都是 2 秒或 2000 毫秒。当我找到整个时间段的相关值时,代码运行良好。但是我想在每 200 毫秒间隔后获得相关值。这意味着我需要一个可以在整个 2000 毫秒内存储 10 个相关值的数组。这是我如何计算 2000 毫秒时间段相关性的代码。

delta=0.005; %200 hz Fs 
samples=200;
t=0:delta:delta*(samples-1); % Time Samples 1second
ch1 = sin(2*pi*10*t)';
ch2 = sin(2*pi*20*t)';
cc=corr2{ch1,ch2};
figure; bar(cc)

请帮助我如何创建一个数组来计算每 200 毫秒的相关值。

我不确定你的 corr2{} 到底做了什么,但关于你的问题,这会创建你的 200 毫秒步骤:

与您的评论相关,我添加了带有 N2 和 N3 的部分,其中 N3_array 现在包含 200 毫秒内 N3 的总和

clear all
delta=0.005; %200 hz Fs 
samples=200;
t=0:delta:delta*(samples-1); % Time Samples 1second
ch1 = sin(2*pi*10*t)';
ch2 = sin(2*pi*20*t)';
data=[ch1 ch2];

corr_period = 0.2; % in seconds (200 ms)
nsteps = corr_period/delta;
icorr = 1;
cc = zeros(ceil(samples/nsteps),1);
N3_array = zeros(ceil(samples/nsteps),2);
for it = 1:nsteps :samples
   %cc(icorr)=corr2{ch1(it:it+nsteps-1 ),ch2(it:it+nsteps-1 )};
   N2=angle(data(it:it+nsteps-1 ,:)); 
   N3=sum([N2(:,1) N2(:,2)],1);
   N3_array(icorr,:) = N3;
   t_plot(icorr) = mean(t(it:it+nsteps-1 ));
   icorr = icorr+1;
end
figure; plot(t_plot,N3_array)
legend('signal 1', 'signal 2')

您可能需要调整图表