2016-02-08 4 views
2

Я хочу создать 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) 
+3

Проводка кода для того, что вы сделали, было бы полезно для вас в направлении вашей цели ... – wogsland

+0

Добавлен образец кода в вопрос! :) – achigeor

ответ

0

Существует уже функция MATLAB для получения spectrogram, которая выглядит очень похоже на то, что вы хотите. Посмотрите, решит ли это вашу проблему.

+0

Unfortunetly spectrogram использует STFT для поиска спектра. У меня уже есть значения частоты, амплитуды и времени, которые я произвел с помощью преобразования Гильберта-Хуанга. Мне нужен способ сделать их похожими на 2-е изображение. – achigeor

+0

В этом случае вы можете использовать pcolor: http://www.mathworks.com/help/matlab/ref/pcolor.html Соответственно установите цветную карту, и вам, вероятно, не нужен цвет края. –

+0

Благодарим вас за ответ. Я попытался использовать pcolor, но не могу заставить его работать. Я делаю это 'pcolor (Time_Window * 4, a_inst_freq, diag (a_inst_amp))' , и я получаю это [это] (http://i.stack.imgur.com/F9PEh.png). – achigeor

Смежные вопросы