Best way to resample an OFDM signal without interpolating + filtering?
I can't resample this signal using an interpolation plus filtering approach, as it should be computed in real time (I would need to interpolate the signals up to 480 MHz...).


Fallacy! Using a rational resampler doesn't require going to the common multiple of in- and output rate. The magic of polyphase filtering allows to operate at a lower rate.

In fact, I'm just trying out the rational resampler GNU Radio comes with:



and on my slightly dusty AMD Phenom PC, it achieves 14 to 20 MS/s, depending on the fractional BW I specify (0.1 to 0.48).

However, I'm on your side with the FFT approach – only that you already have an OFDM system and hence, your OFDM modulator can do the job for you.

Now, 5 MS/s would be 333.333… carriers of spacing 15 kHz. So, if we can't live with 0.1% rate mismatch at the transmitter, there's no trivial way to hit exactly 5 MHz at a carrier spacing of 15 kHz.

The solution is easy:

Generate a 15 MHz wide OFDM signal (with still only 200 carriers occupied) by using a 1000-FFT. (no, I hear that regularly, it's not necessary that FFTs have power-of-two lengths. Only small prime factors.) That'll be roughly an increase in computational power needed for the FFT in the OFDM transmitter, but it should be in an order below 10, and in my experience, the FFT isn't even the worst part of a software-based OFDM transmitter (channel coding is).

I happen to have made an approximate graph of how much energy is in sidelobes of sincs over full subcarrier distances for another question: 



If you can live with all the energy between the 56. and the ca 700. place in that graphic aliasing over into your used carriers, you don't need to filter at all when downsampling by a factor of 3. 

You probably would still want to do some filtering, but this graph means that you can use a lot less great filters. Basically, anything with roughly a 1 MHz transition width and maybe 23 to 36 dB out-of-band attenuation (go for minimum OOB energy, ie. a Dolph-Chebychew window-based design, if you want to really optimize). That's not going to be a long filter, and hence not put much load on your system. In my test, 11 taps might suffice, and 31 looks pretty good. 

Even 31 taps can be handled pretty well with FFT filtering at 5 MHz output rate (again, polyphase maths allows us to run the decimation filter at the target rate rather than the source rate).