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 + -
显示快捷键?