Pre-ci test passed git-svn-id: http://svn.eurecom.fr/openair4G/trunk@4000 818b1a75-f10b-46b9-bf7c-635c3b92a50f
288 lines
7.8 KiB
Matlab
Executable File
288 lines
7.8 KiB
Matlab
Executable File
|
|
k=0;
|
|
for i=0:5,
|
|
for n=0:(2^i)-1,
|
|
|
|
twiddleFFT_64(1+(4*k)) = round(16384*cos(2*pi*n/(2^(i+1))));
|
|
twiddleIFFT_64(1+(4*k)) = twiddleFFT_64(1+(4*k));
|
|
|
|
twiddleFFT_64(2+(4*k)) = round(16384*sin(2*pi*n/(2^(i+1))));
|
|
twiddleIFFT_64(2+(4*k)) = -twiddleFFT_64(2+(4*k));
|
|
|
|
twiddleFFT_64(3+(4*k)) = -twiddleFFT_64(2+(4*k));
|
|
twiddleIFFT_64(3+(4*k)) = twiddleFFT_64(2+(4*k));
|
|
|
|
twiddleFFT_64(4+(4*k)) = twiddleFFT_64(1+(4*k));
|
|
twiddleIFFT_64(4+(4*k)) = twiddleFFT_64(1+(4*k));
|
|
|
|
k=k+1;
|
|
end
|
|
end
|
|
|
|
[fid, msg] = fopen("twiddle64.h","w","ieee-le");
|
|
|
|
fprintf(fid,"short twiddle_fft64[63*4] = {");
|
|
fprintf(fid,"%d,%d,%d,%d,\n",twiddleFFT_64(1:248));
|
|
fprintf(fid,"%d,%d,%d,%d};\n\n",twiddleFFT_64(249:252));
|
|
fprintf(fid,"short twiddle_ifft64[63*4] = {");
|
|
fprintf(fid,"%d,%d,%d,%d,\n",twiddleIFFT_64(1:248));
|
|
fprintf(fid,"%d,%d,%d,%d};\n\n",twiddleIFFT_64(249:252));
|
|
|
|
fclose(fid);
|
|
|
|
|
|
k=0;
|
|
for i=0:6,
|
|
for n=0:(2^i)-1,
|
|
|
|
twiddleFFT_128(1+(4*k)) = round(16384*cos(2*pi*n/(2^(i+1))));
|
|
twiddleIFFT_128(1+(4*k)) = twiddleFFT_128(1+(4*k));
|
|
|
|
twiddleFFT_128(2+(4*k)) = round(16384*sin(2*pi*n/(2^(i+1))));
|
|
twiddleIFFT_128(2+(4*k)) = -twiddleFFT_128(2+(4*k));
|
|
|
|
twiddleFFT_128(3+(4*k)) = -twiddleFFT_128(2+(4*k));
|
|
twiddleIFFT_128(3+(4*k)) = twiddleFFT_128(2+(4*k));
|
|
|
|
twiddleFFT_128(4+(4*k)) = twiddleFFT_128(1+(4*k));
|
|
twiddleIFFT_128(4+(4*k)) = twiddleFFT_128(1+(4*k));
|
|
|
|
k=k+1;
|
|
end
|
|
end
|
|
|
|
[fid, msg] = fopen("twiddle128.h","w","ieee-le");
|
|
|
|
fprintf(fid,"short twiddle_fft128[127*4] = {");
|
|
fprintf(fid,"%d,%d,%d,%d,\n",twiddleFFT_128(1:504));
|
|
fprintf(fid,"%d,%d,%d,%d};\n\n",twiddleFFT_128(505:508));
|
|
|
|
fprintf(fid,"short twiddle_ifft128[127*4] = {");
|
|
fprintf(fid,"%d,%d,%d,%d,\n",twiddleIFFT_128(1:504));
|
|
fprintf(fid,"%d,%d,%d,%d};\n\n",twiddleIFFT_128(505:508));
|
|
fclose(fid);
|
|
k=0;
|
|
|
|
for i=0:7,
|
|
for n=0:(2^i)-1,
|
|
|
|
twiddleFFT_256(1+(4*k)) = round(16384*cos(2*pi*n/(2^(i+1))));
|
|
twiddleIFFT_256(1+(4*k)) = twiddleFFT_256(1+(4*k));
|
|
|
|
twiddleFFT_256(2+(4*k)) = round(16384*sin(2*pi*n/(2^(i+1))));
|
|
twiddleIFFT_256(2+(4*k)) = -twiddleFFT_256(2+(4*k));
|
|
|
|
twiddleFFT_256(3+(4*k)) = -twiddleFFT_256(2+(4*k));
|
|
twiddleIFFT_256(3+(4*k)) = twiddleFFT_256(2+(4*k));
|
|
|
|
twiddleFFT_256(4+(4*k)) = twiddleFFT_256(1+(4*k));
|
|
twiddleIFFT_256(4+(4*k)) = twiddleFFT_256(1+(4*k));
|
|
|
|
|
|
|
|
k=k+1;
|
|
end
|
|
end
|
|
|
|
[fid, msg] = fopen("twiddle256.h","w","ieee-le");
|
|
|
|
fprintf(fid,"short twiddle_fft256[255*4] = {");
|
|
fprintf(fid,"%d,%d,%d,%d,\n",twiddleFFT_256(1:1016));
|
|
fprintf(fid,"%d,%d,%d,%d};\n\n",twiddleFFT_256(1017:1020));
|
|
|
|
fprintf(fid,"short twiddle_ifft256[255*4] = {");
|
|
fprintf(fid,"%d,%d,%d,%d,\n",twiddleIFFT_256(1:1016));
|
|
fprintf(fid,"%d,%d,%d,%d};\n\n",twiddleIFFT_256(1017:1020));
|
|
|
|
fclose(fid)
|
|
|
|
k=0;
|
|
|
|
for i=0:8,
|
|
for n=0:(2^i)-1,
|
|
|
|
twiddleFFT_512(1+(4*k)) = round(16384*cos(2*pi*n/(2^(i+1))));
|
|
twiddleIFFT_512(1+(4*k)) = twiddleFFT_512(1+(4*k));
|
|
|
|
twiddleFFT_512(2+(4*k)) = round(16384*sin(2*pi*n/(2^(i+1))));
|
|
twiddleIFFT_512(2+(4*k)) = -twiddleFFT_512(2+(4*k));
|
|
|
|
twiddleFFT_512(3+(4*k)) = -twiddleFFT_512(2+(4*k));
|
|
twiddleIFFT_512(3+(4*k)) = twiddleFFT_512(2+(4*k));
|
|
|
|
twiddleFFT_512(4+(4*k)) = twiddleFFT_512(1+(4*k));
|
|
twiddleIFFT_512(4+(4*k)) = twiddleFFT_512(1+(4*k));
|
|
|
|
|
|
|
|
k=k+1;
|
|
end
|
|
end
|
|
|
|
[fid, msg] = fopen("twiddle512.h","w","ieee-le");
|
|
|
|
fprintf(fid,"short twiddle_fft512[511*4] = {");
|
|
fprintf(fid,"%d,%d,%d,%d,\n",twiddleFFT_512(1:2040));
|
|
fprintf(fid,"%d,%d,%d,%d};\n\n",twiddleFFT_512(2041:2044));
|
|
|
|
fprintf(fid,"short twiddle_ifft512[511*4] = {");
|
|
fprintf(fid,"%d,%d,%d,%d,\n",twiddleIFFT_512(1:2040));
|
|
fprintf(fid,"%d,%d,%d,%d};\n\n",twiddleIFFT_512(2041:2044));
|
|
|
|
|
|
fclose(fid)
|
|
|
|
k=0;
|
|
|
|
for i=0:9,
|
|
for n=0:(2^i)-1,
|
|
|
|
twiddleFFT_1024(1+(4*k)) = fix(16384*cos(2*pi*n/(2^(i+1))));
|
|
twiddleIFFT_1024(1+(4*k)) = twiddleFFT_1024(1+(4*k));
|
|
|
|
twiddleFFT_1024(2+(4*k)) = fix(16384*sin(2*pi*n/(2^(i+1))));
|
|
twiddleIFFT_1024(2+(4*k)) = -twiddleFFT_1024(2+(4*k));
|
|
|
|
twiddleFFT_1024(3+(4*k)) = -twiddleFFT_1024(2+(4*k));
|
|
twiddleIFFT_1024(3+(4*k)) = twiddleFFT_1024(2+(4*k));
|
|
|
|
twiddleFFT_1024(4+(4*k)) = twiddleFFT_1024(1+(4*k));
|
|
twiddleIFFT_1024(4+(4*k)) = twiddleFFT_1024(1+(4*k));
|
|
|
|
|
|
|
|
k=k+1;
|
|
end
|
|
end
|
|
|
|
[fid, msg] = fopen("twiddle1024.h","w","ieee-le");
|
|
|
|
fprintf(fid,"short twiddle_fft1024[1023*4] = {");
|
|
fprintf(fid,"%d,%d,%d,%d,\n",twiddleFFT_1024(1:4088));
|
|
fprintf(fid,"%d,%d,%d,%d};\n\n",twiddleFFT_1024(4089:4092));
|
|
|
|
fprintf(fid,"short twiddle_ifft1024[1023*4] = {");
|
|
fprintf(fid,"%d,%d,%d,%d,\n",twiddleIFFT_1024(1:4088));
|
|
fprintf(fid,"%d,%d,%d,%d};\n\n",twiddleIFFT_1024(4089:4092));
|
|
|
|
|
|
%fprintf(fid,"unsigned short rev1024[1024];\n")
|
|
fclose(fid)
|
|
|
|
|
|
k=0;
|
|
|
|
for i=0:10,
|
|
for n=0:(2^i)-1,
|
|
|
|
twiddleFFT_2048(1+(4*k)) = fix(16384*cos(2*pi*n/(2^(i+1))));
|
|
twiddleIFFT_2048(1+(4*k)) = twiddleFFT_2048(1+(4*k));
|
|
|
|
twiddleFFT_2048(2+(4*k)) = fix(16384*sin(2*pi*n/(2^(i+1))));
|
|
twiddleIFFT_2048(2+(4*k)) = -twiddleFFT_2048(2+(4*k));
|
|
|
|
twiddleFFT_2048(3+(4*k)) = -twiddleFFT_2048(2+(4*k));
|
|
twiddleIFFT_2048(3+(4*k)) = twiddleFFT_2048(2+(4*k));
|
|
|
|
twiddleFFT_2048(4+(4*k)) = twiddleFFT_2048(1+(4*k));
|
|
twiddleIFFT_2048(4+(4*k)) = twiddleFFT_2048(1+(4*k));
|
|
|
|
|
|
|
|
k=k+1;
|
|
end
|
|
end
|
|
|
|
[fid, msg] = fopen("twiddle2048.h","w","ieee-le");
|
|
|
|
fprintf(fid,"short twiddle_fft2048[2047*4] = {");
|
|
fprintf(fid,"%d,%d,%d,%d,\n",twiddleFFT_2048(1:8184));
|
|
fprintf(fid,"%d,%d,%d,%d};\n\n",twiddleFFT_2048(8185:8188));
|
|
|
|
fprintf(fid,"short twiddle_ifft2048[2047*4] = {");
|
|
fprintf(fid,"%d,%d,%d,%d,\n",twiddleIFFT_2048(1:8184));
|
|
fprintf(fid,"%d,%d,%d,%d};\n\n",twiddleIFFT_2048(8185:8188));
|
|
|
|
|
|
|
|
|
|
fclose(fid)
|
|
|
|
k=0;
|
|
|
|
for i=0:11,
|
|
for n=0:(2^i)-1,
|
|
|
|
twiddleFFT_4096(1+(4*k)) = fix(16384*cos(2*pi*n/(2^(i+1))));
|
|
twiddleIFFT_4096(1+(4*k)) = twiddleFFT_4096(1+(4*k));
|
|
|
|
twiddleFFT_4096(2+(4*k)) = fix(16384*sin(2*pi*n/(2^(i+1))));
|
|
twiddleIFFT_4096(2+(4*k)) = -twiddleFFT_4096(2+(4*k));
|
|
|
|
twiddleFFT_4096(3+(4*k)) = -twiddleFFT_4096(2+(4*k));
|
|
twiddleIFFT_4096(3+(4*k)) = twiddleFFT_4096(2+(4*k));
|
|
|
|
twiddleFFT_4096(4+(4*k)) = twiddleFFT_4096(1+(4*k));
|
|
twiddleIFFT_4096(4+(4*k)) = twiddleFFT_4096(1+(4*k));
|
|
|
|
|
|
|
|
k=k+1;
|
|
end
|
|
end
|
|
|
|
[fid, msg] = fopen("twiddle4096.h","w","ieee-le");
|
|
|
|
fprintf(fid,"short twiddle_fft4096[4095*4] = {");
|
|
fprintf(fid,"%d,%d,%d,%d,\n",twiddleFFT_4096(1:16376));
|
|
fprintf(fid,"%d,%d,%d,%d};\n\n",twiddleFFT_4096(16377:16380));
|
|
|
|
fprintf(fid,"short twiddle_ifft4096[4095*4] = {");
|
|
fprintf(fid,"%d,%d,%d,%d,\n",twiddleIFFT_4096(1:16376));
|
|
fprintf(fid,"%d,%d,%d,%d};\n\n",twiddleIFFT_4096(16377:16380));
|
|
|
|
|
|
|
|
|
|
%fprintf(fid,"unsigned short rev4096[4096];\n")
|
|
fclose(fid)
|
|
|
|
k=0;
|
|
|
|
for i=0:12,
|
|
for n=0:(2^i)-1,
|
|
|
|
twiddleFFT_8192(1+(4*k)) = fix(16384*cos(2*pi*n/(2^(i+1))));
|
|
twiddleIFFT_8192(1+(4*k)) = twiddleFFT_8192(1+(4*k));
|
|
|
|
twiddleFFT_8192(2+(4*k)) = fix(16384*sin(2*pi*n/(2^(i+1))));
|
|
twiddleIFFT_8192(2+(4*k)) = -twiddleFFT_8192(2+(4*k));
|
|
|
|
twiddleFFT_8192(3+(4*k)) = -twiddleFFT_8192(2+(4*k));
|
|
twiddleIFFT_8192(3+(4*k)) = twiddleFFT_8192(2+(4*k));
|
|
|
|
twiddleFFT_8192(4+(4*k)) = twiddleFFT_8192(1+(4*k));
|
|
twiddleIFFT_8192(4+(4*k)) = twiddleFFT_8192(1+(4*k));
|
|
|
|
|
|
|
|
k=k+1;
|
|
end
|
|
end
|
|
|
|
[fid, msg] = fopen("twiddle8192.h","w","ieee-le");
|
|
|
|
fprintf(fid,"short twiddle_fft8192[8191*4] = {");
|
|
fprintf(fid,"%d,%d,%d,%d,\n",twiddleFFT_8192(1:16376));
|
|
fprintf(fid,"%d,%d,%d,%d};\n\n",twiddleFFT_8192(16377:16380));
|
|
|
|
fprintf(fid,"short twiddle_ifft8192[8191*4] = {");
|
|
fprintf(fid,"%d,%d,%d,%d,\n",twiddleIFFT_8192(1:16376));
|
|
fprintf(fid,"%d,%d,%d,%d};\n\n",twiddleIFFT_8192(16377:16380));
|
|
|
|
|
|
|
|
|
|
%fprintf(fid,"unsigned short rev8192[8192];\n")
|
|
fclose(fid)
|