How to get spectrogram data to align with signal data

14 views (last 30 days)
I am attempting to align the time variables of the spectrogram of a signal and it's correpsonding time points in the time domain, and as you can see, we are a bit lagging behind in the time domain (bottom subplot) because of the reduced width from the spectrogram.
Is there a way I can adjust the subplot(2,1,2) to cleverly align with where the time = 60 is on the spectrogram? Right now, I'm simply using subplot function.
Thank you,
Zach

Accepted Answer

Srivardhan Gadila
Srivardhan Gadila on 24 Apr 2021
You can make use of the Position and the XLim properties of the axes. Refer to the documentation of Axes Properties for more information.
N = 1024;
n = 0:N-1;
w0 = 2*pi/5;
x = sin(w0*n)+10*sin(2*w0*n);
s = spectrogram(x);
f1 = subplot(2,1,1);
spectrogram(x,'yaxis');
f1WidthHeight = f1.Position(3:4);
f2 = subplot(2,1,2);
plot(x);
%Set same width and Xlimits for the second subplot
f2.Position(3:4) = f1WidthHeight;
f2.XLim = f1.XLim;

More Answers (0)

Categories

Find more on Time-Frequency Analysis in Help Center and File Exchange

Community Treasure Hunt

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

Start Hunting!