| | 425 | |
| | 426 | def cov(self,signal): |
| | 427 | """ |
| | 428 | |
| | 429 | Returns the covariance of two signals (self, signal), |
| | 430 | |
| | 431 | i.e. mean(self.signal*signal)-mean(self.signal)*(mean(signal) |
| | 432 | |
| | 433 | |
| | 434 | Inputs: |
| | 435 | signal - Another AnalogSignal object. It should have the same temporal dimension |
| | 436 | and dt. |
| | 437 | |
| | 438 | Examples: |
| | 439 | >> a1 = AnalogSignal(numpy.random.normal(size=1000),dt=0.1) |
| | 440 | >> a2 = AnalogSignal(numpy.random.normal(size=1000),dt=0.1) |
| | 441 | >> print a1.cov(a2) |
| | 442 | -0.043763817072107143 |
| | 443 | >> print a1.cov(a1) |
| | 444 | 1.0063757246782141 |
| | 445 | |
| | 446 | See also: |
| | 447 | NeuroTools.analysis.ccf |
| | 448 | http://en.wikipedia.org/wiki/Covariance |
| | 449 | |
| | 450 | Author: Eilif Muller |
| | 451 | |
| | 452 | """ |
| | 453 | |
| | 454 | from numpy import mean |
| | 455 | |
| | 456 | assert signal.dt == self.dt |
| | 457 | assert signal.duration()==self.duration() |
| | 458 | |
| | 459 | return mean(self.signal*signal.signal)-mean(self.signal)*(mean(signal.signal)) |
| | 460 | |