From ac7c48b4dee99d4c772f133d70d8d1b38262fcd2 Mon Sep 17 00:00:00 2001 From: Author Name Date: Fri, 7 Jul 2023 12:20:59 +0930 Subject: shallow zip-file copy from codec2 e9d726bf20 --- octave/plot_specgram.m | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) create mode 100644 octave/plot_specgram.m (limited to 'octave/plot_specgram.m') diff --git a/octave/plot_specgram.m b/octave/plot_specgram.m new file mode 100644 index 0000000..7b9e3a6 --- /dev/null +++ b/octave/plot_specgram.m @@ -0,0 +1,22 @@ +% plot_specgram.m +% David Rowe May 2017 +% +% As the name suggests..... + +function S = plot_specgram(x, Fs=8000, fmin, fmax) + + step = fix(20*Fs/1000); # one spectral slice every 5 ms + window = fix(160*Fs/1000); # 40 ms data window + fftn = 2^nextpow2(window); # next highest power of 2 + [S, f, t] = specgram(x, fftn, Fs, window, window-step); + S = abs(S(2:fftn/2,:)); # magnitude in range 0 2 + axis([0 max(t) fmin fmax]) + end + xlabel('Time (s)'); ylabel('Freq (Hz)'); +endfunction -- cgit v1.2.3