Plotting using surf

6 次查看(过去 30 天)
rave
rave 2011-7-26
Hello i am trying to do this, capture audio signal using analoginput then plotting the spectrogram in realtime. this is what i have so far:
daq_object = analoginput('winsound');
chan = addchannel(daq_object,[1 2]);
x=[10];
num_samples = 1000;
axes(handles.axes1);
plot_handle=surf(T,F,10*log10(P),'edgecolor','none');
axis tight;
view(0,90);
xlabel('Time (Seconds)'); ylabel('Hz');
set(daq_object,'SamplesPerTrigger',inf,'SamplesAcquiredFcnCount',num_samples,...
'SamplesAcquiredFcn',{@update_plot,handles});
function update_plot(handles)
data = getdata(daq_object,num_samples);
[S,F,T,P] = spectrogram(data(:,1),256,250,256,1E3);
set(plot_handle,'YData',T,F,P);
end
i have few problems, first off all, initally i have this:
plot_handle=surf(T,F,10*log10(P),'edgecolor','none');
but i need to define T,F,and P.. but the problem is i don't have the audio sample yet. [since it will be in the GUI, when they press start the object will start, so audio will be started to collect].
also when i set the data,
set(plot_handle,'YData',T,F,P);
is this valid, sine the surf, function needs, T,F and P.
i am really confused, please help.
what i am trying to do is to have a real time spectrogram.

回答(1 个)

Walter Roberson
Walter Roberson 2011-7-26
You cannot achieve what you want by setting YData. See my Answer in your earlier Question as to what the YData has to be updated to contain,
  4 个评论
Walter Roberson
Walter Roberson 2011-7-26
You need to read the reference information about what YData is.
http://www.mathworks.com/help/techdoc/ref/lineseriesproperties.html
rave
rave 2011-7-26
I tired this: set(plot_handle,'XData',T,'YData',F,'ZData',P);
still error;

请先登录,再进行评论。

类别

Help CenterFile Exchange 中查找有关 Animation 的更多信息

产品

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by