Denoising Data with FFT [Python]

  Рет қаралды 176,790

Steve Brunton

Steve Brunton

Күн бұрын

Пікірлер: 259
@somethingironic2227
@somethingironic2227 3 жыл бұрын
the way this video is setup, overlaying him, the code and a whiteboard, is really slick
@adityams1659
@adityams1659 4 жыл бұрын
Dude this guy is crazy, I still cant believe these videos are free.Thank You for making it free means a lot.❤️
@josephtran1500
@josephtran1500 3 жыл бұрын
I havent even watched the video yet and I can tell Im on for a ride. The content looks so good.
@payman_azari
@payman_azari 2 жыл бұрын
I can't even believe these videos are made
@jerickandrerodriguezmotta6809
@jerickandrerodriguezmotta6809 3 жыл бұрын
I've spent many hours trying to apply FFT to my data and I've finally done it with your amazing explanation. For sure, the best Fourier Transform video.
@pipertripp
@pipertripp 3 жыл бұрын
Pure gold. Fourier analysis still feels a bit like voodoo to me as I'm just learning the basics, and your videos have been very helpful. The python examples are really handy. Thanks for taking the time to do these things in both MatLab and Python.
@andrerangel7654
@andrerangel7654 2 жыл бұрын
Steve Brunton, I may never meet you in person but you helped me a lot with these videos. I wish you a good health and a prosper life.
@felicemorgigi1764
@felicemorgigi1764 3 жыл бұрын
People like you make the world a better place. Free education helps everybody in the end. Thank you.
@m.espejo
@m.espejo 3 жыл бұрын
This has been very useful for me. I am a Mechanical Engineer and I am working in dynamic studies of steel structures. This method is very practical to apply to the acquisition of accelerometer data in dynamic tests. Thank you so much Steve!!!
@bArda26
@bArda26 2 ай бұрын
I was watching you when I was in college for controls, life has brought us back together lol
@TNTsundar
@TNTsundar 3 жыл бұрын
Brilliant. Just brilliant. The quality of this lecture is off the charts.
@Via.Dolorosa
@Via.Dolorosa 4 жыл бұрын
Hi Steve, I watched many of your videos in Control the comments there are disable so I took this opportunity just to say thank you
@ahmedgaafar5369
@ahmedgaafar5369 4 жыл бұрын
me too
@paulsenn1281
@paulsenn1281 7 ай бұрын
this is mind-boggling-ly useful! (written after hours of scrolling in vain attempting to understand both the transform itself and the code that implements it .) Thank you!
@abemartin2002
@abemartin2002 4 жыл бұрын
Professor Brunton, I love all your videos.
@monh964
@monh964 4 жыл бұрын
I told my self lets see what this guy is talking about... Realized I discovered a wizard. I will have to see all your videos. I always was afraid from fft. Thank you for simplifying it. Thanks again.
@hfkssadfrew
@hfkssadfrew 4 жыл бұрын
Very nice video professor Brunton. I think the idea behind is FOurier transform of white noise is a constant depending its amplitude. So for large signal-to-noise ratio , you will see a plateu + the real signal, then picking those peaks will work.
@goodlack9093
@goodlack9093 Жыл бұрын
one of the best channels I could've ever stumbled upon...immediately subscribed😅
@doneel.5338
@doneel.5338 2 жыл бұрын
This is amazing! I am finally getting rid of the feeling that the topic is complicated thanks for these videos! I mean it is, but I also am capable of getting it with your explanation.
@TungNguyen-gx1fy
@TungNguyen-gx1fy 2 жыл бұрын
Take note: f is the noisy data 1. f_hat = FFT(f) - f_hat is a vector of complex Fourier coefficients (increasing frequency: low to high) with its magnitude. 2. PSD = |f_hat| - vector of real magnitude (power) for each frequency. 3. Filter: on PSD, keep the power > Threshold, and set 0 to the rest (because they are the noise frequency) and we have new f_hat. 4. f_denoised = iFFT(new f_hat)
@babaksanaee1460
@babaksanaee1460 3 жыл бұрын
This is so excellent. Absolutely the best, and most comprehensive video regarding real world FFT on youtube. Probably going to buy your book now. Thanks a lot!
@Eigensteve
@Eigensteve 3 жыл бұрын
Wow, thanks!
@jinbobian1613
@jinbobian1613 4 жыл бұрын
Thanks very much! This really helps students who are struggling with denoising.
@supervince110
@supervince110 2 жыл бұрын
These video series are worth more than the courses you spend thousands of dollars in a university
@HarrierBr
@HarrierBr 3 жыл бұрын
Very good explanation. GG for the backwards writing, REALLY nice.
@Eigensteve
@Eigensteve 3 жыл бұрын
Many thanks!
@afghanexperts7815
@afghanexperts7815 3 жыл бұрын
One of the best explanation I have ever seen ❤️❤️
@afsinyilmaz8665
@afsinyilmaz8665 3 жыл бұрын
Effective! Your amplitude at per unit time teaching is above threshold.
@L2.Lagrange
@L2.Lagrange 2 жыл бұрын
Very helpful content. I have used MATLAB but not python. I want to use FFT and some basic signal processing techniques to learn how to use python, so these videos are very helpful
@Michallote
@Michallote 11 ай бұрын
For those wondering how to filter non stationary series, you can use overlapping windows to perform the same process per window then blend the signals in the overlapping regions
@shillowcollins6392
@shillowcollins6392 11 ай бұрын
Wow, I am super impressed, why didn't I find this channel early. Thanks so much for sharing this valuable information.
@Akshay-cy9tu
@Akshay-cy9tu 3 жыл бұрын
just in love with the way u teach concepts
@yashodhanvivek8086
@yashodhanvivek8086 3 жыл бұрын
Amazing Prof. Brunton. These videos are extremely helpful for DPS researchers
@sennabullet
@sennabullet 3 жыл бұрын
A fantastic video with great informational content...and mindblowing production!!! How do you do all the overlays???
@surajyergude
@surajyergude 4 жыл бұрын
Your lecture gives insight to the content what is in there books.
@umedina98
@umedina98 2 жыл бұрын
Your videos are crystal clear! I cant thank enough for sharing this high quality content. Loved the approach you took of writing parallel to the code!
@larcomj
@larcomj Жыл бұрын
Great application of the convolution theorem. Well explained.
@saitaro
@saitaro 4 жыл бұрын
super-duper, as always. Python examples are what we need!
@JosephRajewskiWIII
@JosephRajewskiWIII 4 жыл бұрын
I had Steven Brunton as a professor at University of Washington in Applied Mathematics, and he was excellent. So glad I just stumbled upon his channel. It looks really good. Will be tuning in! I am hoping you will do a video on linear programming and optimization; I have a problem at work I want to apply this to. :)
@Eigensteve
@Eigensteve 4 жыл бұрын
Awesome, thanks Joe! I have some optimization videos in the works, so stay tuned!
@giovanniiacobello2866
@giovanniiacobello2866 4 жыл бұрын
Thank you very much Prof. Brunton for the interesting video! It is amazing this way of making videos. Which software and devices do you use for that? Is that a glass board? or something similar?
@Eigensteve
@Eigensteve 4 жыл бұрын
Yes, a glass board
@DougWoodrow
@DougWoodrow 2 жыл бұрын
@@Eigensteve and yet the writing isn't back-to-front... clever! 🤔
@tedgerhardt2619
@tedgerhardt2619 7 ай бұрын
Thanks for such great videos! Been following you for years and I’ve learned so much and am truly inspired by your work. Just ordered the book and am excited to apply!
@jacobanderson5693
@jacobanderson5693 4 жыл бұрын
Would you consider doing a lecture on FFT in the context of NMR/Xray Crystallography/electron microscopy. Especially "Fourier Filtering"
@Eigensteve
@Eigensteve 4 жыл бұрын
Cool idea -- i'll add it to the list :)
@彭九方
@彭九方 3 жыл бұрын
Thanks a lot again Prof! Just wanted to mention that, when calculating the power spectrum (PSD), the data type of the production result of complex number with its conjugate is actually: complex with 0j (Python3)
@kivancthewalrus
@kivancthewalrus 3 жыл бұрын
You forgot to multiply your np.fft.fft(...) output by dt. np.fft module assumes the sampling spacing is 1. So we have to fix for this if we have a different sampling spacing. Also, you don't have to give n as the second argument of your np.fft.fft because n is also the length of your signal, so it's effectless.
@ElCanalMeu
@ElCanalMeu 4 жыл бұрын
Hello Steve, I just wanted to say thank you. It's been really helpful.
@hardeepsingh68
@hardeepsingh68 Жыл бұрын
Beautifully explained ! Wonderful to learn from Steve !!
@code2compass
@code2compass 7 ай бұрын
Every body's a gangsta until a man with glasses enters the room and explains fft
@shahriarhabibi8382
@shahriarhabibi8382 8 ай бұрын
The magnitudes of the signals with 50 and 120 Hz depends on the random numbers that you generate at the beginning of the code. I had this problem that my magnitudes where different from those presented in this video.
@NowanIlfideme
@NowanIlfideme 4 жыл бұрын
I gotta say, watching these and re-remembering uni courses has been quite a blast. Thanks for your lectures! Also, what exactly do you use to make these videos? I assume you write on glass and then flip the video? It always turns out surprisingly clean, with the screen projection as well...
@Eigensteve
@Eigensteve 4 жыл бұрын
Thanks! Yep, glass and flip.
@rafaelcardoso270
@rafaelcardoso270 3 жыл бұрын
You are awesome, dude. Thanks a lot. I wish I had a professor like you at the college.
@ilAnfoosh
@ilAnfoosh 3 жыл бұрын
Thanks for showing us how useful is learning Math!! Amazing!!
@frankkoslowski6917
@frankkoslowski6917 2 жыл бұрын
Love your presentation. Interesting though that you got your code to work without errors. Casting complex values to floats ist verboten! 😏 Here's how it should be for the graphs to display without error: plt.plot(freq[L], np.absolute(PSD[L]), color='c', lw=2, label='Noisy') However, this does not solve the problem at it's root, because the Boolean return for a complex like `PSD` referenced to and integer as in: indices = PSD > 100 does only return a Boolean array filled with `False`, unless np.absolute(PSD) gets implemented. The best place to do this without undue repetition throughout the code is where the problem starts. Here we see the amendment that forces absolutes and brings all the trouble caused by attempting to handle complex values like floats to an end: PSD = np.absolute(fhat * np.conj(fhat) / n) # Power Spectrum Density (power of FFT) However, the error finds itself repeated in the last set of plots with the `Inverse FFT for filtered time signal` and is best corrected like this: ffilt = np.absolute(np.fft.ifft(fhat)) # Inverse FFT for filtered time signal 😉 All in all, a very clear and understandable `toy example`. 💚
@Asparuh.Emilov
@Asparuh.Emilov 2 жыл бұрын
This is one of the best videos on how to apply FFT in Python!!! Thank you so much! Is it possible to make a video with Time Series data denoising? And could be applied directly on the original Time Series Data Or first we should obtain the difference on 1st grade?
@Ting3624
@Ting3624 4 жыл бұрын
thank you for the education kind sir! math + code example is a great idea
@euclitian
@euclitian 4 жыл бұрын
this!
@StEvUgnIn
@StEvUgnIn 3 жыл бұрын
7:25 Start of the explanation on FFT filtering
@MandarPatkar_html_addict
@MandarPatkar_html_addict 2 жыл бұрын
Thanks much Prof Brunton! This is gold.
@kubumshel
@kubumshel 2 жыл бұрын
This lecture is very clean and precise. But I need to do this in matlab and I am really getting confused on how to implement the index vector and multiplying it from the noisy signal
@dom996
@dom996 3 жыл бұрын
Thank you very much Prof. Brunton for the interesting video!
@DiverselyArtistic
@DiverselyArtistic 4 жыл бұрын
Thank you so much sir ,i was really confused before this video
@psheep8206
@psheep8206 3 жыл бұрын
Thanks Steve, great footage! Any chance to extend this series with a explainer on how to detrend a periodic signal in 2D data?
@DueDue541
@DueDue541 4 жыл бұрын
import numpy as np import matplotlib.pyplot as plt plt.rcParams['figure.figsize'] = [16, 12] plt.rcParams.update({'font.size': 18}) # Create a simple signal by combining two frequencies dt = 0.001 t = np.arange(0,1,dt) f = np.sin(2*np.pi*50*t) + np.sin(2*np.pi*120*t) # sum of 2 frequencies f_clean = f f = f + 2.5*np.random.randn(len(t)) # add some noise plt.plot(t, f, color='c', LineWidth=1.5, label='Noisy') plt.plot(t, f_clean, color='k', LineWidth=2, label='Clean') plt.xlim(t[0], t[-1]) plt.legend() # Map the signal from Time Domain to Frequency Domain n = len(t) fhat = np.fft.fft(f,n) # Compute FFT PSD = fhat * np.conj(fhat) / n # Compute Power Spectral Density (Combine real & imaginary bins) freq = (1/(dt*n)) * np.arange(n) # Create x-axis of frequencies L = np.arange(1, np.floor(n/2), dtype='int') # Only plot first half of Freqencies fig, axs = plt.subplots(2,1) plt.sca(axs[0]) plt.plot(t,f,color='c',LineWidth=1.5,label='Noisy') plt.plot(t,f_clean,color='k',LineWidth=2,label='Clean') plt.xlim(t[0],t[-1]) plt.xlabel('time') plt.legend() plt.sca(axs[1]) plt.plot(freq[L], PSD[L], color='c', LineWidth=2, label='Power') plt.xlim(freq[L[0]],freq[L[-1]]) plt.xlabel('Hz') plt.legend() # Filter Signal based on PSD indices = PSD > 100 # Find all freqs with power greater than 100. [Boolean Array] PSDclean = PSD * indices # Filter PSD by multiplying by Boolean Array fhat = indices * fhat # Filter FFT coefficents that's Power < 100 # Inverse the cleaned FFT to get clean time domain signal ffilt = np.fft.ifft(fhat) # Plot fig,axs = plt.subplots(3,1) plt.sca(axs[0]) plt.plot(t,f,color='c',LineWidth=1.5,label='Noisy') plt.plot(t,f_clean,color='k',LineWidth=2,label='Clean') plt.xlim(t[0],t[-1]) plt.xlabel('time') plt.legend() plt.sca(axs[1]) plt.plot(t,f_clean,color='r',LineWidth=2,label='Clean') plt.plot(t,ffilt,color='k',LineWidth=2,label='Filtered') plt.xlim(t[0],t[-1]) plt.xlabel('time') plt.legend() plt.sca(axs[2]) plt.plot(freq[L], PSD[L], color='c', LineWidth=2, label='Power') plt.xlim(freq[L[0]],freq[L[-1]]) plt.xlabel('Hz') plt.legend() plt.show()
@Eigensteve
@Eigensteve 4 жыл бұрын
Thanks!!
@EW-mb1ih
@EW-mb1ih 3 жыл бұрын
To go further, it would be interesting to have a method to determine the threshold for PSD that we keep. In your case, it’s obvious that there are only two frequencies but what kind of methodology will you recommand if there no clear contrast between noise and real Frequency ( would a simple Normal t’est be sufficient?)?
@Maria-mt2rz
@Maria-mt2rz 4 жыл бұрын
This video is adorably stylish!
@azzouguenachour909
@azzouguenachour909 8 ай бұрын
Many many thanks professors this was very clear.
@matiaharonyan5218
@matiaharonyan5218 3 жыл бұрын
Steve, you are amazing. Thank you a 1000 times.
@Eigensteve
@Eigensteve 3 жыл бұрын
You are so very welcome!
@tatianaazarchenko7066
@tatianaazarchenko7066 3 жыл бұрын
Thank you a lot, Steve! Your lectures are absolutely amazing and extremely helpful!!
@robertschofield9838
@robertschofield9838 3 жыл бұрын
Thanks for contributing! Exactly what I was looking for.
@タナカコウイチ-w3p
@タナカコウイチ-w3p 4 жыл бұрын
鏡文字書けるのすごいですね!( It's amazing to be able to write mirror writing!)
@nitinupadhyay9193
@nitinupadhyay9193 3 жыл бұрын
i liked and subscribed before even starting the video.. i knew it was going to be great!
@arnoldsu
@arnoldsu 2 жыл бұрын
Thanks for the explain, it is very details and easy to understand. One question, how can we demonstrate/apply the 95% significant test onto the plot? Thanks!
@Neeba-q5x
@Neeba-q5x 4 жыл бұрын
First time watching this guys video, pretty nice~ But one think that really attract my attention is that it looks like he is writing on an opposite way? I mean from what we see on the video, the scene is like he is writing on a glass board like thing And standing facing the camera, also keep the word readable from the side of camera. It's like we are looking at teacher from the other side of the blackboard but can also read the word at the same time. (the word should be mirrored!)
@彭九方
@彭九方 3 жыл бұрын
He is left handed and he mirrored the video
@彭九方
@彭九方 3 жыл бұрын
And he writes normally like us all
@nhatson2265
@nhatson2265 3 жыл бұрын
This work really helps, Sir! Thank you for your videos
@Eigensteve
@Eigensteve 3 жыл бұрын
Glad to hear that!
@harisgulzar4605
@harisgulzar4605 4 жыл бұрын
Wow great content. Python example just boosted my interest in signals processing by many folds. Thanks a lot Mr. Steve, I really wish to see your behind the scene setup by the way :p
@Barasuisyou19
@Barasuisyou19 3 жыл бұрын
Thank you very much for this amazing video! I was struggling to understand this, but you made it look easy.
@cygtrafolia1007
@cygtrafolia1007 5 ай бұрын
epic lighting. subscribed.
@fastlab8506
@fastlab8506 3 жыл бұрын
thanks for great explanation! You guys are doing it on a different level :)
@Eigensteve
@Eigensteve 3 жыл бұрын
Thanks so much!
@midasredblade236
@midasredblade236 2 жыл бұрын
Yes, THIS IS WHAT I WAS LOOKING FOR THANK YOU KZbin ALGORITHM
@stijndeboer3721
@stijndeboer3721 4 жыл бұрын
Thanks for your videos Steve.
@arturfoden7139
@arturfoden7139 2 жыл бұрын
Thank you for the clean explanation
@Asparuh.Emilov
@Asparuh.Emilov 3 жыл бұрын
Thank you so much for those lectures! I love it! Is it actually possible to use Fourier series to create time series forecasting?
@nischalsehrawat2130
@nischalsehrawat2130 4 жыл бұрын
Hi Steve, I have a doubt. If we run a Kalman filter on this data, can the filter distort / change the frequency content of the signal? I tried to run a Kalman filter and sometimes I get funny results. I am not able to understand what might be going wrong. Can you please help? Thanks
@Eigensteve
@Eigensteve 4 жыл бұрын
That is a really good question. Yes, in general, filtering algorithms will change the spectrum of the signal, sometimes quite significantly. There is a lot of work in designing filters that have certain nice properties. For example, if we run a simple low-pass filter over the data, it will mess up the phase information in the signal (because there will be a small delay). So the 2nd order Butterworth filter is often used to prevent this phase corruption. Sometimes people also use the "filtfilt" function, which runs a forward and a backward pass of the filter to get rid of the phase delay. So long way of saying that yes, this is a real concern and it is not always easy to filter and preserve frequency content. But, remember, often when you filter, your goal is to modify the frequency content, for example to remove high-frequency noise. So there is no "silver bullet" for filtering.
@Daniel88santos
@Daniel88santos 4 жыл бұрын
@@Eigensteve I'm using the filtfilt in sensor live data and that technic doesn't work for live data since I'm seeing a kind of "repaint" after I receive the last point on the data received previously. Let's say that I have 50 points ... when I receive the point 51 what was calculated on the previous 50 points will change when I receive this last point, so the filtfilt technic doesn't work well on the last point received. Another issue is when I compare the live output of my Butterworth filter to filtfilt output they are exactly the same on the last received data, meaning that the delay is there on the last point received, the delay is only taken away for that particular "event"(Let's point 50) when we receive more data( >=51 points). Can you advise me any technic that allow me to filter data in live stream having no or very few delay? My data is not periodic, I think that for example the FFT is not an option. Thanks you.
@romanvereb7144
@romanvereb7144 4 жыл бұрын
@@Daniel88santos Applying FFT on live data sets, the size of which are not power-of-2? And then you're also filtering and inverse-transforming? Brave, yet interesting. My own power-of-2-cents would be... Don't allow the dataset to be sized dynamically. Keep a fixed size and let the live data "roll" through it. Make sure the size of this dataset is something like 64 instead of 50 or 51. Zero-pad if you must. If none of what I just advised made any sense to you, you may have to do a bit more research. Fourier Analysis and noise filtering is not a subject mastered with a few youtube videos.
@Daniel88santos
@Daniel88santos 4 жыл бұрын
@@romanvereb7144 thanks by you reply, I've figure out how to do it with any size of points, and not using zero padding ... but I cannot comment on it, since is proprietary technology.
@romanvereb7144
@romanvereb7144 4 жыл бұрын
​@@Daniel88santos Such is the way of the world... One learns without giving back. A seed planted, but no longer spread.
@shillowcollins6392
@shillowcollins6392 11 ай бұрын
Pls I want to purchase your book, do I need to purchase both vol1 and vol2, or the vol2 is the second edition of volume 1?
@Eigensteve
@Eigensteve 11 ай бұрын
No that is just the 2nd edition, so no need to buy both
@artsyengineer2086
@artsyengineer2086 4 жыл бұрын
Hi Steve, thanks for the nice and helpful video! One thing though, I was wondering if there is a "standard" way of choosing a filter value? Is your case of two "peaks" a good rule of thumb?
@HackionSTx
@HackionSTx 2 жыл бұрын
I'm not an expert so please don't take this as an absolute truth. I'd look at the graph first (or have so metrics, depending on the type of data) and see if we get only few very high peaks or something more regular. In the first case you'd probably have a lot of liberty if you wanted only the big peaks. In the second case I'd probably start being conservative and get some noise in the result if it means I'd get everything I wanted from the data. But depending on what I'd be working on I'd begin increasing the threshold until the data starts losing too much.
@otaviocarvalho1140
@otaviocarvalho1140 4 жыл бұрын
Thank you teacher for the awesome explanation!
@goodlack9093
@goodlack9093 Жыл бұрын
thank you very much, you're a really good teacher!!
@arkie3703
@arkie3703 5 ай бұрын
Love your videos, I have a question tho. In the previous video Proffesor Brunton talked about how efficient the FFT was when our n was a power of 2. If I understand it correctly, here n = 1000? Why wouldnt we want n to be 1024?
@rajinfootonchuriquen
@rajinfootonchuriquen Жыл бұрын
Thanks Steve for your knowledge.
@vigneshrb1626
@vigneshrb1626 3 жыл бұрын
Great lecture prof but I have one doubt. How to compute the x axis of the plot for any given data
@juancarlosesquivel7855
@juancarlosesquivel7855 3 жыл бұрын
Thanks for your amazing videos and book. I'm watching them all, and I hope they'll help me with a Kaggle competition on detection of gravitational waves from time series obtained by LIGO and Virgo.
@SP-ui6zn
@SP-ui6zn 3 жыл бұрын
Thank you Dr. Brunton.
@RupertBruce
@RupertBruce 3 жыл бұрын
@6:20 Presentation Master! 🙂
@robv3872
@robv3872 3 жыл бұрын
what a great instructor! Thanks!
@jean-francoisnoel9577
@jean-francoisnoel9577 7 ай бұрын
Thank you very much for your amazing videos, but what about averaging to remove the Gaussian noise? (if the recordoing is long enough to perform several FFTs of course) It feels like a better method to remove noise since it can show information hidden below the noise floor that would otherwise be removed with the truncation method.
@XwitterEye
@XwitterEye 3 жыл бұрын
damn the video quality is amazing here. got a sub
@inchae5279
@inchae5279 Жыл бұрын
Thank you for making this video. I have one question with making a threshold, the threshold that you made, is subjective i thought. Is there any non-subjective threshold method? I mean, defined threshold to 100 isn't any valid reason.. (Sorry for my english)
@babak5115
@babak5115 3 жыл бұрын
Thank you Dear Steve for your best job, how can I see this similar example in Python?
@jacobthomas939
@jacobthomas939 4 жыл бұрын
Agreed. A wealth of knowledge.
@samsmusichub
@samsmusichub 4 жыл бұрын
I ❤ FFTs. Thank you!
@wahabfiles6260
@wahabfiles6260 4 жыл бұрын
I have a silly question. Is it the correlation among the data that yields two spike in frequencies in power spectrum? because the white noise is uncorrelated.
@Eigensteve
@Eigensteve 4 жыл бұрын
The power spectral density and the autocorrelation are very closely related. It turns out that they are Fourier transform pairs. So it is definitely related.
@wahabfiles6260
@wahabfiles6260 4 жыл бұрын
@@Eigensteve makes sense. thanks
@nightlyowll
@nightlyowll 2 жыл бұрын
This video is amazing.. Just to the point !! I'm speechless on how good the video is.. ❤
@dudidahan8721
@dudidahan8721 2 жыл бұрын
WOW, thank you for sharing this video!
@Greg-ld4tr
@Greg-ld4tr Жыл бұрын
Thank you for the enlightening video. In order to calculate the PSD you have to use the prefactor 2/n**2, i.e. PSD = 2 * fhat * np.conj(fhat) /n**2, right?
@monkeypoohonyou
@monkeypoohonyou Жыл бұрын
Amazing lecturer!
@pdirac
@pdirac 3 жыл бұрын
Brilliant. Just brilliant. Thanks
@berkceyhan5031
@berkceyhan5031 2 жыл бұрын
First I liked, then I watched. Amazing!
Computing Derivatives with FFT [Matlab]
12:00
Steve Brunton
Рет қаралды 29 М.
The Discrete Fourier Transform (DFT)
17:36
Steve Brunton
Рет қаралды 353 М.
When u fight over the armrest
00:41
Adam W
Рет қаралды 30 МЛН
ТЮРЕМЩИК В БОКСЕ! #shorts
00:58
HARD_MMA
Рет қаралды 2,5 МЛН
Happy birthday to you by Secret Vlog
00:12
Secret Vlog
Рет қаралды 6 МЛН
А я думаю что за звук такой знакомый? 😂😂😂
00:15
Денис Кукояка
Рет қаралды 1,7 МЛН
Zero to Hero: Okta OAuth User Syncing with OSS UC
24:49
Unity Catalog
Рет қаралды 14
Wavelets and Multiresolution Analysis
15:12
Steve Brunton
Рет қаралды 144 М.
Audio Data Processing in Python
19:52
Rob Mulla
Рет қаралды 169 М.
ML Was Hard Until I Learned These 5 Secrets!
13:11
Boris Meinardus
Рет қаралды 339 М.
Solving PDEs with the FFT [Python]
14:56
Steve Brunton
Рет қаралды 51 М.
Wavelets: a mathematical microscope
34:29
Artem Kirsanov
Рет қаралды 646 М.
The Fast Fourier Transform Algorithm
10:18
Steve Brunton
Рет қаралды 175 М.
Has Generative AI Already Peaked? - Computerphile
12:48
Computerphile
Рет қаралды 1 МЛН
Extract Musical Notes from Audio in Python with FFT
10:26
Jeff Heaton
Рет қаралды 26 М.
Basic Sound Processing in Python | SciPy 2015 | Allen Downey
18:59
When u fight over the armrest
00:41
Adam W
Рет қаралды 30 МЛН