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: |
|
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 R − I. 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. |
|