What is the difference between the complex morlet waveform and the morlet wavelet transformation (cwt)?

22 views (last 30 days)
Hi, thats my question: What is the difference between the complex morlet waveform and the morlet wavelet transformation (cwt)? Any ideas? Thanks, Peter

Accepted Answer

Wayne King
Wayne King on 16 May 2013
Complex-valued wavelets are useful in cases where you want to analyze phase as well as magnitude.
Additionally, complex-valued wavelets that are analytic (have their frequency support on only 1/2 the real line) offer other advantages in the analysis of modulated signals (just for example). Note that the 'morl' option with cwtft.m is the analytic Morlet wavelet.
  1 Comment
Maria
Maria on 5 Sep 2013
I have another question relating this topic: - is the 'morl' option in 'cwtft' the COMPLEX analytic Morlet Wavelet or the REAL analytic Morlet Wavelet? - is there any possibility to analyze a signal with a COMPLEX! wavelet (e.g. complex morlet wavelet, e.g. 'cmor1-1') using the 'cwtft' function?
Thank you

Sign in to comment.

More Answers (2)

Jamais avenir
Jamais avenir on 9 Sep 2013
Hi, Complex morlet function is psi(t,fc,fb)=[(pi*fb)^(-1/2)]*exp(2*pi*fc*t)*exp(t^2/fb) according to matlab help file. obviously fb is bandwidth and fc is center frequency. you can use cmorfb-fc and cwt to transform your signal.now imagine morlet wavelet is express by mypsi(t,wo)=exp(wo*t)*exp(-t^2/2) where wo is 2*pi*fc. the Fourier transform of mypsi(sw,wo)=sqrt(2*pi)*exp(-(sw-wo)^2/2). so as you saw in matlab help the Fourier transform of morl is PSI_hat(s*w)=pi^(-1/4)*exp(-(s*w-wo).^2/2). so compare to myspi the time domain function must be:PSI^(t,wo)=pi^(-1/4)*1/sqrt(2*pi)*exp(-t^2/2)*exp(j*wo*t) so you are right.compare to first equetion 'psi' fc is considered wo/(2pi), and you can change wo value with 'parm' parameter.but i am not sure what fb is. if we compare the constant of psi and PSI we find fb=sqrt(pi). but if we compare the t^2/fb we find fb=2.so I don't know about fb. tell me if you find the answer.anyway matlab dosent let you to change fb in cwtft morlet function, but if you want you can change morlt built in function like this : PSI_hat(s*w)=pi^(-1/4)*exp(-(s*w-wo).^2/F) if you change F it means Fb will change too. but i am not sure if fb=F or not. also i was I know that freq= fc / (scale * dt) but in cwtft matlab used 1/scales to find frequency. look at it's example. i didn't understand your second question at all. also you said you are useing cwtft cause your signal is long. but what is the difference of cwt and cwtft in this case? Hope it was useful ask me if my answer was not clear.
  2 Comments
Maria
Maria on 10 Sep 2013
Thank you again for your answer!
I also don´t know how to get fb when comparing the 'cmor'-wavelet (psi(t,fc,fb)) with the wavelet we got (PSI(t,w0). I have tried it in different ways, but I don´t know...
About the Morlet Fourier Factor: so far I know 'cwtft' doesn´t use the Morlet Fourier Factor when you just called the function. Only when you want to plot the Wavelet Transform in the (time,frequency)-plane instead of the (shifts,scales)-plane you have to convert scales to pseudo-frequencies (using 'scal2frq' or the relationship F = 1/(scales*MorletFourierFactor)). But where exactly does the formula for the Morlet Fourier Factor comes from?
About the last question: I think I know the answer, I was just a little confused. H(omega) ~= H(scales). You have to make a conversion from H(scales) to H(omega). Or in other words, convert scales to pseudo_omega and then pick the right Wavelet coefficients corresponding to the pseudo_omega.
About the difference between 'cwt' and 'cwtft': 'cwtft' is more computer efficient. But well, I have also tried to compute the wavelet transform with 'cwt'. But I still get a weird phase for my frequency response function H.
Well, thank you a lot.
Maria
Jamais avenir
Jamais avenir on 10 Sep 2013
if you use general cmor wavelet function : psi(t,fc,fb)=[(pi*fb)^(-1/2)]*exp(2*pi*fc*t)*exp(t^2/fb) . it's Fourier transform will be PSI^=sqrt(pi*fb)*exp(-fb(w-2*pi*fc)/4). also you know 2pi*fc is wo. but as you know matlab cwtft function doesn't support this transform, so you must change its built in Fourier transform of morl to this sqrt(pi*fb)*exp(-fb(w-2*pi*fc)/4). matlab considered fb is constant.I have changed it and it was working better. Also i am studyding about "MorletFourierFactor", I will let you know when i understand it.thanks for your answer about cwt and cwtft. it seems you have valuable information about this topic. I would like to share our information too. send me your email address if you are interested.

Sign in to comment.


Jamais avenir
Jamais avenir on 5 Sep 2013
I use complex morlet function when I want to estimate frequency and damping in a 1-D signal. but for estimating only the frequency you can use morlet. also in complex morlet(cmor) wavelet you can adjust values of Fb and Fc. thats very very important and make cmor strong. also about your question in comments. the 'morlet' in cwtft is complex.but it seems you cant change Fb and Fc in it. P.S let me know if you know how to change Fb and Fc in cwtft morlet.
  4 Comments
Maria
Maria on 8 Sep 2013
Hi again,
thank you for the hints with 'cwt' and how to use it with customized wavelets. The thing is I want / have to use 'cwtft' because the signals I wanna analyze for online system identification are a little long (with 'cwt' MATLAB blocks and I have sometimes OUT OF MEMORY-problems).
Why I asked above about the 'morl' option in 'cwtft' was because I wanna know exactly how the wavelet is expressed mathematically in the time domain. I mean, from the Documentation I know (for the 'morlex' option):
PSI_hat(s*w) = pi^(-1/4) * exp(-(s*w-w0).^2/2)
After transforming it I got:
psi(t) = pi^(-1/4) * 1/sqrt(2*pi) * exp(-t^2/2) * exp(j*2*pi*fo*t)
Do you get the same?
Then I tried to compare it with the formula for the complex morlet Wavelet I have from a book:
psi(t) = (beta/pi)^(1/4) * exp(-beta/2 * t^2) * exp(j*2*pi*f_psi*t)
Using this formula you see that the wavelet is always normalized (energy = 1) and one can choose the parameters f_psi and beta, similarly to fc and fb in 'cmor' (normally f_psi = sqrt(beta) for admissibility reasons).
So my questions:
- How to express the 'morl' or 'morlex' option in the time domain mathematically? Or in other words: which fc and fb does the wavelet have?
- Where exactly comes the Morlet Fourier Factor from? I mean, I know it is a factor for converting scales to pseudo-frequencies, but I always learned that you use the formula f = fc / (scale * dt).
- And a last question, that may be a bit stupid, but I want to be sure: From the wavelet transforms I can calculate a time-varying frequency response function that depends on the scales and shifts: H(scales, shift). Now I wanna estimate the time-varying parameters minimizing a criteria function:
J = ... log10(H(omega)) - log10(H_model(omega, parameters))
The model transfer function H_model depends on the frequencies / omega. But is H(omega) == H(scales)? In other words, if I want the estimated time-varying frequency response function H (which actually depends on the scales and shifts) to depend on the frequencies or omega, do I have to make a conversion??
Thank you!
Maria
Paramonte
Paramonte on 1 Nov 2013
I belive in cmorFb-Fc Fb=2(sigma).^2 where sigma is the time standard deviantion of the wavelet (you can relate it also to the fourier transform of the wavelet).

Sign in to comment.

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!