hi all

I'm learning MELP source code.I am not able to understand the fractional pitch
search algorithm in function

Shortword frac_pch(Shortword sig_in[],Shortword *pcorr,Shortword fpitch,

Shortword range,Shortword pmin,Shortword pmax,

Shortword pmin_q7,Shortword pmax_q7,Shortword lmin);

somebody can give me some hints about determining fractional pitch in Bandpass
voicing analysis.

I alse have a question about 6th order lowpass Butterworth filter used in Global
pitch search.the filter coefficient is below:

Shortword lpf_num[(LPF_ORD/2)*3] = {

713, 1426, 713,

798, 1600, 801,

1016, 2028, 1012};

/* sign of coefficients for lpf_den(denominator ) is reversed */

Shortword lpf_den[(LPF_ORD/2)*3] = {

-8192, 6884, -1543,

-8192, 7723, -2731,

-8192, 9793, -5657};

the filter coefficient is produced by two matlab commands lines as specified in
the source code:

[z,p,k]=butter(6,1000/4000);

sos=zp2sos(z,p,k);

when i type the two command line in matlab version6.5.1, I cann't get the same
coefficient as in the source code,the denominator is the same when converted
into Q13,but the numerator is different.when reversed the sign of denominator
,the coefficient i got is below :

0.0011 0.0021 0.0011 -1.0000 0.8403 -0.1883

1.0000 2.0000 1.0000 -1.0000 0.9428 -0.3333

1.0000 2.0000 1.0000 -1.0000 1.1954 -0.6906

the left half part(numerator ) is different from in the source code.

how can i get the coefficients as in the source code?