Zero-padding, energy conservation When calculating the FT of a signal, and the FT of that same signal but after having applied zero-padding to it, should't the amplitudes of the FT of the zero-padded signal decrease with respect to the FT amplitudes of the original signal?

1) Since the FT of the zero-padded signal has more frequency bins (since we have interpolated the spectrum), my intuition tells me that the amplitude of the frequency bins of this FT should be lower.

However, when I calculate the FT of the two signals (I use the fft function available in Scipy for Python), I get the same amplitudes for their spectra. I was not expecting this behaviour. 

2) If I add the normalization term when calculating the FT (Scipy FFT does not include this), i.e. $FT = fft(signal) / length(signal)$, then I get different amplitudes for the two FT, which again, was not what I was expecting. Specifically, the zero-padded signal FT amplitudes decrease with respect to the non zero-padded, and the more zero-padding I add, the more the amplitudes of the FT decrease.

I am a bit confused with whether these results are supossed to be like that, or if I have done something wrong in my calculations.
What scipy.fftpack.fft effectively does is (docs):


y(j) = (x * exp(-2*pi*sqrt(-1)*j*np.arange(n)/n)).sum().`



This has no built-in normalization. If you do fft and then ifft, you need to normalize by multiplication by $1/n$ to get back your original data.

Or, you can do:


step 1: fft, then normalize by $1/\sqrt{n},$ then
step 2: ifft, then normalize by $1/\sqrt{n}.$


This gives the same final result because $1/\sqrt{n}\times1/\sqrt{n} = 1/n,$ and agrees with your intuition: The sum of squares of absolute values before and after each step remains equal. The steps compute the unitary discrete Fourier (DFT) and inverse discrete Fourier transforms (IDFT). With larger $n$ the same amount of "energy" as before will be distributed to more frequency bins so each value must be on average smaller in magnitude.