Up to this point, the various parameters that make up the COMA anti-interference mechanism were chosen randomly at every packet. To prevent overlap, the Mersenne Twister-based pseudo-random number generator was seeded with the address of the node. While this did a good job keeping nodes from interfering from each other, it's probabilistically possible that interfering/overlapping COMA parameters are selected.
I started experimenting with instead choosing these parameters using Walsh-Hadamard Codes instead. These codes are used in many CDMA systems to find orthogonal pseudo-noise (PN) codes for the different users. Doing some very crude experimenting, it looks like they have a lot of potential as a way to choose the different anti-interference factors that QMesh uses (frequency offset, timing offset, channel, and inverted bits).
It does seem to do a pretty good job of selecting parameters that are fairly far apart from each other:
Node | Frequency Offset | Channel | Timing Offset | Invert Bits |
0 | -88316 | 0 | 0 | No |
1 | 87137 | 1 | 5 | No |
2 | 67957 | 0 | 3 | Yes |
3 | -35199 | 1 | 6 | Yes |
4 | 35471 | 0 | 7 | No |
5 | 87932 | 1 | 2 | No |
6 | 89777 | 0 | 4 | Yes |
7 | -11096 | 1 | 1 | Yes |
Discussions
Become a Hackaday.io Member
Create an account to leave a comment. Already have an account? Log In.