Documente Academic
Documente Profesional
Documente Cultură
Relatório n. 3 de atividades
Neste relatório, me dedico à tarefa de estimação de pulso glotal pelo método da análise pela síntese. Para
tanto, o modelo de pulso glotal de Rosenberg foi implementado na seguinte rotina computacional:
function p=rosenberg(N1,N2)
p(1,1:N1)=0.5*(1-cos(%pi*(0:N1-1)/N1));
p(1,N1+1:N1+N2+1)=cos(%pi*((N1:N1+N2)-(N1))/(2*N2));
endfunction
Através desta rotina e de um modelo linear fizo de trato vocal T(z), como ilustrado na figura abaixo, foi
simulado um sinal vocal resultante da convolução do pulso glotal sintetizado com a resposta ao impulso,
t(n), do trato vocal. Foram usados no experimento: N1=19, N2=17, período de repetição de 37 amostras,
numa freq. de amostragem de 8KHz, resultando num pitch de aproximadamente 216 Hz.
1.0
0.8
0.6
0.4
0.2
0.0
-0.2
-0.4
-0.6
-0.8
0 1000 2000 3000 4000 5000 6000 7000 8000
Resposta normalizada (máximo ganho igual a 1) em freq. do trato vocal T(z) usado no experimento. O eixo
horizontal está graduado em Hz,
Um trecho do sinal sintetizado é representado na figura seguinte.
BioChaves
0.6
0.4
0.2
0.0
-0.2
-0.4
-0.6
-0.8
0 50 100 150 200 250 300 350 400 450 500 550
O eixo horizontal está graduado em número de amostras, numa taxa arbitrada em 8KHz.
O método experimentado assume que o espectro do pulso glotal é modulado (deformado) pelo trato vocal,
de tal forma que, como o trato só possui polos, na escala logarítmica, o espectro do sinal resultante uma
deformação da tendência ‘lenta’ dada pelo espectro do pulso glotal.
São assumidos que:
a) A Energia percebida no espectro do sinal é unitária. Assim o espectro do sinal é obtido por predição
linear, como detalhado a seguir.
// Preditor linear:
s=s(:);
Ordem=12;
M=[];
Ls=length(s);
for k=1:Ordem
M=[M s(k:k+Ls-Ordem-1)];
end
Y=s(Ordem+1:Ls);
Coef=pinv(M)*Y;
SZ=poly([1; -Coef($:-1:1)],'z','coeff');
z=poly(0,'z');
SZ=z^2/SZ;
w=0.78:0.01:%pi; // O 0.78 corresponde aproximadamente à frequência de 1000 Hz, para fa=8000
Hz
a=exp(%i*w);
SS=(abs(horner(SZ,a))).^2; // Aqui é obtido o espectro amostrado
BioChaves
b) A energia do pulso glotal também é unitária. Assim o espectro do sinal é obtido por análise de um filtro
FIR cuja resposta ao impulso é o próprio pulso. Por exemplo, para parâmetros N1 e N2, temos
p=rosenberg(N1,N2);
PZ=poly(p,'z','coeff');
SP=(abs(horner(PZ,a))).^2;
SP=SP/sum(SP); // Aqui a energia é normalizada
SP=20*log10(SP);
-20
-40
Pulso Pulso
-60 convolvido N1=18
com trato N2=12
-80 Pulso
vocal J=1693 N1=19
-100 N2=17
-120
J=1266
-140
-160
-180
-200
0 1000 2000 3000 4000 5000 6000 7000 8000
Assumindo a restrição de que N1 nunca é menor que N2, é possível calcular o critério para todas as
combinações de N1 e N2 permitidas para o período (conhecido) de 37 amostras, cujo resultado é
apresentado na figura seguinte.
BioChaves
12000
10000
8000
6000
Z
4000
2000
0
5
10
15
20
0 25
0 2 30
4 6 8 10 12 35
14 16 18 40
X
Y