输入捕获测量频率有误差怎么办

[复制链接]
8901|29
流行音乐 发表于 2010-6-25 20:19 | 显示全部楼层
我用STM32F103C8的捕获功能实现了测量10MHz频率,分辨率达到1Hz。也完全可以做到0.1Hz的分辨率,只是分辨率越高,就需要越多的测量周期来求平均值,即需要的测量时间就越长。
至于误差,这还与系统时钟(晶振)的误差有关。晶振误差一般在30ppm以内,所以测量150kHz频率时误差为4.5Hz。如果你有理想的精准时钟信号,用捕获功能测量150kHz信号的误差就完全能达到0.1Hz以内,方法是测量多个周期并求平均值。
流行音乐 发表于 2010-6-25 20:40 | 显示全部楼层
测量比较高的频率时(例如150kHz),如果只测量一个信号周期,注定误差会很大。
假设MCU定时器时钟为100MHz,则捕捉功能的时间分辨率为0.01us,150kHz信号的周期为6.666667us,则捕捉功能测得的周期为6.66us或6.67us(因为捕捉分辨率为0.01us),误差达到 0.01/6.67=0.15%, 0.15%*150000Hz=225Hz。
所以,如果只测量150kHz信号的一个周期,那么测量误差将达到225Hz。
 楼主| shangelaila 发表于 2010-6-25 21:01 | 显示全部楼层
21# nongfuxu
额。。不清楚 - -! 我还在研究官网的DEMO。。。最短可接收测频闸门是在哪里设置的啊?
 楼主| shangelaila 发表于 2010-6-25 21:02 | 显示全部楼层
22# 流行音乐
测量多个周期的话是不是把输入信号设成外部中断,然后开一个定时器计数,最后算频率?
nongfuxu 发表于 2010-6-26 10:10 | 显示全部楼层
**和鸭讲,讲还是不讲?
 楼主| shangelaila 发表于 2010-6-26 10:37 | 显示全部楼层
26# nongfuxu
呵呵,不好意思。。刚学不太懂啊。。还是讲讲吧
香水城 发表于 2010-6-26 11:04 | 显示全部楼层
22# 流行音乐
测量多个周期的话是不是把输入信号设成外部中断,然后开一个定时器计数,最后算频率?
shangelaila 发表于 2010-6-25 21:02


你绕圈子问了这么多,说明你根本没有看我给你的例子,还是先研究一下手册和例子,再来问一些有针对性的问题吧,:L
nongfuxu 发表于 2010-6-26 11:15 | 显示全部楼层
香帮主说得好!
zchong 发表于 2010-6-27 09:29 | 显示全部楼层
楼主的思路是对的,不过stm32已经帮你考虑到了,所以它有捕获功能,又快又好又方便。
sun1238898 发表于 2014-3-27 13:04 | 显示全部楼层
流行音乐 发表于 2010-6-25 20:19
我用STM32F103C8的捕获功能实现了测量10MHz频率,分辨率达到1Hz。也完全可以做到0.1Hz的分辨率,只是分辨率 ...

请问您怎么测试到10Mhz的频率的,是否可以分享一下代码,谢谢
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 在线客服 返回列表 返回顶部