필터 지우기
필터 지우기

Correlation about two neural signals in specific time

조회 수: 1 (최근 30일)
Felicia DE CAPUA
Felicia DE CAPUA 2022년 11월 15일
편집: Saarthak Gupta 2023년 9월 13일
new_fs = 1000;
window = 1*new_fs; % 1 second of window
start_stop_plot=[872 1016];
start_stop_plot_points_bin = [start_stop_plot(1)*new_fs, start_stop_plot(2)*new_fs];
correlation_bin = zeros(start_stop_plot_points(2)-start_stop_plot_points(1),1);
for t_bin = start_stop_plot_points_bin(1):start_stop_plot_points_bin(2)-window;
spectrum1_t = mean_value_data_smooth_1(t_bin:t_bin+window-1);
spectrum2_t = mean_value_data_smooth_2(t_bin:t_bin+window-1);
correlation(t)=corr(spectrum1_t,spectrum2_t);
end
I attached mean_value_data_smooth_1 e 2.
The problem is the index exceedes the number of arrays. Can you help me??

답변 (1개)

Saarthak Gupta
Saarthak Gupta 2023년 9월 13일
편집: Saarthak Gupta 2023년 9월 13일
Hi,
I understand you are trying to find the rolling correlation between the two signals (‘mean_value_data_smooth_1’ and ‘mean_value_data_smooth_1’).
Both signals have 272 data points. However due to a window size of 1000, you are accessing sub signals of length 1000 which are larger than the signal itself. Moreover, the start and stop points have been incorrectly specified.
Please refer to the following code to obtain the rolling correlation between two signals:
function corrs_list = rollingCorrelation(data1, data2, startIdx, stopIdx, windowSize)
% data1 and data2 must be row vectors
n = min(size(data1,1), size(data2,1));
corrs_list = zeros([stopIdx-startIdx+1 1]);
for i=startIdx:stopIdx
if i+windowSize-1>n
break;
end
sample1 = data1(i:i+windowSize-1);
sample2 = data2(i:i+windowSize-1);
corrs_list(i-startIdx+1) = corr(sample1, sample2);
end
end
The function returns a list of correlations between all sub signals of size ‘windowSize’ in the given data, between start and stop indices (‘startIdx’ and ‘stopIdx’, respectively).
Please refer to the following MATLAB documentation for more details:

카테고리

Help CenterFile Exchange에서 Industrial Statistics에 대해 자세히 알아보기

태그

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by