Масштабируйтесь к частоте
В этом примере показано, как псевдочастота изменяется, когда вы удваиваете шкалу.
Создайте вектор шкал с 10 речью на октаву более чем пять октав.
vpo = 10; no = 5; a0 = 2^(1/vpo); ind = 0:vpo*no; sc = a0.^ind;
Проверьте, что область значений шкал покрывает пять октав.
log2(max(sc)/min(sc))
ans = 5.0000
Если вы строите шкалы, можно использовать Data Cursor, чтобы подтвердить что шкала в индексе дважды шкала в индексе . Установите y-метки-деления отмечать каждую октаву.
plot(ind,sc) title('Scales') xlabel('Index') ylabel('Scale') grid on set(gca,'YTick',2.^(0:5))

Преобразуйте шкалы в псевдочастоты для вейвлета Morlet с действительным знаком. Во-первых, примите, что период выборки равняется 1.
pf = scal2frq(sc,"morl"); T = [sc(:) pf(:)]; T = array2table(T,'VariableNames',{'Scale','Pseudo-Frequency'}); disp(T)
Scale Pseudo-Frequency
______ ________________
1 0.8125
1.0718 0.75809
1.1487 0.70732
1.2311 0.65996
1.3195 0.61576
1.4142 0.57452
1.5157 0.53605
1.6245 0.50015
1.7411 0.46666
1.8661 0.43541
2 0.40625
2.1435 0.37904
2.2974 0.35366
2.4623 0.32998
2.639 0.30788
2.8284 0.28726
3.0314 0.26803
3.249 0.25008
3.4822 0.23333
3.7321 0.2177
4 0.20313
4.2871 0.18952
4.5948 0.17683
4.9246 0.16499
5.278 0.15394
5.6569 0.14363
6.0629 0.13401
6.498 0.12504
6.9644 0.11666
7.4643 0.10885
8 0.10156
8.5742 0.094761
9.1896 0.088415
9.8492 0.082494
10.556 0.07697
11.314 0.071816
12.126 0.067006
12.996 0.062519
13.929 0.058332
14.929 0.054426
16 0.050781
17.148 0.047381
18.379 0.044208
19.698 0.041247
21.112 0.038485
22.627 0.035908
24.251 0.033503
25.992 0.03126
27.858 0.029166
29.857 0.027213
32 0.025391
Примите, что данные производятся на уровне 100 Гц. Создайте таблицу со шкалами, соответствующими псевдочастотами и периодами. С тех пор существует 10 речи на октаву, отображает каждую десятую строку в таблице. Заметьте, что для каждого удвоения шкалы, псевдочастота сокращается в половине.
Fs = 100; DT = 1/Fs; pf = scal2frq(sc,"morl",DT); T = [sc(:)/Fs pf(:) 1./pf(:)]; T = array2table(T,'VariableNames',{'Scale','Pseudo-Frequency','Period'}); T(1:vpo:end,:)
ans=6×3 table
Scale Pseudo-Frequency Period
_____ ________________ ________
0.01 81.25 0.012308
0.02 40.625 0.024615
0.04 20.313 0.049231
0.08 10.156 0.098462
0.16 5.0781 0.19692
0.32 2.5391 0.39385
Отметьте присутствие включите scal2frq. Это необходимо для того, чтобы достигнуть соответствующего преобразования шкалы к частоте. необходим, чтобы настроить необработанные шкалы правильно. Например, с:
f = scal2frq(1,'morl',0.01);Вы действительно спрашиваете, что происходит с центральной частотой вейвлета родительского элемента Морлет, если вы расширяете вейвлет 0,01. Другими словами, каков эффект на центральной частоте если вместо , вы смотрите на . обеспечивает правильный поправочный коэффициент по шкалам.
Вы, возможно, получили те же результаты первым преобразованием шкал к их настроенным размерам и затем использованию scal2frq without specifying .
scadjusted = sc.*0.01;
pf2 = scal2frq(scadjusted,'morl');
max(pf-pf2)ans = 0
Пример показывает, как создать контурный график CWT с помощью аппроксимированных частот в Гц.
Создайте сигнал, состоящий из двух синусоид с непересекающейся поддержкой в аддитивном шуме. Примите, что сигнал производится на уровне 1 кГц.
Fs = 1000; t = 0:1/Fs:1-1/Fs; x = 1.5*cos(2*pi*100*t).*(t<0.25)+1.5*cos(2*pi*50*t).*(t>0.5 & t<=0.75); x = x+0.05*randn(size(t));
Получите CWT входного сигнала и постройте результат.
[cfs,f] = cwt(x,Fs); contour(t,f,abs(cfs).^2); axis tight; grid on; xlabel('Time'); ylabel('Approximate Frequency (Hz)'); title('CWT with Time vs Frequency');

A — ШкалыШкалы в виде положительного вектора с действительным знаком.
wname — ВейвлетВейвлет в виде вектора символов или строкового скаляра. Смотрите wavefun для получения дополнительной информации.
delta — Выборка периода (значение по умолчанию) | положительный скаляр с действительным знакомВыборка периода в виде скаляра с действительным знаком.
Пример: pf = scal2frq([1:5],"db4",0.01)
Существует только аппроксимированный ответ для отношения между шкалой и частотой.
В анализе вейвлета способ связать шкалу с частотой состоит в том, чтобы определить центральную частоту вейвлета, Fc, и использовать следующее отношение:
где
a является шкалой.
Fc является центральной частотой вейвлета в Гц.
Fa является псевдочастотой, соответствующей шкале a в Гц.
Идея состоит в том, чтобы сопоставить с данным вейвлетом чисто периодический сигнал частоты Fc. Частотой, максимизирующей преобразование Фурье модуля вейвлета, является Fc. centfrq функция вычисляет центральную частоту для заданного вейвлета. От вышеупомянутого отношения это видно, что шкала обратно пропорциональна псевдочастоте. Например, если шкала увеличивается, вейвлет становится более распространенным, приводя к более низкой псевдочастоте.
Некоторые примеры соответствия между центральной частотой и вейвлетом показывают в следующем рисунке.
Центральные частоты для действительных и комплексных вейвлетов

[1] Abry, П. Онделеттес и турбулентность. Multirésolutions, алгоритмы de décomposition, инвариантность d'échelles et signaux de pression. Дидро, Editeurs des sciences et des arts, Париж, 1997.
У вас есть модифицированная версия этого примера. Вы хотите открыть этот пример со своими редактированиями?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.