Discritize phases of SSB to ensure waveforms are reused.

Avoid floating point hashing issues by explicitly keeping a pulse dictionary.
Account for pulse length in pulse spacing.