function plotsigpar(s,par,lseg,rseg,bordersyes,numberyes); % Syntax: plotsigpar(s,par,lseg,rseg,bordersyes,numberyes); % or: plotsigpar(s,par); % % % Plots the signal, segment borders and parameters in a unique plot. % s - signal vector % par - parameter vector % lseg - segment length (default 160) % rseg - overlapping (default 0) % bordersyes - borders of the frames on the plot (default 1=yes) % numberyes - number the frames on the plot (default 1=yes) if(nargin==2), lseg=160; rseg=0; bordersyes=1; numberyes=1; end wsh=lseg-rseg; % window shift M=floor((length(s)-rseg)/wsh); % no. de seg. if M ~= length(par) error ('lengths of signal and of parameter vector do not match'); end N=lseg+(M-1) * wsh; % real nb. of pts of signal to display nsig=1:N; % points for signal npar=(0:M-1) * wsh + lseg/2; % points for params %plot(nsig, s(nsig), npar, par, '*'); hold on % borders of segments mm=max(s); nsegbegin=(0:M-1) * wsh + 1; nsegend=(0:M-1) * wsh + lseg; % plotting - pirated stem code xxb=[nsegbegin; nsegbegin; nan*ones(1,M)]; xxe=[nsegend; nsegend; nan*ones(1,M)]; yy=[-mm*ones(1,M); mm*ones(1,M); nan*ones(1,M)]; if bordersyes, plot(nsig, s(nsig), npar, par, '*',xxb,yy,'g',xxe,yy,'r'); else plot(nsig, s(nsig), npar, par, '*'); end if numberyes for i=1:M, text(npar(i), 0, int2str(i)); end end