Skip to main content
. 2014 Jan 15;14(1):1474–1496. doi: 10.3390/s140101474
Algorithm 1. The interchannel redundancy removal algorithm.

1. Compute R, the matrix of correlation coefficients of the current epoch. Each entry of R is calculated as follows:
Ri.j=cov(yi,yj)σ(yi)σ(yj)
  where cov (a, b) is the covariance between a and b, and σ(a) is the standard deviation of a.
2. Subtract the identity matrix I from R (because the autocorrelations are not meaningful).
3. Define a loop index, k, that will be used to track the number of differences taken. Let k = 1.
4. Find Rmax, the maximum absolute value in matrix RI. The row and column indices (ik,jk) corresponding to Rmax corresponding to the 2 channels used for the difference. Remove the channel pair (ik,jk) from the correlation pool.
5. Check that the selected channel pair is not redundant (i.e., it is linearly independent from the previously selected pairs when we look at it as a system of equations). If it is redundant, discard the current pair. If it is not, keep the current pair and increment k by 1.
6. Repeat steps 4 and 5 while k < C or while Rmax < T, where C is the number of channels and T is a user-defined threshold.
7. If k < C, we have run out of good channel pairs and will thus need to pick individual channels (not a difference) to complete our system of equations. Choose a “pair” (ik,0), such that channel ik is the channel with the smallest variance that is linearly independent from the previously selected pairs. Increment k by 1. Repeat until k = C.
8. Wirelessly transmit the selected channel pairs (ik,jk), k = 1 to C to the sensor node. These pairs will be used to compute the differences in the next epoch.