NI LabVIEW,CVI,数据采集等产品讨论区

取消
显示结果 
搜索替代 
您的意思是: 

FPGA+模拟量输出I/O产生正弦波的频率误差探讨

我想用FPGA+模拟量输出I/O的硬件配置,输出一个定频正弦波。计划采用的硬件是NI cRIO-9014+cRIO-9113+cRIO-9263。通过例子程序“Sine Generator (FPGA).vi”的学习,查看帮助文件对“Sine Wave Generator Express VI”的描述,发现其中一个参数phase increment控制正弦频率的,

具体描述如下: phase increment= [(frequency / FPGA clock rate) * 232] [ ] = rounded to the nearest integer .........................................(1)

我理解即: frequency =(phase increment×FPGA clock rate)/ 232 .........................................(2)

我做了一个VI,对生成频率的误差进行计算,发现计算出来的频率与预期频率最大误差为0.0046Hz。

(根据公式(1)分别计算从0.5Hz到100Hz,步长0.01Hz时的phase increment值,再将得到的phase increment值代入公式(2),

得到实际频率,两者之差即,我理解为系统生成频率的误差,是由于round产生的)。

很明显,决定频率误差大小的参数为FPGA clock rate。系统默认为40MHz,计算时将该值设为4MHz,最大频率误差为0.00046Hz。

我试着修改 top-level FPGA clocks,例如2.5MHz等,均未成功。

需要说明的是我在没有硬件的前提下进行的修改设置。想请教一下我对labview系统的生成波形频率误差的理解对不对?如何能够降低该误差?不知道该FPGA硬件top-level FPGA clocks能否设置成2.5MHz?我要求波形频率在0.5-100Hz之间。

0 项奖励
1 条消息(共 1 条)
3,356 次查看