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