Correction of amplitude after zero padding for upsampling purposes I have time sequence in which the data is sampled at 0.8 Hz. The data is related to chromatography (chemical analysis), that is why the sampling frequency is relatively low. The instrument cannot sample faster at this moment.
I was exploring the idea of upsampling by zero padding in the frequency domain as follows in MATLAB.
FFT_S=fft(Signal); % FFT of Signal of Interest

FFT_ZP=[FFT_S(1:length(t)/2,1); zeros(1000,1); FFT_S(length(t)/2+1:end,1)]; % Zero padding with 1000 zeros.

Signal_Up=real(ifft(FFT_ZP)); % Upsampled data

The original data consists of 716 points. The upsampled data has 1716 points but the amplitude has reduced - which is undesirable.
Is there a simple multiplying factor to correct the amplitude in MATLAB based on total number of points before and after upsampling?
EDIT:
Fortunately for this analytical chemistry purpose the trade offs of zero padding are not relevant. Qualitatively, in order to keep the amplitude the same, I found that if we double the sampling rate, the amplitude after inverse fft had to be multiplied by 2, if we triple the sampling rate by zero padding, the amplitude had to be multiplied by 3. Ignoring the trade offs, there must be a generalized method to correct the final amplitude based on the initial and final number of data points?
Thanks.
If you use an 1/N normalized DFT, then you shouldn't have any problems with your amplitude when you take the inverse DFT (with no normalization factor/factor of 1).  Consider the case of a pure tone with a whole number of cycles in the frame.  Only one bin pair will be non-zero.  No matter how many extra zeroes you insert, the inverse DFT will reconstruct the same signal in the same duration, just appropriately upsampled.  The amplitude of the signal will be twice the magnitude of of each bin value independent of your sample count.

If the normalization factors are already hard coded in your routines as &quot;1&quot; forward, &quot;1/N&quot; inverse, you can simply use them in reverse roles.  Take the &quot;inverse&quot; of your signal, zero pad it (splitting the Nyquist), then take the &quot;forward&quot;.
Alternatively, just multiply your final results by a factor of $\frac{N_{new}}{N_{old}}$, which confirms your observations in the update.