genglotv.m

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

M
52
字号
% genglotv.m

value = jsaspsg(sfno);  % refer to excapply.m %
	

	%fend(sfno) = ftime(sfno) + fdur(sfno);% This is not needed since fend is now specified during excitation.

	
	if (value==1 | value==3 | value==5 | value==7)

% generate amplitude(av) perturbation first 

pert_para_av=gen_shim(FG_f0temp,FG_t0(sfno),FG_avtemp,FG_g0(sfno),JS_jit(sfno),JS_jfilt(sfno),JS_shm(sfno),JS_sfilt(sfno));

% generate pitch(T0, actually F0) perturbation 
	pert_para_f0=gen_jitt(FG_f0temp,FG_t0(sfno),FG_avtemp,FG_g0(sfno),JS_jit(sfno),JS_jfilt(sfno),JS_shm(sfno),JS_sfilt(sfno));
	
	else
		pert_para_av = FG_avtemp;
		pert_para_f0 = 10000.0/FG_t0(sfno);
	end

% generate voicing source by LF model 

	sampf = round(smpfrq/pert_para_f0);
	sourcetime = timeproc + (sampf-1)/smpfrq;
	clear pulsesamp dpulsesamp;
	pulsesamp = zeros(1,sampf);
	dpulsesamp = zeros(1,sampf);
	noisesamp = zeros(1,sampf);
	[pulsesamp,dpulsesamp]=genlfsrc(LF_eetemp,LF_tp(sfno),LF_te(sfno),...
		LF_tc(sfno),LF_ta(sfno),sampf);
	if (value==2 | value==3 | value==6 | value==7)
		noisesamp=gen_aspi(An_ah(sfno), An_afilt(sfno), sampf);
	end
%	if (tempex->Agptr != (AG *)NULL)
%		gen_Agpulse(smpfrq, tempex, sampf);


% Generate the actual source excitation by combining additional gain and
% include subglottal and source-tract interaction.

	for j=1:sampf,
		pulsesamp(j) = pulsesamp(j)*pert_para_av;
		sourcesamp(j) = (noisesamp(j) + pulsesamp(j)) * FG_g0(sfno);
	end
	SRCmax=max(pulsesamp);
	sourcepsd=fftpsd(sourcesamp,sampf);
	srcidx=1;


⌨️ 快捷键说明

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