Upsampling and Downsampling using IFFT and FFT (DFT Based Resampling) Assume in OFDM , there are N=64 subcarriers. I would like to upsample my signal by Factor 8 after IFFT and pass it through channel then downsample it by factor 8 before FFT. I can use upsample, downsample and interpolating functions. However I was told that there is an alternate to use (8*64) point IFFT and (8*64) points FFT. I used to think that since my symbol size is originally N then I can zeros at the end of my signal (64*8-64) that its length is 512 then I can apply IFFT and FFT correctly and take the first 64 samples and discard the rest. However after reading different post here (like this) enter link description here about adding zeros between samples or re-scaling the signal to get the correct result. I am wondering if anyone can explain to me about right way of upsampling and downsamping my signal using IFFT and FFT and also the reason for that. In different posts here people mention to add zeros between samples but they never said why.
Given a time domain signal $x_1[n]$ of length $N$ and its $N$-point DFT $X_1[k]$, If you pad $M$ zeros to the end of $x_1[n]$ and then take ($N+M$) point-DFT of it, this will give you an interpolated set of frequency samples, $X_2[k]$; i.e., a denser set of uniform samples of the DTFT, $X(e^{j\omega})$, than was previously available from $X_1[k]$.
Given a time domain signal $x_1[n]$ of length $N$ and its $N$-point DFT $X_1[k]$, If you carefully stuff (insert) $M$ zeros to the central portion of the DFT $X_1[k]$ (by moving those right half of the available $X_1[k]$ samples to the right by the amount of $M$) and then take ($N+M$) point-inverse DFT of the resulting $X_2[k]$, this will give you an interpolated set of time samples, $x_2[n]$; Note that you should scale the amplitudes in accordance with the interpoaltion amount.


Note that implementing 1-) is straightforward, while implementing 2-) requires careful selection of the correct indices at the central portion for the original length $N$ being even and odd, the details of which is provided by some examples here dsp.se,  including the link you have provided.