# how to compute a discrete fourier transform on fragmented data

I have a list of collected data points that I need to take a DFT of, however with the problem that about one quarter of the data points in the middle are missing, and so even though the existing data points are evenly spaced their is still a large time gap that needs to be accounted for. I looked up some things on a variable sampling rate DFT, but it was first of all over my head and secondly I am not sure if it is applicable. My question then is how would I account for that time gap in my calculation. It would be best to have everything explained in as close to laymen's terms as possible as I am out of my depth in this.

Thank you for any help.

• Depending on what you want to do with the data, you might find other techniques more appropriate i.e. wavelets. Jun 28, 2013 at 18:07
• Can you show a plot? If the missing points are obviously related to the existing points, it's probably easiest to interpolate them and then do the DFT. Jun 28, 2013 at 21:25

## 1 Answer

Basically, it is impossible to calculate the full DFT of your data. Take a look at the DFT matrix.

All of its elements are non-zeroes. Thus, each and every signal element is important for any frequency.

Take a look at this another way, had it been possible to do what you want, you could find the DFT of the signal, do an inverse DFT transform, and get the full signal back! Obviously, this is wrong. You don't have this information.

Nevertheless, it is possible to compute the frequencies of your data approximately. Recall that one of the possible explanations of DFT transform is that each of its coefficients is the best fit to a sum of shifted sine waves, $A* sin(w (x-x_0))$, or $a sin(wx)+b cos(wx)$, where $w$ is dependent on the coefficient index. Thus, you should do a least-squares fit to $a_i,b_i$, which are the coefficients of $a+bi$ in DFT.