Really interesting video and really appreciate the amount of passion and hardwork has gone into this.One point though: @11:04 ..the amplitude of the sine wave is fluctuating. Only if it had been a complex signal rather than a sinusoid would its amplitude be constant.
Great point, thanks Ranjit. Indeed, we always use complex-valued wavelets for the analyses, but I find it useful to start by introducing real-valued wavelets.
@@mikexcohen1 I must say, your videos are quite lucid and easy to comprehend and most importantly ..a good sense of humor.Good content and really love the color palette for the waveforms. Please keep up the good work.
Hmm, that does seem to be the case. They're auto-generated. From some googling, this seems to happen sometimes with long videos, although this isn't my longest YT video. It doesn't seem possible to re-start the autogen process. I'll look into it, thanks for letting me know.
Thanks for the video. I'm doing analysis on Pilot Induced Oscillations using Morlet wavelets and this was a great introduction. By the way, is a Morlet wavelet a small version of a Mor wavelet?
lol, yeah I think so. They're named after Jean Morlet, a French geophysicist. He was the son of Jean Mor, who invented the sine wave. (OK ok, that last sentence is just a joke.)
This whole series is in MATLAB. I have a bunch of other videos and courses in Python. I'm currently working on a course about deep learning in PyTorch, which will probably be finished in the summer...
Hehe. 😅 Let's assume I have the background I don't. It'll be fine with time. Topically relevant to what I'm looking into. You're videos seem fun and informative from what little I've seen so far.
Good question. One reason is theoretical: A Morlet wavelet is created by multiplying by a Gaussian [ exp(-x^2) ], and a Gaussian can never be zero; it can only asymptote to zero. The second reason is that due to underflow, digital computers have a hard time computing exact zero, so you end up with tiny numbers like 1e-16. On the other hand, there is a "practical zero" here where the values at the edges get so tiny that they have no real effect on the data.
@@mikexcohen1 Hi Mike, thanks for replying to that so quickly! It didn't occur to me that the Gaussian would also never be 0 but it makes sense from the way that it's calculated.
This sliding of the Morley wavelet over the series seems like the exact same thing as the STFT. Where instead of applying this window function on the input signal, you're applying the window function on the convolution wave
Yes, that's a good summary. Most "different" methods for time-frequency analysis are actually very similar to each other. Wavelet convolution has some advantages over the STFT (e.g., easier and faster to implement, fewer parameters), but the end result will be basically the same.
@@mikexcohen1 it seems like it would be slower to run, as youd need to run it for every frequency and time window: O(t x f) . Where was with STFT, you're only running for every time window (getting all the frequencies for that window at once): O(t)
It depends on how you set it up and on how many time bins you have. Let's say you have 20 frequencies to extract. You need 1 FFT for the data, 20 FFTs for each wavelet, and 20 IFFTs. So that's 41 FFTs in total for the entire TF map. In neuroscience data analysis, we might have 2000 time points. If you extract 41 time bins for the STFFT, then the number of FFTs is the same, but 41 bins for 2000 time points is rather sparse. Furthermore, people often want to change the width of the time bins over different ranges of frequencies. Let's say you have three bins of frequency ranges with different time windows for the same center time point. So then the number of FFTs for the STFFT is actually 3N where N is the number of time time bins. To match the temporal resolution between STFFT and wavelet convolution, you'd need 2000 FFTs X 3 frequency bins = 6000 FFTs. So the way I've described it here, it's 41 FFTs for the wavelet analysis and 6000 for the STFFT analysis. But again, this is not trivially always the case; it all depends on how you set things up.
@@mikexcohen1 from what I've read, you've missed out the convolution step for the wavelet transforms. U use 41 ffts to the relevant frequencies, but you still have to do this for every time step - unless I'm confused.
Yes, 2D Morlet wavelets are used for filtering images and feature-detection. Although image processing is increasingly done through deep learning models like CNNs.
@@mikexcohen1 Thank you very much for answer. I actually want to ask whether morlet wavelet can be used as kernel in convolution. Why is it not popular in image processing?
Yes, Morlet wavelets are commonly used as convolution kernels. They work great for signals and for images. A lot of image processing is moving towards ML/DL/AI techniques.
that joke with let okayyyy srsly AHAHA but before that much thanks and appreciation for your vids! much thorough explanation and Im getting interested along the way!
Nope, but the book that this course is based on has been translated into Python. See my github repo for the ANTS book for links. That said, I do have a signal-processing course (non-neuroscience-related) that is in both MATLAB and Python.
This is a very good explanation series that other channels didn’t provide, even with many views one, much appreciation sir !
Thank you kindly, exoticcoder5365 :)
don't quit your day job...
these videos are insanely helpful.
lol, making these videos is my night job ;)
The time frequency representation is an art.
U killed me with that joke-let
In these times, even bad jokes can be useful!
High quality! Thank you. I am trying to base my intuition in this subject for a while, this is very beneficial.
Glad it was helpful!
Really interesting video and really appreciate the amount of passion and hardwork has gone into this.One point though: @11:04 ..the amplitude of the sine wave is fluctuating. Only if it had been a complex signal rather than a sinusoid would its amplitude be constant.
Great point, thanks Ranjit. Indeed, we always use complex-valued wavelets for the analyses, but I find it useful to start by introducing real-valued wavelets.
@@mikexcohen1 I must say, your videos are quite lucid and easy to comprehend and most importantly ..a good sense of humor.Good content and really love the color palette for the waveforms. Please keep up the good work.
I think you may have inspired students to learn morelet about this topic.
lol thank you :)
Excellent video. Thank you. I'm looking for a transcipt to this video, but I cannot find one.
Hmm, that does seem to be the case. They're auto-generated. From some googling, this seems to happen sometimes with long videos, although this isn't my longest YT video. It doesn't seem possible to re-start the autogen process. I'll look into it, thanks for letting me know.
You are a great teacher!
I wonder what are some practical use-cases of these transformations? Is it to eliminate some of the noise?
Thanks! Morlet wavelets are often used in time-frequency analysis, i.e., creating a spectrogram, which shows how spectral energy changes over time.
Congratulation for the explanation!!
May I ask one question¿ why the icwt in matlab of one wavelet coefficient is just a point ¿
7:09 I caught that joke lol
A life saver! Thanks for these helpful tutorials!
I love the dad-tier jokes too btw.
Glad you like them! (The videos and the jokes.)
Thanks for the video. I'm doing analysis on Pilot Induced Oscillations using Morlet wavelets and this was a great introduction.
By the way, is a Morlet wavelet a small version of a Mor wavelet?
lol, yeah I think so. They're named after Jean Morlet, a French geophysicist. He was the son of Jean Mor, who invented the sine wave. (OK ok, that last sentence is just a joke.)
I see that your course uses Matlab, would you consider doing a PyTorch version?
This whole series is in MATLAB. I have a bunch of other videos and courses in Python. I'm currently working on a course about deep learning in PyTorch, which will probably be finished in the summer...
@@mikexcohen1 thanks for the reply, I like your style
Hehe. 😅 Let's assume I have the background I don't. It'll be fine with time. Topically relevant to what I'm looking into. You're videos seem fun and informative from what little I've seen so far.
You're awesome, Matthew :)
Superb sir
Why are the edges of the Morlet Wavelet only close to 0 and not exactly 0?
Thanks for the great course!
Good question. One reason is theoretical: A Morlet wavelet is created by multiplying by a Gaussian [ exp(-x^2) ], and a Gaussian can never be zero; it can only asymptote to zero. The second reason is that due to underflow, digital computers have a hard time computing exact zero, so you end up with tiny numbers like 1e-16.
On the other hand, there is a "practical zero" here where the values at the edges get so tiny that they have no real effect on the data.
@@mikexcohen1 Hi Mike, thanks for replying to that so quickly! It didn't occur to me that the Gaussian would also never be 0 but it makes sense from the way that it's calculated.
i love waves
Me too 🌊💜
Third times the charm. Will this video actually give an example of a wavelet function or continue to handwave
YES thank you best wavelet intro on youtube!
This sliding of the Morley wavelet over the series seems like the exact same thing as the STFT. Where instead of applying this window function on the input signal, you're applying the window function on the convolution wave
Yes, that's a good summary. Most "different" methods for time-frequency analysis are actually very similar to each other. Wavelet convolution has some advantages over the STFT (e.g., easier and faster to implement, fewer parameters), but the end result will be basically the same.
@@mikexcohen1 it seems like it would be slower to run, as youd need to run it for every frequency and time window: O(t x f) . Where was with STFT, you're only running for every time window (getting all the frequencies for that window at once): O(t)
@@mikexcohen1 I asked a question about this here: dsp.stackexchange.com/questions/68015/wavelets-vs-fourier-transforms
It depends on how you set it up and on how many time bins you have. Let's say you have 20 frequencies to extract. You need 1 FFT for the data, 20 FFTs for each wavelet, and 20 IFFTs. So that's 41 FFTs in total for the entire TF map. In neuroscience data analysis, we might have 2000 time points. If you extract 41 time bins for the STFFT, then the number of FFTs is the same, but 41 bins for 2000 time points is rather sparse. Furthermore, people often want to change the width of the time bins over different ranges of frequencies. Let's say you have three bins of frequency ranges with different time windows for the same center time point. So then the number of FFTs for the STFFT is actually 3N where N is the number of time time bins. To match the temporal resolution between STFFT and wavelet convolution, you'd need 2000 FFTs X 3 frequency bins = 6000 FFTs. So the way I've described it here, it's 41 FFTs for the wavelet analysis and 6000 for the STFFT analysis. But again, this is not trivially always the case; it all depends on how you set things up.
@@mikexcohen1 from what I've read, you've missed out the convolution step for the wavelet transforms. U use 41 ffts to the relevant frequencies, but you still have to do this for every time step - unless I'm confused.
Is morlet wavelet useful in image processing? I googled and there are a few study about that.
Yes, 2D Morlet wavelets are used for filtering images and feature-detection. Although image processing is increasingly done through deep learning models like CNNs.
@@mikexcohen1 Thank you very much for answer. I actually want to ask whether morlet wavelet can be used as kernel in convolution. Why is it not popular in image processing?
Yes, Morlet wavelets are commonly used as convolution kernels. They work great for signals and for images. A lot of image processing is moving towards ML/DL/AI techniques.
Can you please apply wavelet on geophysical data ?
Thank you so much
Hope you will answer me about this
Sure, you can apply wavelet convolution to any regularly sampled time series data.
Can you multiply elementwise the sine waves by non Gaussian distribution?
Sure, you can use any tapering function. But a Gaussian is a great to use for several reasons, including the smoothness and spectral properties.
Thank you very much 👏👏👏
that joke with let okayyyy srsly AHAHA but before that much thanks and appreciation for your vids! much thorough explanation and Im getting interested along the way!
Is there python version for this course
Nope, but the book that this course is based on has been translated into Python. See my github repo for the ANTS book for links.
That said, I do have a signal-processing course (non-neuroscience-related) that is in both MATLAB and Python.
7:04😂 Good one.
I like the jokelet :3
so useful!
Glad it was helpful!
I love you
Aww... I love you too, aayushbajaj2260.
Best joke ever
Great joke buddy ;) Keep on going =)