how to display spectrogram of a audio in App Designer

조회 수: 10 (최근 30일)
austin austin
austin austin 2018년 10월 3일
댓글: Edgar Guevara 2018년 10월 4일
I want show the figure in the app designer interface.But did not success.I only can plot it outside of app designer.I am using Matlab 2018b.
spectrogram(audio,window,noverlap,nfft,fs,'yaxis');
Anyone know how to do it. Thanks.

채택된 답변

Edgar Guevara
Edgar Guevara 2018년 10월 3일
Dear Austin,
You need to specify which axes will be used for plotting, inside a callback for plotting such spectrogram, you may use the following example code:
t = 0:0.001:2;
x = chirp(t,100,1,200,'quadratic');
myAxe = app.UIAxes;
[S,F,T] = spectrogram(x,128,120,128,1e3);
imagesc(myAxe, T, F, log(1+abs(S)) ); %plot the log spectrum
set(myAxe,'YDir', 'normal'); % flip the Y Axis so lower frequencies are at the bottom
Let me know if that solves your problem.
  댓글 수: 3
austin austin
austin austin 2018년 10월 3일
By the way, the way you did, it is work good. But the spectrogram color is a little darker. Is there any way can make it brighter? Thank you.
Edgar Guevara
Edgar Guevara 2018년 10월 4일
I think your spectrogram is not displayed on log scale, try the following code, which reproduces the output from the built-in function:
methods (Access = private)
% Button pushed function: Button
function plotSpec(app, event)
t = 0:0.001:2;
x = chirp(t,100,1,200,'quadratic');
myAxe = app.UIAxes;
[S,F,T] = spectrogram(x,128,120,128,1e3);
imagesc(myAxe, F, T, log(abs(S'))); %plot the log spectrum
set(myAxe,'YDir', 'normal'); % flip the Y Axis so lower frequencies are at the bottom
axis square
axis tight
colorbar
end
end
As you can see:

댓글을 달려면 로그인하십시오.

추가 답변 (0개)

카테고리

Help CenterFile Exchange에서 Scopes and Data Logging에 대해 자세히 알아보기

제품


릴리스

R2018a

Community Treasure Hunt

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

Start Hunting!

Translated by