Convolution as spectral multiplication

Sdílet
Vložit
  • čas přidán 23. 08. 2024

Komentáře • 23

  • @sumanmighty
    @sumanmighty Před 3 lety +5

    Wow . Just wow. This is such a great explanation.

  • @jiongwang7645
    @jiongwang7645 Před 3 lety +2

    such an elegant explanation! thanks a lot!

  • @brendawilliams8062
    @brendawilliams8062 Před rokem

    Thankyou

  • @addyad_yt
    @addyad_yt Před 3 lety

    Hi, Thanks, nice illustrations and examples. Can you make a video about deconvolution of 1D signals? For example, if we have the observed signal and the input kernel, how to identify the system function (reflectivity series). It is really hard to understand this concept because it is an inverse problem.

  • @saeedmirzaee8315
    @saeedmirzaee8315 Před 3 lety

    Thank you sir ,keep going and make your powerful and fantastic totourial

  • @shubhamnayak5398
    @shubhamnayak5398 Před 4 lety

    How to make the signal that you were using to explain morlet wavelet as spectral filter or similar random signal that are combination of different frequencies and are not stationary in matlab?

  • @wwmheat
    @wwmheat Před rokem

    Thank you Mike for the great video! Im struggling to wrap my head around one thing though.. At this panel that starts at around 11:00 we see the signal, kernel, result of convolution and the image of spectral multiplication. When I go through it from top to bottom, through convolution, it seems perfectly intuitive. We have this signal changing with time, and the convolutions with the wavelet of certain frequency helps us to clearly uncover, let's say, this "blob" of that frequency starting after approx. 2/3 of the orange time series (Result). So, there is some temporal dynamics, and the convolution helps to emphasize it. That's okay. However, I can't get how the inverse fourier transform (when mentally going from 'frequency' timeseries up to 'Result') could recover the same blob at the exact time? I mean, how the frequency spectrum, multiplied by that gaussian image of wavelet in frequency domain - which makes it very localized to short range of frequencies - how this frequency spectrum after it is deciphered back to time domain can still hold the information about that exact timing of that blob on the orange line? Thanks

    • @mikexcohen1
      @mikexcohen1  Před rokem

      Hi Valeriy. The images I show are simplified. I only show the amplitude spectrum for simplicity and interpretability. But actually, the multiplication is with the complex-valued spectrum, which means it includes the phases. The phase information is where the temporal dynamics are stored.

  • @romanvereb7144
    @romanvereb7144 Před 4 lety

    Spectacular

  • @bokkieyeung504
    @bokkieyeung504 Před 3 lety

    Thanks for the video!
    at 17:00, what do you mean by saying "that length is n+m-1"? I think n+m-1 is the length of the convolution result. but for spectra multiplication, I think the frequency resolution matters? although the length of signal (n)/kernel (m) will affect frequency resolution.
    and I can't understand why IFFT will get a result of length n+m-1? I think n+m-1 is originated from the "time-series sliding with zero-padding" procedure, which is the convolution in time domain, i.e., the top panel of your comparison plot, but 5-steps here are related to the bottom panel, right? I know they are equivalent, but I expect with the procedure done in frequency domain, there is no need for zero-padding (thus no need to cut of "wings") as we did in the time-series sliding procedure?
    but seems that you also mentioned if the signal and kernel have different lengths, we will zero-padding when we do FFTs for them (separately). the purpose for this is to get the same frequency resolution in order to multiply spectra?
    I know you emphasized that zero-padding in the time-series sliding vs. FFT are different things, but I get confused... sorry for the long question list

    • @mikexcohen1
      @mikexcohen1  Před 3 lety +1

      Yes, that's how it works. The zero-padding is necessary to get the spectra to match perfectly in frequency resolution. Imagine if the signal were 1000 points long and the kernel were 20 points long -- you can't multiply their spectra unless you zero-pad. The n+m-1 number is to get it to match with the time-domain convolution. If you only zero-pad to max(m,n), you get what's called "circular convolution" (n+m-1 is linear convolution). That's also a valid operation, but the edge effects wrap around the signal, so artifacts from the beginning of time appear at the end. Linear convolution pushes those edge effects into the "wings," so they get cut off. That's why it's more commonly done.

    • @bokkieyeung504
      @bokkieyeung504 Před 3 lety

      thanks for the detailed explanation. You mentioned "match" between time and frequency domain. So (n+m-1) will be valid for both the "time-series sliding with zero-padding" procedure and the "separate FFT-multiplication-IFFT" procedure.

  • @mandychan8282
    @mandychan8282 Před 3 lety

    Thank you very much for your wonderful illustration. I have a question about IFFT, hoping that you could explain further. As you mentioned the transformation of frequency spectrum back into time-domain using IFFT can result in the same time series pattern. How is the sequence conveyed in the frequency spectrum? Could it be possible that, after IFFT, the frequencies are all there but they are in different order? Thank you.

    • @mikexcohen1
      @mikexcohen1  Před 3 lety +1

      Hi Mandy. As long as the Fourier coefficients aren't shuffled, the reconstruction in the time domain will be accurate. I have some videos on IFFT (e.g., #12 in NEW ANTS2, and probably one in the OLD ANTS series) that I hope will help clarify this point.

    • @mandychan8282
      @mandychan8282 Před 3 lety

      @@mikexcohen1 I see. Thanks for the guide!! Your tutorials are fantastic and I'm looking forward to go through them!

  • @addyad_yt
    @addyad_yt Před 2 lety

    what is the optimal amplitude of the kernel should be? after convolution, my signal's amplitude becomes very high, in my case more than my kernel.

    • @mikexcohen1
      @mikexcohen1  Před 2 lety

      Normalization is always tricky in signal processing. There are often different normalizations that achieve different goals. What I like to do is max-value normalize the wavelet in the frequency domain. So you scale the wavelet spectrum such that the maximum amplitude gain is 1. That normalizes for unit gain at the peak frequency.

    • @addyad_yt
      @addyad_yt Před 2 lety

      @@mikexcohen1 thanks!

  • @tobi3497
    @tobi3497 Před 4 lety

    Why do you 0-pad m on boths sides, instead of m/2 on both sides. If you 0 padded only m/2 on both sides, wouldn't this mean you wouldn't require step 5 (cutting off the wings)

    • @mikexcohen1
      @mikexcohen1  Před 4 lety

      Good observation. When doing convolution in the time domain, you can indeed start the loop at m/2. But to get the results to match with spectral multiplication, you need the full resolution.