## Denoising Data with FFT [Python]

This video describes how to clean data with the Fast Fourier Transform (FFT) in Python.

Book Website: http://databookuw.com
Book PDF: http://databookuw.com/databook.pdf

These lectures follow Chapter 2 from:
“Data-Driven Science and Engineering: Machine Learning, Dynamical Systems, and Control” by Brunton and Kutz

Brunton Website: eigensteve.com

Source

### Comment List

• Steve Brunton
November 30, 2020

thanks professor, for this detailed video. I

• Steve Brunton
November 30, 2020

Hello professor, I don't know if this was asked, but please can you comment a little bit on the fact that the two frequency components have apparently different magnitudes on the FFT even though that they are added with same amplitude in time domain. Does noise manifests itself in this way? or is it a computational mismatch that we have to tolerate? Thanks

• Steve Brunton
November 30, 2020

Why L starts from 1 instead of 0 is there a reason for that.
L = np.arange(1,np.floor(n/2),dtype='int') ?
why not L = np.arange(0,np.floor(n/2),dtype='int') ?
Is there any particular reason?

• Steve Brunton
November 30, 2020

Thanks very much! This really helps students who are struggling with denoising.

• Steve Brunton
November 30, 2020

I'm writing my thesis in the field of automation of machine tools and I needed to analyze the accelerometer signal acquired in time domain during machining. Raw signal in time domain is not easy to interpret. I've been reading books about signal processing and watching videos for days. None of them really let me comprehend the math behind it as easily and implement the FFT in Python as quickly as Prof. Brunton's videos. Thank you very much!!!

• Steve Brunton
November 30, 2020

Hello Steve, I just wanted to say thank you. It's been really helpful.

• Steve Brunton
November 30, 2020

Thank you teacher for the awesome explanation!

• Steve Brunton
November 30, 2020

Thank you for your amazing videos.
I definitely learned a few things from this video, but I have a very special question.
In your example, the noisy frequencies in the FFT are weaker than your pure frequencies, and therefore easy to threshold it and get rid of the noise. But I have a signal that is basically the opposite, as I am trying to detect a dripping sound, and there is a bunch of other frequencies. I think the dripping sound is very low in a way that makes it "noise?" in away.
But would you recommend any other approach? or any way to amplify the dripping frequencies?
Note: I don't know the frequency of the dripping.

• Steve Brunton
November 30, 2020

Superb!

• Steve Brunton
November 30, 2020

if i want to clear images taken underwater from above the water….could i use fourier transforms and the use something like a PCA to find how the bottom actually look like

• Steve Brunton
November 30, 2020

can you make more videos on machine learning? like tutorials on different types of deep learning neural networks. i am interested in reinforcement learning and backpropagation and convoluted neural networks.

• Steve Brunton
November 30, 2020

鏡文字書けるのすごいですね!(
It's amazing to be able to write mirror writing!)

• Steve Brunton
November 30, 2020

Loved the video <3

• Steve Brunton
November 30, 2020

Can this be done in realtime? Perhaps a powerful dsp for embedded options?

• Steve Brunton
November 30, 2020

Dude this guy is crazy, I still cant believe these videos are free.Thank You for making it free means a lot.❤️

• Steve Brunton
November 30, 2020

I am trying to separate talk and cough signal, fft is not working may I know the reason

• Steve Brunton
November 30, 2020

thank you!!! amazing graphics!!! clear explanation) best wishes

• Steve Brunton
November 30, 2020

thanks

• Steve Brunton
November 30, 2020

Hi Steve, very nice video. I tried it myself on some raw data. But I keep getting a error:

Also I don't know the function of my data. It seems like you already know the data correspond to a sin (x) + cos(x) function, is this a problem?

• Steve Brunton
November 30, 2020

Hi Steve, Thank you for the video, I have two questions:
1- Why did you plot only half of the data? I tried to plot the whole data but I got a diagram which did not make sense (my code: plt.plot(freq,PSD,color="c"))
2- suppose that we have the Fhat vector, how can we exactly find the sin, cos coefficients, and the constant that have made up the signal?