1 Star 1 Fork 2

gwh/openofdm

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
克隆/下载
gen_rot_lut.py 1.34 KB
一键复制 编辑 原始数据 按行查看 历史
Jinghao Shi 提交于 2017-04-03 12:52 . scripts init
#!/usr/bin/env python
"""
Generate the rotation vector LUT.
Key = phase -- phase \in [0, math.pi/4)
Value = SCALE*(math.cos(phase), math.sin(phase))
"""
import argparse
import math
import os
ATAN_LUT_SCALE = 512
SCALE = 2048
def main():
parser = argparse.ArgumentParser()
parser.add_argument('--out')
args = parser.parse_args()
if args.out is None:
args.out = os.path.join(os.getcwd(), 'rot_lut.mif')
coe_out = '%s.coe' % (os.path.splitext(args.out)[0])
MAX = int(round(math.pi/4*ATAN_LUT_SCALE))
SIZE = int(2**math.ceil(math.log(MAX, 2)))
data = []
with open(args.out, 'w') as f:
for i in range(SIZE):
key = float(i)/MAX*math.pi/4
I = int(round(math.cos(key)*SCALE))
Q = int(round(math.sin(key)*SCALE))
print '%f -> %d -> (%d, %d)' % (key, i, I, Q)
val = (I<<16) + Q
data.append(val)
f.write('{0:032b}\n'.format(val))
print "SIZE = %d, scale = %d" % (SIZE, SCALE)
print "MIL file saved as %s" % (args.out)
with open(coe_out, 'w') as f:
f.write('memory_initialization_radix=2;\n')
f.write('memory_initialization_vector=\n')
f.write(',\n'.join(['{0:032b}'.format(l) for l in data]))
f.write(';')
print "COE file saved as %s" % (coe_out)
if __name__ == '__main__':
main()
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
1
https://gitee.com/gongwenhong/openofdm.git
git@gitee.com:gongwenhong/openofdm.git
gongwenhong
openofdm
openofdm
master

搜索帮助

0d507c66 1850385 C8b1a773 1850385