ГОСТ Р 53556.5—2013
вычисленного кодом операции. Если
size
является нулем или не оценен, то
size
устанавливается в /ел.
Параметр
win
— аналитическое окно, применимое к анализу. Если
win
не оценен, то окно серии длинных
импульсов используетдлины
!еп.
Вычисления кода операции
fft
следующие. При первом обращении к коду операции
fft
создается
буфер, содержащий длины /ел. и первый (/ел —
shift)
буфер выборки инициализируется с нулями. На
каждом а уровне при обращении к коду операции
input,
выборка вставляется в следующую неинициализи
рованную буферную позицию. Когда все /ел выборки в буфере инициализируются, выполняются следую
щие шаги:
1. В новом буфере создаются длины
size,
для которого каждое значение newf/] устанавливается в
значение
buf[i]‘wfn
(/], где new {/]— значение новогобуфера.
buf[i]
— значение содержания буфера, и
win
[/]
— значение выборки в звуковой таблице аналитического окна. Если
size>len,
то значения
now
[/]для />/ел
обнуляются. Если
size <1вп.
то используются только первые значения
size
буфера.
2. Первые выборки
shift
удаляются из буфера, и оставшиеся выборки /ел-
shift
перемещаются к
передней стороне буфера. После этого сдвига выборки
shift
в конце буфера обнуляются. Если
shift > ten.
буфер содержания очищается.
3. Вычисляется реальный
DFT
нового буфера, приведенного к длине
size
значения частотной облас
ти. Реальные компоненты
DFT
помещаются в первые
size
выборки
table re:
воображаемые компоненты
DFT
помещаются в первые
size
выборки
table im. DFT
располагается так. что самые низкие частоты, запус
кающиеся
с ОС в
нулевой точке выходных таблиц, подходят к частоте Найквиста, как
size/2.
Отражение
спектра от частоты Найквиста до частоты дискретизации помещается во вторую половину таблиц.
DFT
определяется как
1Йв-1
I e ^ 2l,awr»w(/c]
d[i]
где
d[i]
— получающиеся компоненты DFT. О</ <s/ze;
new ]к)
входные выборки. 0
<к <size:
и
j
является квадратным корнем -1.
Исходное значение на определенном
к
цикле равно 1. если DFTбыл вычислен, начиная с последнего
к
цикла, или 0. если его не было.
9.10.2
ifft
aopcode ifft (table re. table im [ivar ten. ivar shift, ivar size, table win])
Код операции
ifft
вычисляет оконный и перекрытый
IDFTs
и передает результат потоком как звук,
ге
и
im
являются звуковыми таблицами, которые содержат реальные и воображаемые части
DFT
соответствен
но. Существуют несколько дополнительных параметров, которые управляют процедурой синтеза. Пара
метр
ten
является числом выходных выборок, используемых в качестве звука. Если параметр
ten
является
нулем или не оценен, то
ten
устанавливается в следующее большее значение
SR/KR,
где
SR
— частота
дискретизации оркестра и К/? — уровень управления оркестра. Параметр
shift
является числом выборок,
на которые смещается аналитическое окно между фреймами. Если
shift
не дается или является нулем, он
берется как
ten.
Параметр
size
имеет размер
IDFT.
Если
size
не оценен или является нулем, он берется
как
ten.
Параметр
win
— окно синтеза. Если параметр
win
не оценен, то окно серии длинных импульсов
используетдлины
ten.
Вычисления кода операции
ifft
следующие. При первом обращении к коду операции
ifft
вычисляется
size
IDFT
tablere. tableim.
Если
re
и/или
im
будут более длинными чем выборки
size,
то должны использо
ваться только первые выборки
size
этих таблиц. Результатом этого
IDFT
является последовательность
значений
size.
Реальные компоненты первых
ten
элементов этой последовательности умножаются на
соответствующие выборкам
win
окна и помещаются в выходной буфер длины
fen.
(ouf[/) =
seq
(/] *
win
(/’] для 0
<1<len).
IDFT
вычисляется, учитывая, что элементы с самым низким номером табличного
ге
и
im
являются
самыми низкими частотами аудиосигнала, начинаясь
с DC в
выборке 0. продолжаясьдо частоты Найквис та
в объеме
size!
2. и затем в отраженном спектре от
sizef2
до
size
-1.
56