Як я можу побудувати графік частоти проти величини вейвлет-перетворення?


14

Я веду безперервне вейвлетське перетворення Morlet. У мене є wscalogramсигнал, і тепер я хочу накреслити частоту частоти, як на наступному малюнку. Але я не знаю, як це зробити:

введіть тут опис зображення

Я використовував scal2freqфункцію MATLAB для перетворення масштабів у псевдочастоти. Крім того, у мене є деякі частоти в моєму сигналі, які мають велике коефіцієнт демпфування (4%), тому вони не добре помітні в сюжеті. Як я можу перебільшити ці режими з сильним затуханням?

Я використовую MATLAB, ось мої коди:

% Import the text4.txt to matlab workspace. and save it under name "data"
t=linspace(0,30,301);
Fs=ceil(inv(t(2)-t(1)));
x=data(:,4); % use x=data(:,3),x=data(:,5) too. first column is time,second is refrence
wname = 'morl';
scales = 1:1:256;
coefs = cwt(x,scales,wname,'lvlabs');
freq = scal2frq(scales,wname,1/Fs);
surf(t,freq,abs(coefs));shading('interp');
axis tight; xlabel('Seconds'); ylabel('Pseudo-Frequency (Hz)');
axis([0 30 0 1 0 60])
xlabel('Time'); ylabel('Frequency');
figure;
sc=wscalogram('image',coefs,'scales',freq,'ydata',x);
hold on 

Мій поточний сюжет виглядає приблизно так:

введіть тут опис зображення


Яку форму приймають дані вашої вейвлетської трансформації?
Джим Клей

Привіт @JimClay! Я не впевнений, чи розумію ваше запитання. але якщо ви маєте на увазі, як це виглядає, це схоже на 2-е посилання, яке я підтримував у питанні. і я хочу сюжет, як 1-е посилання. (2nd [myplot]) cubeupload.com/im/bSSlMI.jpg 1st [бажаний]) cubeupload.com/im/KbhGMI.jpg ось мій сигнал < fileswap.com/dl/Lwf7n96fAt/test4.txt.html > ось мій файл Mfile < fileswap.com/dl/gMrslBFAdb/mfile.txt.html > з найкращими побажаннями.
Електромонтажник

Я не дуже впевнений, у чому ваше запитання ...
Tarin Ziyaee

Привіт @ user4619; Подивіться на перший сюжет. ви бачите сюжет [частотна величина] з правого боку вейвлет-скалограми [отриманий за допомогою matlab]. друга картина - моя вейвлет-скалограма. але я не знаю, як побудувати [частотну величину], як праву частину першого сюжету. будь-яка допомога PLZ?
Електромонтажник

@Electricman Спектрограма не те саме, що скалограма. Якщо ви збираєтесь скалограму, немає частоти VS часу, тільки масштаб VS час. То який саме ви робите?
Tarin Ziyaee

Відповіді:


4

Трохи змінити свій код, але серйозних змін не буде, і в будь-якому випадку я отримую правильні результати. Використовуйте цей код шаблону тут, і ви не повинні бачити жодних проблем. Я отримую правильні результати.

clear all; 
t=linspace(0,30,301); 
Fs = (inv(t(2)-t(1))); 
x=randn(100,1);  
wname = 'morl'; 
scales = 1:1:256; 
chefs = cwt(x,scales,wname,'lvlabs');

freq = scal2frq(scales,wname,1/Fs);

figure; 
coefsSquared = abs(coefs).^2; 
imagesc(coefsSquared); 
grid off;

%Pick one of the columsn to plot: 
figure; 
plot(coefsSquared(:,47))

Щоб отримати фігуру з правого боку першого зображення, яке ви поставили, це просто спектр часових відрізків. Іншими словами, один стовпець вашої матриці частота-час.

Наприклад, ми можемо отримати таку матрицю квадратичного коефіцієнта за частотою та часом:

введіть тут опис зображення

Припустимо, тоді ми хочемо подивитися спектр часового відрізка в стовпці 47. Тоді це дано тут:

введіть тут опис зображення

Тут ви бачите потужність коефіцієнтів проти частоти для часового відрізка, що відповідає стовпцю 47.


Дякуємо за зміну коду. Але я ще не отримав відповіді на своє запитання. Питання полягає в тому, як я можу побудувати частоту частоти або масштабність [без різниці]. Я хочу сюжет, як правий бік першого малюнка. [Це питання]. заздалегідь дякую
Electricman

1
@Electricman Сюжет праворуч - це просто стовпець вашої матриці часу VS.
Tarin Ziyaee

- @ user4619 Це не частота проти часу, діапазон часу - 0-20, а частотний діапазон - 0-2,5, але ділянка правого боку - частота проти величини. Я не впевнений, що це точно кофе чи величина, але, очевидно, його пропорція кафе або кафе ^ 2. tnx
Electricman

@Electricman Будь ласка, дивіться правки. Чи зрозуміліше зараз?
Тарін Зіяее

- @ user4619 Це працює. Дякую за вашу відповідь. Я кладу невеликий код в кінці mfile. і отримав той же сюжет, що і праворуч згаданого сюжету. cof2 = abs (coefs). ^ 2; cof2trans = cof2 '; maxmods = max (cof2trans); фігура; сюжет (maxmods, freq) вісь ([0 60 0 1]) З найкращими побажаннями
Electricman

4

Безперервне перетворення вейвлетів (CWT) - метод для аналізу масштабу в часі . Так, ви читаєте це правильно, масштаб , а не частота . Однак можна віднести масштаби до частот, і навіть досить легко. Оскільки ви користувач MATLAB, ви, ймовірно, захочете використовувати цю функцію , яка виконує такі дії:

F = scal2frq (A, 'wname', DELTA) повертає псевдочастоти, що відповідають масштабам, заданим A, вейвлет-функція 'wname' (див. Хвильову функцію для отримання додаткової інформації) та період вибірки DELTA.

Як ви можете прочитати, частоти - це не реальні частоти в сигналі, а наближення. Якщо ви хочете реальної частоти, вам слід скористатися короткочасним перетворенням Фур'є (STFT).

Отже, коли слід використовувати CWT? Як загальний принцип, вейвлети добре працюють, коли сигнали є тимчасовими (тобто мають швидкі зміни).

EDIT: ха-ха, я не знаю, що я тут роблю. вибачте :-D повністю пропустив пункт вашого питання. Просто прочитайте заголовок….


@wave ваша інформація правильна. Але так що? Я просто хочу мати сюжет, як правий бік першого малюнка. частота проти величини і це нормально, якщо я отримаю ваги проти величини до тих пір, поки я можу використовувати scal2freq.
Електромонтажник

"Якщо ви хочете реальної частоти, вам слід скористатися короткочасним перетворенням Фур'є (STFT)." Вейвлет Morlet має частоту так само, як частота STFT з вікнами Гаусса. "Атоми" обох перетворень однакові.
ендоліт

0

Не впевнений, чи потрібна допомога ...

Якщо ви хочете частоту проти величини, скористайтеся командою "mesh / surf", щоб побудувати коефіцієнти.

Потім змініть орієнтацію сюжету, щоб у вас був результат, якого ви прагнете. Для цього див. Команду "view".


Дякую, я вирішив цю проблему кілька місяців тому і опублікував свої результати. Але я спробую вашу альтернативу наступного разу. Але будь ласка, перенесіть свою відповідь на місце коментарів. Щасти. @ asilva732
Electricman
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.