scal2frq

Шкала до частоты

Описание

пример

frq = scal2frq(A,wname,delta) возвращает псевдочастоты, соответствующие шкалам, заданным A и вейвлет, заданный как wname и период дискретизации delta. Область выхода frq является реальным и имеет те же размерности, что и A.

frq = scal2frq(A,wname) эквивалентно frq = scal2frq (A, wname,1).

Примеры

свернуть все

Этот пример показывает, как изменяется псевдочастота, когда вы удваиваете шкалу.

Создайте вектор шкал с 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, чтобы подтвердить, что шкала в индексе n+10 в два раза больше шкалы при индексе n. Установите y-метки, чтобы отметить каждую октаву.

plot(ind,sc)
title('Scales')
xlabel('Index')
ylabel('Scale')
grid on
set(gca,'YTick',2.^(0:5))

Figure contains an axes. The axes with title Scales contains an object of type line.

Преобразуйте шкалы в псевдочастоты для действительного вейвлета Морле. Сначала примите, что период дискретизации равен 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

Обратите внимание на наличие Δt=1Fs коэффициент в scal2frq. Это необходимо в порядок, чтобы достичь правильного преобразования масштаба в частоту. Δt требуется для правильной настройки необработанных шкал. Для примера, с:

f = scal2frq(1,'morl',0.01);

Вы действительно спрашиваете, что происходит с центральной частотой вейвлет матери Морле, если вы расширяете вейвлет на 0,01. Другими словами, каков эффект на центральную частоту, если вместо ψ(t), вы смотрите на ψ(t/0.01). Δt обеспечивает правильный коэффициент корректировки на шкалах.

Вы могли бы получить те же результаты, сначала преобразовав шкалы в их скорректированные размеры, а затем используя scal2frq without specifying Δt.

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');

Figure contains an axes. The axes with title CWT with Time vs Frequency contains an object of type contour.

Входные параметры

свернуть все

Шкалы, заданные как положительный вектор с реальным значением.

Вейвлет, заданный как вектор символов или строковый скаляр. Посмотрите wavefun для получения дополнительной информации.

Период дискретизации, заданный как действительный скаляр.

Пример: pf = scal2frq([1:5],"db4",0.01)

Подробнее о

свернуть все

Псевдочастоты

Существует только приблизительный ответ на отношение между шкалой и частотой.

В вейвлет-анализе способ связать шкалу с частотой - это определить центральную частоту вейвлета, Fc и использовать следующую зависимость:

Fa=Fca

где

  • a является шкалой.

  • Fc - центральная частота вейвлета в Гц.

  • Fa - псевдочастота, соответствующая a шкалы, в Гц.

Идея состоит в том, чтобы связать с заданным вейвлетом чисто периодический сигнал частотного Fc. Частота, максимизирующая преобразование Фурье модуля вейвлета, Fc. centfrq функция вычисляет центральную частоту для заданного вейвлета. Из вышеописанного отношения видно, что шкала обратно пропорциональна псевдочастоте. Для примера, если шкала увеличивается, вейвлет становится более распределенным, получая более низкую псевдочастоту.

Некоторые примеры соответствия между центральной частотой и вейвлетом показаны на следующем рисунке.

Центральные частоты для реальных и сложных вейвлетов

Как видим, базирующееся на центральной частоте приближение (красный) захватывает основные вейвлет (синий). Центральная частота является удобной и простой характеристикой доминирующей частоты вейвлета.

Ссылки

[1] Abry, P. Ondelettes et turbulence. Multirésolutions, алгоритмы декомпозиции, инвариация d 'échelles et signaux de pression. Diderot, Editeurs des sciences et des arts, Paris, 1997.

См. также

Представлено до R2006a