Closed MattCarrickPL closed 1 year ago
The low-pass filtering implements a similar feature for controlling the sidelobes of FSK/MSK but there is also a resampling which changes the oversampling factor, lines 788-800. The resampling is not present in the QAM/PSK or GMSK/GFSK modulators. From Figure 11, notice that the spacing between the two tones varies for FSK but does not vary for GFSK.
Randomized resampling is an separate impairment in the paper, described in Section 3.2.3, Random Resample. The resampling implemented by resample_poly() likely needs to be removed.
Mods submitted via https://github.com/TorchDSP/torchsig/pull/79
The randomized pulse shaping filter as part of FSKDataSet(), _generate_samples() in synthetic.py may not be needed. Presumably the filter is used to attenuate the sidelobes of FSK and MSK as part of randomized impairments, see paper "Large Scale Radio Frequency Signal Classification", section 3.2.2 Randomized Pulse Shaping. Unclear if this randomization provides value to the RFML algorithms.
If the randomized pulse shaping filter is needed, then the filter length approximation on line 770 needs to be corrected because it's generating filters that are too large. The approximation can be simplified as num_taps = int(115/lpf_bandwidth). Because lpf_bandwidth < 1, the filter length becomes a massive number. A different filter length approximation is needed.