I am not able to retrieve wavelet of frequencies from a certain code. Previously, when I was making 1/2 single frequency as input it was showing me results, but now blue color

1 次查看(过去 30 天)
I am trying to find the 62 and 66 khz of normalized power spectrum in my wavelet plot but the whole region is showing blue. I am not sure what I am doing wrong. The code was working fine when I was giving input as
y=0.7925*sin(2*pi*62e3*t)+1*sin(2*pi*66e3*t)
But when I am input the value of y from a system its showing this whole blue region in wavelet plot. I am providing you the data file of value "y" which is basically the non-dimensional displacement value of system with time.
  4 个评论
Walter Roberson
Walter Roberson 2023-11-13
imagesc(tnew,Freq*2*pi/2/pi,(Module'.^1/100))
Did you realize that that takes Module, does a complex-conjugate transpose on that, raises the result to the power 1 (which will not change the values at all), and divides the result by 100 ?
In particular, it does not raise the conjugate transpose of Module to the power 1/100
Abrar Nur-E
Abrar Nur-E 2023-11-13
编辑:Abrar Nur-E 2023-11-13
I tried changing the value of from 6 to 0.06 and also tried not transposing the module value... but no luck. Did you able to find the wavelet plot?

请先登录,再进行评论。

采纳的回答

Walter Roberson
Walter Roberson 2023-11-13
F0 = 1000;
[tnew,Freq,Module]=freq_inst_morlet(y,SampleFreq,IniFreq,FinFreq,No_Freq,F0);
You are passing in 1000 for the F0 parameter
function [tnew,interval_freq,module] = freq_inst_morlet(xnew,FS,fi,ff,nf,Fo,pad)
which is received in the name Fo
filtre(j,jj)=sqrt(a(j))*(2^0.5)*exp(-0.5*(interm1(jj)-2*pi*Fo).^2);
2*pi*Fo is 2*pi*1000 is about 6300 being subtracted from interm1(jj) . Unless interm1(jj) is close to the same value, the subtracting is likely to end up about -6300. Which is then squared to get a positive value about 4e7, then -1/2 of that is taken, giving about -2e7 . exp() of that is functionally 0.
In order to avoid that, interm1 would have to be near 6300. But interpm1 is a times a relative frequency and the relative frequency is going to be < 1. So a would have to be in the thousands. But
for i=0:nf
a(i+1) = Fo/(fi+i*pasf);
end
Fo is about 1000 and fi is IniFreq = 57e3 so a is going to be less than 1.
I have not worked it out in detail, but I think you have a problem because the frequencies you are working with such as 57e3 are much larger than your F0.
It is difficult to tell what is supposed to happen, since the morlet code contains exactly zero comments.

更多回答(0 个)

类别

Help CenterFile Exchange 中查找有关 Continuous Wavelet Transforms 的更多信息

标签

产品


版本

R2023b

Community Treasure Hunt

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

Start Hunting!

Translated by