2013-10-01 4 views
1

Я создаю matlab gui и имею некоторый элемент в нем с некоторыми осями. Я построить один из моих желаний участка в ploter1 (первые осей) с помощьюиспользовать specgram в осях в GUI matlab

plot(handles.ploter1,xx); title(handles.ploter1,'Waveform'); 

и это нормально, но я хочу использовать specgram и результат сюжета specgram в другом осям я не знаю, как можно это сделать :(
Я испытываю

specgram(wav,N,fs,hamming(N/4),round(0.9*N/4));xlabel('time, s'); 

или

specgram(handles.ploter2,wav,N,fs,hamming(N/4),round(0.9*N/4));xlabel('time, s'); 

но вернуть мне ошибку или ничего !!! enter image description here

, пожалуйста, помогите мне. Большое спасибо

+1

Вы можете попытаться заранее установить другие активные оси, называя команду осей. Должны быть «оси (ploter2_handle)» или аналогичные. – bdecaf

+0

@bdecaf Я полностью забыл об этом: o Я отредактирую свой ответ, если вы не возражаете ... –

+0

@LuciusDomitiusAhenobarbus, конечно же - вперед :) – bdecaf

ответ

3

EDIT

как упомянуто в комментариях bdecaf, что должно работать, чтобы установить текущие оси:

axes(handles.ploter2); 

сейчас, при использовании только

spectrogram(x,window,noverlap,F)] 

участок должен быть на указанных осях. Если нет, попробуйте:

hold on 

раньше!

OLD

specgram или Spectogram не имеет параметра для сюжета. Вы должны определить его позже.

Я предлагаю, чтобы получить результат первого по:

[S,F,T]=spectrogram(x,window,noverlap,F)] 

, а затем построить его на конкретной оси:

plot(handles.ploter2, S,F) 

Но я не уверен, какой параметр вы хотите построить. Пожалуйста, взгляните на документы.

Из документов:

[S, F, Т] = спектрограмма (...) возвращает вектор частот, F и вектор времени, Т, при котором спектрограмма вычисляется , F имеет длину, равную числу строк S. T имеет длину k (определенную выше), а значения в T соответствуют центру каждого сегмента.

[S, F, T] = спектрограмма (x, окно, noverlap, F) использует вектор F частот в Гц. F должен быть вектором с не менее чем двумя элементами. Этот случай вычисляет спектрограмму на частотах в F с помощью алгоритма Герцеля. Указанные частоты округляются до ближайшего буфера DFT, соразмерного с разрешением сигнала. Во всех других случаях синтаксиса, где используется nfft или значение по умолчанию для nfft, используется кратковременное преобразование Фурье. Возвращаемый вектор F представляет собой вектор округленных частот. T - вектор времени, в течение которого вычисляется спектрограмма. Длина F равна числу строк S. Длина T равна k, как определено выше, и каждому значению соответствует центр каждого сегмента.

[S, F, T] = спектрограмма (x, window, noverlap, F, fs) использует вектор F частот в Гц, как указано выше, и использует частоту дискретизации fs в Гц. Если fs указывается как пустая [], по умолчанию она равна 1 Гц.

+0

Я делаю это, но результат неверен (график f и s параметр) :( – zhilevan

+0

@zhilevan Я отредактировал мой ответ ... –

+0

большое спасибо – zhilevan

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