ww1_s.m

来自「这是一个用于语音信号处理的工具箱」· M 代码 · 共 77 行

M
77
字号
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
%	ww1_s.m
%
%	jmw
%	7/25/94
%
%	slider processing for window 1 (segment boundaries)
%
%	find slider that was moved and quantize to closest beginning
%	boundary of frame.
%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

for i=2:(tmp_seg_cnt),
	NEW_SB(i)=get(ww1_s_h(i-1),'Value');
	if (NEW_SB(i) ~= TMP_SB(i))
		% change has occured

		% find closest frame beginning within limits
		fr_error = abs(tmp_range(:,1) - NEW_SB(i) );
		[sort_fr_error, index]=sort(fr_error);

		% the closest frame beginning is in index(1)
		% now, check if within limits ...

		% case #1: beginning segment
		if (i==2)
			if (tmp_range(index(1),1) <=  1)
				TMP_SB(2) = tmp_range(2,1);
			elseif(tmp_range(index(1),1) >= TMP_SB(3) )	
				xxx=find(tmp_range(:,1) == TMP_SB(3) );
				TMP_SB(2) = tmp_range( (xxx-1),1);
			else
				TMP_SB(2) = tmp_range(index(1),1);
			end;
		
		% case #2: ending segment
		elseif ( i == tmp_seg_cnt)
			[xxx,yyy]=size(tmp_range);
			
			if (tmp_range(index(1),1) >=  tmp_range(xxx,1))
				TMP_SB(i) = tmp_range(xxx-1,1);
			elseif(tmp_range(index(1),1) <= TMP_SB(i-1) )	
				xxx=find(tmp_range(:,1) == TMP_SB(i-1) );
				TMP_SB(i) = tmp_range( (xxx+1),1);
			else
				TMP_SB(i) = tmp_range(index(1),1);
			end;
		else % case #3: middle segments
			if(tmp_range(index(1),1) <= TMP_SB(i-1) )
				xxx=find(tmp_range(:,1) == TMP_SB(i-1) );
				TMP_SB(i) = tmp_range( (xxx+1),1);
			elseif(tmp_range(index(1),1) >= TMP_SB(i+1) )	
				xxx=find(tmp_range(:,1) == TMP_SB(i+1) );
				TMP_SB(i) = tmp_range( (xxx-1),1);
			else
				TMP_SB(i) = tmp_range(index(1),1);
			end;
				
		end;

		set(ww1_e_h(i-1),'String',sprintf('%d',TMP_SB(i)) );
		set(ww1_s_h(i-1),'Value', TMP_SB(i) );
	end;
end;

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

set( ww1_pb_update_h, 'Visible', 'on');
set( ww1_pb_cancel_h, 'Visible', 'on');

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

clear sort_fr_error fr_error index NEW_SB

⌨️ 快捷键说明

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