gen_jitt.m

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

M
51
字号
% gen_jitt.m

function [pert_para_f0]=gen_jitt(FG_f0,FG_t0,FG_av,FG_g0,JS_jit,JS_jfilt,JS_shm,JS_sfilt)
% Generate pitch perturbation(t0, actually f0).

	ptr_jit_delay=0;
%	FG_f0=1;FG_t0=2;FG_av=3;FG_g0=4;JS_jit=5;JS_jfilt=6;JS_shm=7;JS_sfilt=8;

	scale = 1.0;
	f0 = 10000.0/FG_t0;
	coeff = (JS_jfilt)*0.01;

	rnd = randgau;
	max_per = f0 * (JS_jit/1000.0);
	per = 2.0*rnd*max_per;

% if first order iir or fir is used, then pre-scaled by gain factor so that
% extent of perturbation is same as before.
 
	if (coeff > 0.0) 
	  if (JS_jfilt > 0.0) 
		  per = (1.0 - JS_jfilt/100.0) * per;
	  end        
	  [per,ptr_jit_delay] = fir_iir(ptr_jit_delay,per,JS_jfilt/100.0,1);

	elseif (coeff < 0.0) 
	  if (JS_jfilt > 0.0) 
		  per = (1.0 - JS_jfilt/100.0) * per;
	  end        
	  [per,ptr_jit_delay] = fir_iir(ptr_jit_delay,per, JS_jfilt/100.0,0);

	end

% highpass filter is specified. 
	if (coeff >= -1.0 & coeff < 0.0)
		scale = (1.0-coeff+(coeff*coeff))^0.5;

% lowpass filter is specified. 
	elseif (coeff < 1.0 & coeff > 0.0)
		scale = (((1.0-coeff)*(1.0-coeff))/(1.0+coeff))^0.5;
	end

	per = per/scale;
% if f0 is very low (only due to perturbation) then reject and
% assign the source parameter to frame parameter.
 
	pert_para_f0 = 0.0;
	if (f0 ~= 0.0)
		pert_para_f0 = f0 + per;
	end

⌨️ 快捷键说明

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