mapping frequencies to scales
조회 수: 4 (최근 30일)
이전 댓글 표시
I have found function that map scales to frequencies as scal2frq, but is there a way to map the frequencies to scales, I have try to edit the scal2frq to be frq2scal, but the output scales for a certain frequencies become too slow, which cause the cwt function to give me zeros as an output, whatever the signal input was, to be more espicific I have tried to find the equivalent scales for the frequencies 1:40 Hz, and the "frq2scal" gives me the following:
0.005208333333333
0.002604166666667
0.001736111111111
0.001302083333333
.
.
.
and the code of function frq2scal is :
function a = frq2scal(f,wname,delta)
if isempty(f) , a = f; return; end
if nargin == 2, delta = 1; end
err = (min(size(f))>1) | (min(f)<eps);
if err
error(message('Wavelet:FunctionArgVal:Invalid_FrqVal'))
end
if delta <= 0
error(message('Wavelet:FunctionArgVal:Invalid_DeltaVal'))
end
% Compute pseudo-scales
a = centfrq(wname)./(f.*delta);
from my search, what Im looking seems to be weared or it's wrong, I have an idea telling me: you can't specify the scales! the scales is given by the output of the wavelet transforms! if this is true, my question will convert to: I want to study the behaviour of the signal at frequencies 1:40 Hz along with time, How to do this in wavelet transform?
댓글 수: 0
답변 (1개)
Abdul Baseer Buriro
2016년 6월 17일
Just use/ create your own online function as I did. Find the same that used. function [scale] = AB_freq2scal(freq,wname,fs) % You can by yourself edit the program to show you the error if some thing goes inappropriate. scale=centfrq(wname)*fs./(freq); end
댓글 수: 0
참고 항목
카테고리
Help Center 및 File Exchange에서 Continuous Wavelet Transforms에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!