adaptive filtering by using uncorrelativity feature

7 次查看(过去 30 天)
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....

采纳的回答

Greg Heath
Greg Heath 2012-8-23
编辑:Greg Heath 2012-8-23
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

更多回答(1 个)

Stephen
Stephen 2012-5-21
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 个评论
Ahmed Tawfeeq
Ahmed Tawfeeq 2012-5-21
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 2013-10-9
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

请先登录,再进行评论。

Community Treasure Hunt

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

Start Hunting!

Translated by