how to plot a 123linear sweep spectrogram

2 次查看(过去 30 天)
Hi. I would like tp plot a linear sweep spectrogram and the frequency are 20Hz to 20kHz. Same of the fig. picture.
Thank!
  3 个评论
Diwakar Diwakar
Diwakar Diwakar 2023-6-11
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');

请先登录,再进行评论。

回答(0 个)

类别

Help CenterFile Exchange 中查找有关 Time-Frequency Analysis 的更多信息

标签

Community Treasure Hunt

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

Start Hunting!

Translated by