一般来说,频率测量的方法有:
1,计频法:所谓频率,就是单位时间内信号周期变化的次数。如果以1s为单位,测出此时间区间内的脉冲个数就是频率。这样的精度并不高,如果把单位时间放大到10s、100s等,这样精度会提高很多。
2,计时法:测量一个脉冲来的时间和结束的时间,二者之差便是信号周期,取其倒数便是频率。但是如果待测频率很高,脉冲周期非常短,这就要求很高的计时器来测量这微小的时间差,所以这种方法测量高频往往难以满足精度要求。但是测量10个,100个……脉冲周期就会很容易一些,精确一些。
单独使用某一种,虽然加大测量范围,可以提高精度,但是还是有所缺陷。如果使用混合方法来实现,可以计算出高精度的频率。
计频法:设置时间阀值,对该时间内采集脉冲计数,计数为N;计时法,精确测N个脉冲所用时间,计时为T。则计时计频测出频率为F=N/T.
以上就是实现原理。
实现方法:
1,一般使用MCU自带的捕获功能来捕获上升沿或下降沿。启动中断来判断。假如使用下降沿,来一个下降沿就在中断中加一个数,这样就记录了脉冲数。并且读取第一个脉冲来的时候的时间,即你时间阀值内的第一个脉冲时间。之后来一个脉冲读取一次时间。这样两个时间差,就是所记录脉冲个数的时间差。
2,使用定时器功能,周期性的定时中断。每个周期计算一次频率,即根据统计的脉冲数和时间来计算。这样每个周期就计算出了一个频率值。
这样计算的频率值可能存在误差,比如突然又干扰等因数造成频率不稳定。这样就要多次测量,采取滤波方法来去除干扰。
滤波方法很多,根据具体应用选择合适滤波方法,如限幅滤波法,算术平均滤波法、中位值滤波法、滑动平均滤波法、一阶滞后滤波法、消抖滤波法等等。
在AS7.0的工程中增加如下图的ASF库,即可实现,
-
频率
+关注
关注
4文章
1438浏览量
59145
发布评论请先 登录
相关推荐
评论