Burst in the inverse Fourier transform

I am trying to compare two datasets in MATLAB. To do this, I need to filter the data sets by Fourier transform of the data, filtering, and then the inverse Fourier transform.

When I invert the Fourier transform, the data, however, I get a burst at each end of the red data set (the image shows the first burst), it should be close to zero at the beginning, like a blue line. I compare many datasets, and this happens sometimes.

I have three questions about this phenomenon. Firstly, what could be the reason for this, secondly, how can I fix it, and thirdly, it will affect the data further in the time series or only at the beginning and end of the time series, as can be seen from the figure.

Any help would be greatly appreciated.

alt text

+4
source share
3 answers

When using DFT, you must remember that the DFT receives a periodic signal (as a superposition of harmonic functions). As you can see, the starting point is an exact continuation of the last point in the harmonic function.

Have you performed zero padding in the Spectrum domain? Anyway, Windowing can reduce Overshooting .

Knowing about the filter and the source data can be helpful.

+8
source

If you say that there is a peak near zero frequencies, I will respond to checking the DC component.

It seems to you that you are interested in the form, therefore

x = x - mean(x) 

or

 x -= mean(x) 

or

 x -= x.mean() 

(I love numpy!)

it will simply limit the data set, starting from zero amplitude at zero frequency, and continue compiling the spectrum amplitude.

(as a note: have you verified that you are using fftshift and ifftshift correctly? This has always been a source of trouble for me)

+1
source

May be the numerical equivalent of the Gibbs phenomenon . If this is correct, there is no way to fix this other than filtering.

0
source

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


All Articles