TorchDSP / torchsig

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

Consider normalization of bandwidths across FSK/PSK #195

Closed gvanhoy closed 3 weeks ago

gvanhoy commented 1 year ago

The normalized bandwidth of FSK's appears to be fs/8 and PSK's is fs/2

MattCarrickPL commented 1 year ago

I believe the bandwidth for G/FSK is defined via samples per symbol here:

fsk_dataset = FSKDataset(
            modulations=fsks,
                num_iq_samples=num_iq_samples,
                num_samples_per_class=num_samples_per_class,
                iq_samples_per_symbol=8,
                random_data=random_data,
                random_pulse_shaping=random_pulse_shaping,
                **kwargs,
            )
            gfsks_dataset = FSKDataset(
                modulations=gfsks,
                num_iq_samples=num_iq_samples,
                num_samples_per_class=num_samples_per_class,
                iq_samples_per_symbol=8,
                random_data=random_data,
                random_pulse_shaping=random_pulse_shaping,
                **kwargs,
            )

https://github.com/TorchDSP/torchsig/blob/v0.4.2/torchsig/datasets/synthetic.py#L179

The 8 samples per symbol is used as a bandwidth measure which is then transformed internally to the FSK modulator such it has the proper bandwidth.

MattCarrickPL commented 3 weeks ago

Old issue, closing out