Comparing wavelet, filter-Hilbert, and STFFT

แชร์
ฝัง
  • เผยแพร่เมื่อ 20 ธ.ค. 2024

ความคิดเห็น • 17

  • @barbasbandas6665
    @barbasbandas6665 2 ปีที่แล้ว +2

    Thank you for these video series!

  • @rubenkrupper5259
    @rubenkrupper5259 ปีที่แล้ว +1

    Another banger. Was getting really hung up on whether to switch our existing codebase to wavelets but now I see it's probably just not worth the effort.

    • @mikexcohen1
      @mikexcohen1  ปีที่แล้ว

      Each of these methods has some advantages (mostly practical), but they're a lot more similar than they are different.

  • @simon_a5745
    @simon_a5745 ปีที่แล้ว

    About stft being slower than cwt, it depends… At fixed analysis parameter, the computation time of stft scale linearly with the length of the input, for cwt it rises quicker than that because of both the log(n) term in the complexity of fft and the cache memory hierarchy of our imperfect computers. I mean 100 000 fft of size 512 is way quicker than 512 fft of size 100 000 (or any well chosen size larger than this)
    For instance after a quick benchmark on my machine using fftw3 :
    131072 fft of size 512 => 68.175ms
    512 fft of size 131072 => 225.6ms

    • @mikexcohen1
      @mikexcohen1  ปีที่แล้ว +1

      True, good point, Simon. I could have clarified that that statement was not general about the implementation of FFT vs CWT, but if you have a fixed signal to analyze, then the STFFT involves more FFTs than wavelet convolution on the same signal, using typical parameter settings.

  • @eazyg9742
    @eazyg9742 2 ปีที่แล้ว +1

    Your videos are wonderful, thank you for them.
    I am a PhD student working on an entirely different topic, "acoustic source localization".
    Many methods on my field rely on comparing the phase of the signals recorded using different microphones.
    Most methods used rely on the aforementioned Short Time Fourier Transform (STFT) method,
    I wonder if they could be improved by using wavelets...

    • @mikexcohen1
      @mikexcohen1  2 ปีที่แล้ว +1

      Thanks :)
      I suspect that the parameters of the analysis would be more impactful than the choice of algorithm for estimating phases. The best way to test this is to simulate a signal with known phase dynamics, then apply the different methods to see which one most accurately reconstructs the phases.

    • @eazyg9742
      @eazyg9742 2 ปีที่แล้ว

      Thanks for the answer :)
      I guess one disadvantage of the STFT is that you cannot have different resolution for different frequencies, maybe wavelets could be useful in this respect.

    • @mikexcohen1
      @mikexcohen1  2 ปีที่แล้ว +2

      That's possible with STFT -- you would run an FFT at the same center time point using different window sizes for different ranges of frequencies. It's a pain to code and is computationally expensive (LOTS of FFTs!) and not very elegant. So yeah, wavelets are better for this :)

  • @clau_notdoctor
    @clau_notdoctor ปีที่แล้ว +1

    Hi! I love your videos and books. Both have help me a lot of signal analysis. I have a question, can you do a wavelet and after that a Hilbert over the results of the wavelet? Someone in my lab do this, and I don't know if it is right or not. Thanks!

    • @mikexcohen1
      @mikexcohen1  ปีที่แล้ว +1

      Thank you, Claudio :)
      If you use a real-valued wavelet, then the result of convolution is real-valued, and you could then apply the Hilbert transform to it. But that's equivalent to using a complex-valued wavelet, so it seems like more steps (and computation time) to achieve the same result. But it could be appropriate; I wouldn't make any judgments without knowing the details and the goals

  • @DieselBoulder
    @DieselBoulder ปีที่แล้ว

    Am I correct in thinking then that wavelets are then a better method than STFFT or FFT for stationarity confirmation

    • @mikexcohen1
      @mikexcohen1  ปีที่แล้ว

      imho, yes. But it depends on the type of data and implementation.

  • @NoamZelinger
    @NoamZelinger ปีที่แล้ว

    Thank you for the video (and the whole series! much better than some lecturers in the university...)
    I saw all the previous Video and I missed something crucial: when did we move from discrete FT to fast FT? Until this video I thought the FFT stands for forward fourier transform but here you say fast so I realize I have a problem... Thanks!

    • @mikexcohen1
      @mikexcohen1  ปีที่แล้ว

      Thank you kindly, Noam :)
      The "FFT" is fast Fourier transform. The "forward" part is implied. So, people use FFT (or DFT for discrete Fourier transform) to indicate the forward transform, and IFFT for the inverse.
      The FFT and DFT are identical in inputs and outputs; the FFT is just a computational trick involving matrix decompositions to implement the FT in a lot less computation time.

  • @thesined23
    @thesined23 3 ปีที่แล้ว

    Hi Mike. thank you. but it's not clear at 11:08 which line belongs to which method. could you put better picture? and which is line quicker?

    • @mikexcohen1
      @mikexcohen1  3 ปีที่แล้ว +2

      These aren't my data; it's a figure from a published study. But it doesn't actually matter which line is which, because they overlap nearly perfectly.