Coarse Frequency Synchronization without knowing modulation order.
Hey, I tried the Coarse Frequency Synchronization on the QPSK signal, it is working fine. I modified as: psd = np.fft.fftshift(np.abs(np.fft.fft(samples ** 4))) samples = samples * np.exp(-1j2np.pimax_freqt/4.0) But the problem is - in my work I don't know about the order of modulation technique (in fact, I don't know even the modulation technique).
Can you help me in coarse freq sync without knowing the order of the modulation technique? And the other doubt is, does it work for any digital modulation scheme?
Can you at least assume that the signal is fairly symmetric in freq domain? If so you could try taking an FFT and looking at the max value.
Yeah, I tried by taking FFT and looking at the max value - the max_freq is matching with the above mentioned one. But for FFT, I need to use the below one:
fft_signal = np.fft.fftshift(abs(np.fft.fft(abs(samples)))) (instead of taking abs(fft), I need to make fft(abs(samples))) Check the screenshot below.
Till finding max_freq is good, but for removing offset if I multiply with np.exp(-1j2np.pimax_freqt) it is not working. I have to do np.exp(-1j2np.pimax_freqt/M) (M - order of the modulation), but as I said earlier, I don't know about the modulation order before hand.
Well if you don't know the modulation then I think you want np.fft.fftshift(abs(np.fft.fft(samples))) then shift with np.exp(-2jnp.pimax_freq*t) but instead of doing 1 FFT I would do like 100 and average the results together before grabbing the max