ГОСТ Р 53556.12-2014
rotatePlus\1inusNormlN732(-xr(l*M+M-M4j,xi[l*M+M-M4J,
&xr[l*M+\i-M4],&xi[l*M+M-M4]):
}
J
}
}
bit_rever.se_fixpt(xr,N);
hit_rever.se_fixpt(xi,N);
return numShifis;
Базовые функции для
FFT:
int msbHeadroomlNTi2(INTi2 *x. intN)(
max
= 0:
for (i=0: i<N; i++) {
I
max =ABS(xfiJ);
/
return (3Q-log2int(max)):
}
ini shiftIfRequired(INTb2 *xr,
/N732
*xi, int N) (
shiftRequired
= 0;
if((!msbHeadroomINT32(xr,N))\\(!msbHeadroomINTb2(xi,N))) {
shiftRequired
= 1;
shiftRightINT32(xr. N,
1/;
1
shiftRight!NT32(xi. N. ):
}
return shiftRequired:
J
1
1
void bit_rever.se_fixpt(lNT22
*.v.
int N) {
for (m= J=
0;
m<N-
1;
m++) f
for(k=N>>
1;
(!((jA=k)&k)); k » = );
if(j>m) swapi&x{ml,&xfjj);
i
}
srfftlndexTable[32] = (0.
1.0, 0.0. 1.0. 1.0. 1.0.0, 0. 1.0, 0,
0, 1,0.0.0. 1,0, 1,0. 1,0. 0.0, 1,0. 1/:
52