You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Derive the central frequency and bandwidth of a CWT based on the amplitude spectrum of a signal #797
I am using Python 3.12.0 with numpy 2.1.3, scipy 1.15.2, and PyWavelets 1.8.0
I have a signal with a sampling rate of 4.8146e-11 sec. The attached figure shows its amplitude spectrum. I am interested in designing three CWT wavelets at specific frequencies (indicated by the colored rectangles).
Going through the documentation on the CWT, I noticed that a complex morlet can be designed by defining its central frequency and bandwidth. How can these values be estimated from the amplitude spectrum of the input signal? For instance, the red channel is centered at 5e7 Hz, and I would like the wavelet to have a bandwidth of 2e7 Hz.
Activity
ivan-marroquin commentedon Apr 5, 2025
The documentation for CWT mentions wavelet 'cmor1.5-1.0'. Are these values normalized using frequency sampling? If so, I have this code:
dt= 4.8146e-11
fr= 50000000 / (1 / dt)
b= 20000000 / (1 / dt)
w= f'cmor{b}-{fr}'.format(b, fr)
[psi,x]= pywt.ContinuousWavelet(w).wavefun(level= 5, length= 21)
plt.plot(x, np.real(psi))
plt.show()
The derived wavelet does not look right. What am I missing?
Thanks for your help,
Ivan