Я хочу создать 2d-график спектра гильберта. То, что я хочу, - это график времени по частоте, где амплитуда сигнала представлена изменениями цвета на графике.Построение 2D-спектра Гильберта в MATLAB
Что я сделал, это this, но мне нужно, чтобы это выглядело как this.
Спасибо заранее
EDIT:
I имеют значения амплитуды и мгновенной частоты с течением времени, что я произвел с помощью Гильберта-Хуанга. Предположим, мы используем только первый МВФ, и у нас есть 100 образцов. Тогда то, что мы имеем:
instantaneous_frequency = [f1 f2 f3 ... f100]
instantaneous_amplitude = [a1 a2 a3 ... a100]
time = [t1 t2 t3 ... t100]
Что мне нужно, это способ построить их, как на втором изображении, без использования функции спектрограммы, так как он использует STFT и я уже подали HHT.
Код для получения первого участка является:
Time_Window = 1:101;
signal= rand(1,101);
hilb = hilbert(signal);
inst_amp = abs(hilb);
inst_th = angle(hilb);
inst_freq = diff(a_inst_th)/(1/256)/(2*pi); %instantaneous frequency
%inst_freq = remove_outliers(inst_freq,Time_Window(1:end-1));
inst_freq(end+1) = inst_freq(end); % This is done due to diff()
plot(Time_Window*4,inst_freq,'k.','MarkerSize',5)
Проводка кода для того, что вы сделали, было бы полезно для вас в направлении вашей цели ... – wogsland
Добавлен образец кода в вопрос! :) – achigeor