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?
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?