how to plot a 123linear sweep spectrogram
1 次查看(过去 30 天)
显示 更早的评论
Hi. I would like tp plot a linear sweep spectrogram and the frequency are 20Hz to 20kHz. Same of the fig. picture.
Thank!
![](https://www.mathworks.com/matlabcentral/answers/uploaded_files/1408009/image.png)
3 个评论
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 Center 和 File Exchange 中查找有关 Time-Frequency Analysis 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!