Extraction using fft in octave

Using the GNU octave, I calculate fft over a piece of signal, then eliminate some frequencies and finally restore the signal. This gives me a nice signal approximation; but this does not give me the ability to extrapolate data.

Assume basically that I built three periods and half

f: x -> sin(x) + 0.5*sin(3*x) + 1.2*sin(5*x) 

and then added a piece of low-amplitude, zero-centered random noise. With fft / ifft, I can easily remove most of the noise; but how can I extrapolate another 3 periods of my signal data? (others, of course, duplicate the signal).

The math is simple: you have a decomposition of your function as an infinite sum of sines / cosines, and you just need to extract the partial sum and apply it anywhere. But I do not quite understand the software path ...

Thanks!

+4
source share
1 answer

The discrete Fourier transform is based on the assumption that the data in your time domain is periodic, so you can simply repeat the data in the time domain ad nauseam - no explicit extrapolation is required. Of course, this may not give you what you expect if individual component periods are not exact sub-folds of the duration of the DFT input window. This is one of the reasons why we usually use window functions such as Hanning Window before conversion.

+2
source

Source: https://habr.com/ru/post/1309246/


All Articles