When a complex digital signal is converted to its spectrum through an FFT, the result will contain a series op positive and negative frequencies. That is, when the spectrum has N bins. Bin 0 will be the DC, bin 1->N/2 will be the positive frequencies and bin N-1 -> N-N/2 will be the negative frequencies. In this case it is clear that bin N/2 represents the radial frequencies $\pi$ and $-\pi$ at the same time.
Now, If we zeropad the middle of the spectrum (e.g: when upsampling) such that its new size will be M, we obtain a new one as follows. $X$ is the small spectrum. $Y$ is the zero padded larger spectrum.
- $X_{[0:N/2[}$ is mapped to $Y_{[0:N/2[}$
- $X_{]N-N/2:N[}$ is mapped to $Y_{]M-N/2:M[}$
In the above, I skipped the middle bin ($X_{N/2}$) because it is not yet clear whether it should assigned to the positive or negative section of the new signal.
To better understand what would be the best result, I performed a small test by creating a random spectrum of length M, then converting it to the timedomain, picking out every M/N-th sample and then converting it back to a spectrum, but this time of length N. The result showed that the following is true for any random spectrum:
$X_{N/2}=Y_{N/2}+Y_{M-N/2}$
Further testing revealed that indeed, we can split the value of the middlebin however we want, as long as their sums match the original value. Yet, the interpolations between the samples (when converting $Y$ back to the timedomain) oscillates differently for each particular choice.
The following three images show the effect of the middle bin on the phase of the upsampled signal. The first one places the middle-bin at N/2 in the new spectrum. The second image splits the content over bin N/2 and M-N/2 and the last one maps the middle bin solely to M-N/2
As you see the interpolation goes each time exactly through each of the blue values. The only difference is how the interpolation oscilates.
Is there any rule-of-thumb (and why), or any argument/standard practice on how to split the value of the middle bin when zero padding ?