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



我创建了两个正弦波,每个正弦波的频率不同。两个波的时间周期都是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现在包含200ms 周期内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')

您可能需要调整图形

最新更新