# What is the right way to downsample using Fourier method?

I want to know what is the right way to downsample a sampled signal using Fourier transform as the implementation in scipy.signal.resample confuses me.

Reading through the code it first converts the signal to frequency domain, then discards the middle half of the frequencies (i.e. second and third quarters), then inverse-transform back to time domain. Therefore it is trying to keep the lowest and highest frequencies of the signal.

Due to Nyquist-Shannon we know that we cannot reconstruct a frequency of $$f$$ without at least $$2f+1$$ samples of the signal. Then when downsampling, shouldn't we instead discard the second half of the frequencies?

Scipy resample, "fourier method" explanation

Python's $\tt resample$ vs $\tt resample\_poly$ vs $\tt decimate$