verilog位宽问题
时间:10-02
整理:3721RD
点击:
打算用verilog写一个FFT模块,数据是从7位的ADC输出,就是[6:0],采集到64个数据后进行处理。首先将数据乘以一个汉明窗,再做64点的FFT变换,现在有如下问题。
1. 在matlab 中64点的汉明窗是[0.0822858433319154, 0.0891206555896699, 0.100436509338375... ...],小数位数很多,具体应该写verilog时位宽应该为多大?
2. 在matlab仿真时发现FFT后数据最大能到24+0.4085j,由于FFT后还要进行数据处理,数据最大可能超过100,此时我应该如何选取位宽?是以最大的计?matlab仿真的数值大小对我verilog运算的位宽的确定有什么影响?
3. 在我整个数据处理过程中位宽是否需要一致?
4. 在ADC只有7位输出时,感觉精度不够,能够高位添0,比如构成15位,再进行后面的运算?
表示不懂
没看懂题目第4个问题,应该是可以这么做的。
没看懂题目第4个问题,应该是可以这么做的。
1. 最主要是因素是你所能容忍的误差是多少?
2. 最终输出位宽跟中间数据处理位宽是是两码事
3. 中间所以的舍弃处理,都会损失精确度
那个是有一个原则的就是计算后信号幅度最接近于你ADC信号幅度就行
