adaptive filtering by using uncorrelativity feature

9 views (last 30 days)
Hi every body..... I have three signals , two of them are supposed to be correlated , while the the third is supposed to be uncorrelated with the first two signals , as I know that for two signals to be uncorrelated , their mean values should be zero, am I wrong? there is a program in matlab help that perform adaptive filtering on ECG signal to extract fetal ECG , but I tried to measure the correlativity between them I found that it does not match what I know about the principle of correlation , please help me to understand that principle....thank you for your patience....

Accepted Answer

Greg Heath
Greg Heath on 23 Aug 2012
Edited: Greg Heath on 23 Aug 2012
The cross correlation function of two signals is calculated using the zero-mean/unit-variance zscores. Therefore it is invariant w.r.t. changes in means and standard deviations.
Although the functions XCORR, CROSSCORR and NNCORR automatically calculate the zscores, the zscores must be explicitly calculated when obtaining the cross correlation using FFT.
Hope this helps.
Greg

More Answers (1)

Stephen
Stephen on 21 May 2012
you can get the signal mean to zero by subtracting the original mean. then divide by the variance, to make the variance effectively 1. you can use corr() or crosscorr() to get some sort of answer related to the degree of correlation then. for signals that are correlated, it means that there is some sort of dependence of one signal on the other, so if one increases, the other will either also increase or decrease. if one changed while the other stayed constant, that would be less correlated, but I'm no expert at this, you should read more to get a good idea.
  2 Comments
Ahmed Tawfeeq
Ahmed Tawfeeq on 21 May 2012
I just want to know is it right that for two signals to be uncorrelated , their means should be zero , or there is another condition?
Greg Heath
Greg Heath on 9 Oct 2013
No. Correlation depends on the shape of the function the auto and cross correlations of the following functions should be identical
1. x and y
2. u and v
u = A*x + b
v = C*y + d
Hope this helps.
Greg

Sign in to comment.

Community Treasure Hunt

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

Start Hunting!