필터 지우기
필터 지우기

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