TorchDSP / torchsig

TorchSig is an open-source signal processing machine learning toolkit based on the PyTorch data handling pipeline.
MIT License
170 stars 38 forks source link

Randomization of FSK modulation index #96

Closed MattCarrickPL closed 1 month ago

MattCarrickPL commented 1 year ago

A useful randomization of FSK would be changing the modulation index. In synthetic.py, there's a function _mod_index() which returns the modulation index for the FSK/MSK related modulations. Within the code FSK always uses mod index = 1.0 such that the frequencies have the minimal spacing for orthogonality, but some FSK waveforms may use a smaller modulation index to use less bandwidth. MSK/GMSK should not be changed, it must use mod index = 0.5. Unclear if varying the GFSK modulation index has value.

def _mod_index(self, const_name):
    # returns the modulation index based on the modulation
    if "gfsk" in const_name:
        # bluetooth
        mod_idx = 0.32
    elif "msk" in const_name:
        # MSK, GMSK
        mod_idx = 0.5
    else:
        # FSK
        mod_idx = 1.0
    return mod_idx
gvanhoy commented 1 year ago

@MattCarrickPL Have we not done this somewhere?

MattCarrickPL commented 1 year ago

Not to my knowledge. We apply other impairments and transforms after the modulation, but this is a change needed within the modulator itself that would be beneficial to randomize over.

MattCarrickPL commented 1 month ago

Old issue, closing.