ГОСТ Р 53556.2—2012
2
if ((crntPrm->rawPitch != crntPrm->pitch) &&
NearPitch(crntPrm->rawPitch. prevPrm->rawPitch,
0
. ) )
pitch
=
cmlPrm->rawPitch
;
else
pitch = crntPrm~>pitch:
}
2
else
{
if (NearPitch(prevPrm->pitch. cmtPrm->pitch.
0
. ) )
pitch
=
crntPrm~>prtch:
else
pitch
=
rbIPch:
}
}
elseif (prevVUV
==
0 && rbIPch
.’=
0.0)
{
1
st1
=
Ambiguous(crntPrm->pitch. rbIPch.
0
.
1
);
if(!st1)
pitch
=
crntPrm->pitch;
else
pitch
=
rbIPch:
}
else if (prevVUVt= 0
<55
rbIPch
==
0.0)
{
)
sl1
=
Ambiguous(crntPrm->pitch, prevPrm->pHch.
0
.
11
:
if(1st1)
pitch
=
GetStdPch2Elms(cmtPrm. prevPrm. scanJimif. peakPos.
ac):
else
{
if (prevPrm->rOr <
c
rntPrm->rOr)
pitch
=
cmtPrm->pitch:
else
pitch
=
prevPrm->pitch;
}
}
else
pitch = cmtPrm->pitch:
cmtPrm->pHch
=
pitch;
prevRblPch
=
rbIPch:
prevRawp = pitch:
retum(pitch):
}
A.4 Извлечение величин гармоник
A.4.1 Описание инструмента
Извлечение величин гармоник состоит из двух шагов: поиск шага и оценка огибающей спектра. Операция
для каждого шага описана ниже.
А.4.2 Процесс извлечения величин гармоник
А.4.2.1 Поиск шага
Используя целочисленную задержку шага разомкнутого цикла, оценивается дробное значение задержки
шага. Размер шага фракции равен 0.25. Это выполненяется путем минимизации ошибки между синтезируемым
спектром и исходным спектром. Здесь одновременно оцениваются значение задержки шага и величины
гармо ник спектра. Оцениваемое значение задержки шага,
pch.
передается в декодер как
Pitch.
Pitch
=
(int) (pch
- 20.0)
A.4.2.2Оценка огибающей спектра
Чтобы получить исходный спектр к остаточным сигналам
LPC
применяется
DFT
256 точек. Используя ис
ходный спектр, производится определение огибающей спектра. Огибающая спектра — это ряд величин спектра.
53