Mercurial > hg > ishara
view dsp/specgrm.m @ 42:ae596261e75f
Various fixes and development to audio handling
author | samer |
---|---|
date | Tue, 02 Dec 2014 14:51:13 +0000 |
parents | beb8a3f4a345 |
children | 62e31e7980e6 |
line wrap: on
line source
% specgrm - Time-Varying Spectrum % % specgrm :: % X:[[T]] ~'signal of length T', % N:natural | H:[[N]] ~'window length or window', % M:natural ~'hop size', % options { % fs :: nonneg/1 ~'sampling rate'; % range:: [[2]] ~'range for tfdimage' % } % -> [[1+N/2,floor(T/M)]] ~'sequence of short term spectra'. % % Examples: % Y1=specgram(x,hanning(256),128,'fs',44100) % % Side Effects % Image Plot of the spectrogram if no output function y=specgrm(x,w,m,varargin) if length(w)==1, H=ones(w,1); else H=w; end if nargin<3 m=[]; end n = length(H); if isempty(m), m=n/2; end if n>m, bufargs={'nodelay'}; else bufargs={}; end y = powspec(diag(sparse(H))*buffer(zeropad(n-m,x),n,n-m,bufargs{:})); % Make Spectrogram Display if no arg out if nargout==0 opts=options('fs',1,'range',13.5,varargin{:}); tfdimage(y,n,m,opts.fs,opts.range); clear y; end