Problem with cross correlation
Afficher commentaires plus anciens
Hello. I have a problem with a code. I have two kinds of data (lets call them a and b). These are cells, and in each cell I have double/numbers (see images attached). i would like to cross correlate , using a loop, data of a with data of b. I am using the following code:
but I realise that the results are wrong, as I should have 100% correlation bacause of the similarity of the numbers.
for i=1:numel(a)
[c,lag]=crosscorr(a{i},b{i})
r = [0.65, 1];
ii = c >= r(1) & c <= r(2)
% this finds the index of he rows(2) that have x in between
idx = find(abs(c) > r(1) & abs(c) <= r(2));
% number of intervals with positive check
numIdx{i} = sum(abs(c) > r(1) & abs(c) <= r(2))
Final{i}=(numIdx{i})'
n=Final'
end
Could you help me in order to fix it?

Réponses (1)
KALYAN ACHARJYA
le 2 Fév 2021
Modifié(e) : KALYAN ACHARJYA
le 2 Fév 2021
Might be you are looking for corrcoef Correlation coefficients.
or
r = xcorr(x,y) returns the cross-correlation of two discrete-time sequences. Cross-correlation measures the similarity between a vector x and shifted (lagged) copies of a vector y as a function of the lag.
In cross correlation,refer the MATLAB docs Specify Additional Lags for Cross-Correlation
Please refer the following external link to see, how to compute the cross corelation between discrete data
x [n] = {-3, 2, -1, 1}
y [n] = {-1, 0, -3, 2}
It's better to refer any standard signal analysis text book to undestand various types for corelation between two discrete signal data.
Example:
a=cell2mat({2,1,17,5,19});
b=cell2mat({2,1,17,5,19});
Results:
>> xcorr2(a,b)
ans =
38 29 362 199 680 199 362 29 38
>> xcorr(a); %Same as xcorr2 if both a and b are same
ans =
38.0000 29.0000 362.0000 199.0000 680.0000 199.0000 362.0000 29.0000 38.0000
>> result=crosscorr(a,b);
result =
-0.2369 -0.1835 0.1964 -0.2761 1.0000 -0.2761 0.1964 -0.1835 -0.2369
>> corrcoef(a,b)
ans =
1.0000 1.0000
1.0000 1.0000
2 commentaires
Catégories
En savoir plus sur Correlation and Convolution dans Centre d'aide et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!