示波器测量DDS输出频率抖动问题。
FPGA 做的多路DDS,在2^位宽不为频率控制字的整数倍时会发生这种情况,这个貌似没什么好的解决办法,提高主频,从而可以减小控制字有一点效果,但还是有抖动,再者能想到的就是增加相位累加器的位宽。各位有想法的,欢迎提供线索。 没看明白。 gzhuli 发表于 2015-7-17 23:30没看明白。
就是输出的波形,可能一下是10K,一下是9.98K,示波器不是一个稳定的频率读数。
分析了原因,就是那个频率控制字不能被累加器的位宽2^N整除,就会有这种情况。 看资料说这个是相位杂散 举个例子吧,比如DDS的时钟为781250Hz ,累加器的位宽为32bit,那么现在输入控制字为80000000(十进制),那么应该输出频率为14551.92Hz,
但是实际上他会在14.46K 与14.73K之间跳动。 chenchaoting 发表于 2015-7-17 23:40
举个例子吧,比如DDS的时钟为781250Hz ,累加器的位宽为32bit,那么现在输入控制字为80000000(十进制),那 ...
示波器看频率不准吧?尤其是低通滤波做得不好的时候。 gzhuli 发表于 2015-7-17 23:46
示波器看频率不准吧?尤其是低通滤波做得不好的时候。
这个有考虑,但是直接测量DA输入的最高位,也是会有频率抖动的。在能整除时就不会抖 chenchaoting 发表于 2015-7-17 23:59
这个有考虑,但是直接测量DA输入的最高位,也是会有频率抖动的。在能整除时就不会抖 ...
你只测最高位肯定会有抖动啊,非整除时每个周期输出的点都不一样的。 gzhuli 发表于 2015-7-18 00:18
你只测最高位肯定会有抖动啊,非整除时每个周期输出的点都不一样的。
你说的没错,非整除,每个周期不一致,你们用示波器测过频率没有?是不是存在频率跳动 1、直接看数据位肯定会有抖动,这个叫量子化误差;
2、示波器看dds输出的正弦波,那个示波器频率抖动根本不是量子化误差引起的,而是示波器的特性引起的。示波器是“示波”的, 不是精密测量设备。实际上,如果DDS过DAC输出经过低通滤波器后,这个量子化误差的抖动基本上都处理掉了。
3、如果楼主真想测量,一定要用高端点的频率计/计数器。
LZ 的FPGA分频如果做得不好,输出肯定会有抖动问题的。 wiser803 发表于 2015-7-18 10:55
LZ 的FPGA分频如果做得不好,输出肯定会有抖动问题的。
是DDS,不是分频,分频的话肯定没问题的 感觉LZ的正弦表做的有问题 DDS 若输出会抖动,不是 FPGA 相位没配置好,要不就是低通没配置好的问题啰!
但若基频的晶震或整体的电源不稳定,也可能发生类似的状况。 castiello 发表于 2015-7-18 13:06
感觉LZ的正弦表做的有问题
正弦表是1/4表格,为512点。 xyz.543 发表于 2015-7-18 13:28
DDS 若输出会抖动,不是 FPGA 相位没配置好,要不就是低通没配置好的问题啰!
但若基频的晶震或整体的电源 ...
我只负责verilog,刚看了他还没加低通,等他加入低通后,我再来汇报 aureole 发表于 2015-7-18 10:39
1、直接看数据位肯定会有抖动,这个叫量子化误差;
2、示波器看dds输出的正弦波,那个示波器频率抖动根本 ...
我比较认同你说的,对方还没加入滤波 chenchaoting 发表于 2015-7-18 14:01
我只负责verilog,刚看了他还没加低通,等他加入低通后,我再来汇报
没低通?!哈哈~ 会抖才是正常的,只有可以基频被 2 整除的频率才不会抖啊! xyz.543 发表于 2015-7-18 14:25
没低通?!哈哈~ 会抖才是正常的,只有可以基频被 2 整除的频率才不会抖啊! ...
都是洞洞板,还没焊,你说的没错,只有能被2^位宽整除就是不会跳。等滤波搞好了再来汇报。还有我觉得这个抖动的大小跟频率字与2^位宽的比值大小有关,不知是否正确? 累加器加到最大值溢出后,以余值而不是零作为下一次累加的起始值,避免因舍掉余值而引起的频率误差。
累加器加到最大值溢出后,以余值而不是零作为下一次累加的起始值,避免因舍掉余值而引起的频率误差。
chenchaoting 发表于 2015-7-18 19:03
都是洞洞板,还没焊,你说的没错,只有能被2^位宽整除就是不会跳。等滤波搞好了再来汇报。还有我觉得这个 ...
非整除的情况下,每个周期相位累加器输出的相位值都不同,对应正弦波表不同的点,如果不经低通滤波器平滑,示波器的固定触发阈值就会捕捉到抖动的波形。 huke08@126.com 发表于 2015-7-18 23:04
累加器加到最大值溢出后,以余值而不是零作为下一次累加的起始值,避免因舍掉余值而引起的频率误差。
...
那么我频率字越小,那么溢出取余数剩下的就越小,是否可以这么理解?还有你说的避免,如何避免,有无相关文献? gzhuli 发表于 2015-7-18 23:23
非整除的情况下,每个周期相位累加器输出的相位值都不同,对应正弦波表不同的点,如果不经低通滤波器平滑 ...
分析得有道理,多谢大师 huke08@126.com 发表于 2015-7-18 23:04
累加器加到最大值溢出后,以余值而不是零作为下一次累加的起始值,避免因舍掉余值而引起的频率误差。
...
这个想法好,有空试一下。
页:
[1]