how to display spectrogram of a audio in App Designer

22 visualizzazioni (ultimi 30 giorni)
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.

Risposta accettata

Edgar Guevara
Edgar Guevara il 3 Ott 2018
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 Commenti
austin austin
austin austin il 3 Ott 2018
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 il 4 Ott 2018
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:

Accedi per commentare.

Più risposte (0)

Categorie

Scopri di più su Time-Frequency Analysis in Help Center e File Exchange

Prodotti


Release

R2018a

Community Treasure Hunt

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

Start Hunting!

Translated by