I want to compute cwt at scale 5 to detect local maxima at this scale so I did this : cfs = cwt(x,5,'haar'); plot(cfs); Is my program correct or I need to use all scales from 1 to 5?

 採用された回答

Wayne King
Wayne King 2011 年 11 月 7 日

1 投票

Hi Claire, yes, your code is correct, but are you sure you don't want to include at least a few more scales?
That can help in identifying local maxima lines:
load cuspamax;
x = 1:length(cuspamax);
scales = 1:32;
cfs = cwt(cuspamax,scales,'haar');
[lmaxima,indices] = localmax(cfs,[],false);
[iRow,iCol] = find(lmaxima);
subplot(211);
imagesc(abs(cfs)); axis xy;
axis([1 1024 1 32]);
ylabel('Scale'); title('CWT Coefficients (Moduli)');
subplot(212);
plot(x(iCol),scales(iRow),'marker','o','markerfacecolor',[0 0 1],...
'linestyle','none');
xlabel('Position'); ylabel('Scale'); title('Maxima Lines');
axis([1 1024 1 32]);

3 件のコメント

claire
claire 2011 年 11 月 8 日
Thanks for answering me, did you choose scale 32 for a particular reason?
Wayne King
Wayne King 2011 年 11 月 8 日
No, Claire just as an example.
Jean-Luc Bruyelle
Jean-Luc Bruyelle 2015 年 7 月 9 日
How do we choose the appropriate scales using the same function ?

サインインしてコメントする。

その他の回答 (0 件)

カテゴリ

ヘルプ センター および File ExchangeWavelet Toolbox についてさらに検索

タグ

Community Treasure Hunt

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

Start Hunting!

Translated by