how to plot a 123linear sweep spectrogram

6 Ansichten (letzte 30 Tage)
ting po chun
ting po chun am 11 Jun. 2023
Kommentiert: ting po chun am 12 Jun. 2023
Hi. I would like tp plot a linear sweep spectrogram and the frequency are 20Hz to 20kHz. Same of the fig. picture.
Thank!
  3 Kommentare
Diwakar Diwakar
Diwakar Diwakar am 11 Jun. 2023
May be this code will help you.
% Parameters
duration = 5; % Duration of the sweep in seconds
samplingRate = 44100; % Sampling rate in Hz
startFrequency = 20; % Start frequency in Hz
endFrequency = 20000; % End frequency in Hz
windowSize = 512; % Size of the analysis window
% Generate linear sweep signal
t = 0:1/samplingRate:duration; % Time vector
sweep = chirp(t, startFrequency, duration, endFrequency, 'linear');
% Compute spectrogram
overlap = round(windowSize*0.75); % Overlap between consecutive windows
nfft = 2^nextpow2(windowSize); % Number of FFT points
[s, f, t] = spectrogram(sweep, windowSize, overlap, nfft, samplingRate);
% Plot spectrogram
figure;
imagesc(t, f, 10*log10(abs(s)));
axis xy; % Flip the y-axis
colormap(jet);
colorbar;
xlabel('Time (s)');
ylabel('Frequency (Hz)');
title('Linear Sweep Spectrogram');
ting po chun
ting po chun am 12 Jun. 2023
@diwakar diwakar Thank you very much.

Melden Sie sich an, um zu kommentieren.

Antworten (0)

Kategorien

Mehr zu Time-Frequency Analysis finden Sie in Help Center und File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by