f_specgram.asv

来自「digital signal processing常用工具箱」· ASV 代码 · 共 40 行

ASV
40
字号
function [G,f,t] = f_specgram (x,L,fs,win)
%-------------------------------------------------------------------
% Usage:       [G,f,t] = f_specgram (x,L,fs,win)
%
% Description: Compute the spectrogram of the signal x(k)
%
% Entry:       x   = vector of length N samples
%              L   = subsequence length
%              fs  = sampling freqeuncy
%              win = window type (0 to 4, see Table 3.8.1 of text)
%
% Exit:        G = (2M-1) by L matrix containing spectrogram
%              f = vector of length L/2 containing frequency values
%              t = vector of length 2M-1 containting time values
%-------------------------------------------------------------------

% Initialize

N = length(x);
f = linspace (0,(L-1)*fs/L,L);
T = 1/fs;
M = floor(N/L);
t = linspace (0,(2*M-2)*L*T/2,2*M-1);
G = zeros(2*M-1,L);
xm = zeros(1,L);

% Compute spectrogram

w = f_window (win,L); 
w(L+1) = [];                       
h = waitbar (0,'Computing Spectrogram');
for m = 1 : 2*M-1
    waitbar (m/(2*M-1),h)
    k = 1 + (m-1)*L/2;
    xm = x(k : k+L-1);
    G(m,:) = abs(fft(w .* xm));
end
close (h);
%-------------------------------------------------------------------

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?