Я пытаюсь сравнить вейвлет-коэффициенты во времени и между сигналами. С этой целью функция MATLAB
cwt
. Выход [coefs sgram] = cwt(foo)
дает мне вейвлет-коэффициенты и коэффициенты масштабирования, представляющие указанные коэффициенты, в терминах их общего вклада в энергию сигнала.Каковы коэффициенты шкалы MATLAB для масштабирования для функции непрерывного преобразования вейвлета?
Что нужно знать, так это то, что я понимаю, как это выполнялось «под капотом», чтобы эти сравнения были действительны. Я тестирую это с использованием ссылки: http://www.mathworks.com/help/wavelet/ref/cwt.html
Моя забота касается вариантов окраски. В этом примере мы используем «scal». В документации не указано, как это работает. Я попытался использовать другие параметры окраски с моей указанной частотой дискретизации, и кажется, что масштабирование не является постоянным. Я хотел бы знать, как он рассчитывается.
load vonkoch
vonkoch=vonkoch(1:510);
len = length(vonkoch);
cw1 = cwt(vonkoch,1:32,'sym2','plot');
title('Continuous Transform, absolute coefficients.')
ylabel('Scale')
[cw1,sc] = cwt(vonkoch,1:32,'sym2','scal');
title('Scalogram')
ylabel('Scale')
Если извлечь максимальные значения для cw1
и sc
использование [ms is] = max(abs(cw1(:)))
и [mc ic] = max(sc(:))
(абсолютным, поскольку коэффициенты иногда отрицательные) Хочу отметить, что они занимают один и тот же индекс и значение
mc = 0.0084
ms = 0.1313
, отношение ms/mc = 15.6310
. Но тестирование двух других значений, cw1(4,4)
и sc(4,4)
Я не могу воспроизвести это соотношение. Как работает 'scal'
? Если возможно, будут оценены ссылки, дополнительно описывающие другие режимы окраски, и то, как они масштабируют коэффициенты в представление в виде шкалы.