On 8/27/21 1:23 PM, H.Shrikumar KA6Q wrote: > I've had such ideas also, so adding to this: > > Do the hashing only when starting a CQ, not in the midst of a QSO. Why not change it in the middle of a QSO? Any transmission (CQ or otherwise) can potentially collide with another, and since the software already decodes every transmission within the "band" it doesn't matter if the frequency changes with every transmission in a QSO. > Make the hash return not a single value but actually a series > eg. add a try number into the hash input making it a PRNG.
It's already a series since the hash function is perturbed by the time of day (to 15 second resolution). The important thing is that if you know a callsign and the time of day, you will know where that callsign will transmit (if it transmits) so you can avoid it. These slots will also be uniformly randomly distributed across the 'band', and they will change with each transmission to avoid repeated collisions between pairs of stations. If you include a 'try' number, how would everyone listening know what it is to predict the transmit frequency? > Before grabbing a Tx offset, you know from the past cycles if it was free. Not if they hop on every transmission, as I propose. > at least, to you it appeared free (modulo hidden station problem) > if it was not free earlier, then check the next hash. In the MACA (Multiple Access with Collision Avoidance) paper I wrote *way* back in 1990, I argued that CSMA (carrier sense multiple access, i.e., listen before transmit) is fundamentally broken. Yes, we are all supposed to do it, but a) many don't and b) even if we did, it wouldn't work very well because of poor propagation. But more fundamentally, you shouldn't even care if you transmit on top of somebody! Interference occurs at receivers, not transmitters. You really want to know who's *listening* on a channel, not who is transmitting. That you can do by monitoring all the QSOs in the "band" and inferring from them who is likely to be transmitting where during the next time slot. This has the advantage of protecting transmissions from stations you might not hear at all. In principle it also lets you transmit on top of someone when you wouldn't interfere with that station's intended receiver, but in practice this can fail because of non-reciprocal propagation (e.g., high noise levels at one station, or big differences in transmitter power.) It's analogous to monitoring an ordinary analog QSO and hearing the station turn it over to someone else. Even if the channel then goes silent to you, you know you shouldn't transmit. This will NOT prevent all interference, but it sure can help. > Thus it goes from plain aloha to slotted aloha to some CSMA/CA. > so channel capacity goes up. Yes, that's another point. One of the earliest results in multiple access analysis was the benefit of slotting. The spectrum/band should be divided into slots in both time and frequency so that if you do interfere, you'll only interfere with one. FT8 is already slotted in time but it should also be slotted in frequency. > > Small change, and should be interoperable with existing software. > so it does not force a mandated upgrade upon everyone. Pseudorandom per-transmission frequency hopping and frequency slotting are completely interoperable with existing software as the receivers already listen everywhere. As more people adopt the new transmission algorithms, the overall throughput should increase due to reduced collisions. I've been thinking a long time about the possible use of true frequency hopping on HF. You'd use m-ARY FSK as in the JT modes but hop on every symbol rather than just every transmission. This has some intriguing advantages, such as being able to use the FEC to handle some number of collisions with other stations. Obviously this would not be compatible with any of the JT modes so it's a separate topic. Phil _______________________________________________ wsjt-devel mailing list wsjt-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wsjt-devel