How to make the resolution for a spectrogram higher
32 ビュー (過去 30 日間)
表示 古いコメント
I'm trying to plot the spectrogram of an auditory stimulus but the resolution looked really low. I tried to change the parameters for the plot but none helped significantly. Is there some specific parameters I can change to make a higher-quality plot? Thank you!
The code I used is as follows:
Fs=44100;
win_size = 0.01;
fft_overlap = 0.3;
hop_size = Fs*win_size;
nfft = round(hop_size/fft_overlap);
noverlap = round(nfft-hop_size);
w = sqrt(hann(nfft)); %use some window
figure
spectrogram(tWaveform, w ,noverlap, nfft, Fs, 'yaxis' );
colormap jet;
set(gca,'YLim', [0,3]);
set(gca,'XLim', [0.4,1.2]);

採用された回答
Chunru
2022 年 9 月 19 日
load handel.mat
tWaveform = y;
Fs=44100;
win_size = 0.02; % 20ms
ws = round(win_size*Fs);
noverlap = round(.75*ws);
w = sqrt(hann(ws)); %use some window
nfft =1024;
figure
spectrogram(tWaveform, w ,noverlap, nfft, Fs, 'yaxis' );
colormap jet;
set(gca,'YLim', [0,3]);
set(gca,'XLim', [0.4,1.2]);
0 件のコメント
その他の回答 (1 件)
Apeksha Bagrecha
2022 年 9 月 20 日
Possible workarounds to this issue are provided below:
1) Open your script as a Live Script and export it as an HTML or other format.
You can do this by right-clicking on the script file in the Current Folder browser and selecting "Open as Live Script". Then run the script and save it to an HTML. In the save dialog box, change the ‘Save as type’ to ‘HTML (*.html)’.
2) Manually increase the resolution of the figure in your script, save the figure to an image file, and embed the image using publishing markup. e.g.
>>print('test_non_pub','-dpng','-r300')
0 件のコメント
参考
カテゴリ
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!