打印

【求助各路朋友】430测量频率,100多KHz,精确到Hz

[复制链接]
6116|39
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
jizzll|  楼主 | 2009-3-16 21:50 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求助430测量频率100多KHz精确到Hz

现在需要测量频率,要求如下 

测量范围100K-135K Hz,因为信号频率很精确的,变化不是很剧烈,一般稳定在一个数据上面,所以要求精确到Hz,测量时间小于100mS。拟采用MSP430F149,主频1.8432M. 

求助大家 

采用过定时捕捉。 
(主频8M的时候) 
定时,捕捉脉冲数,分辨率只能到±10Hz 
捕捉固定脉冲数,测量时间,分辨率只能到±3Hz 

而且不知道是硬件还是软件原因,有个别数据跳跃很大。 

还有一个问题就是捕获中断的话,在1.8432M的时候估计会出现漏脉冲。 

如果采用分频器的话,即使采用430的8分频,也很难精确的到1Hz吧 

故求大家帮忙 

相关帖子

来自 2楼
quakegod| | 2009-3-19 19:18 | 只看该作者

25楼在这里瞎忽悠

你说,测试时间小于一秒不可能做到1Hz分辨率吗?

那假如说,偶测50Hz市电的频率,精确到0.001Hz,是不是说要半个来小时才能测出来啊?
当然不是,
实际上,只要1/50秒即可测得,至少理论上是可行的。
但是,如果能多测几个波形的话,对于测量的要求就大大降低了。

举例,能不能量一张纸的厚度呢,精确到0.1uM,
当然能了,只要你有那么高精度的尺子。
但是如果有10000张纸摞起来,那只要精度是1mm的普通尺子就能实现了。

所以,理论上讲,测135KHz频率,其实只测一个波形,也能精确到1Hz,
但是对测量设备的要求太高了,计时频率要到18GHz才能达到。
所以偶们可以多测量几个波形,这样难度就下降了,
不管是100mS还是200mS,还是50mS,还是1S,这个都没有关系,无非是给的时间越长,难度就越小。

另外,如果你想说,这个135K的信号频率不是稳定的,有些变化,测量1S的话是真实的频率,测量100mS不是真实的频率,其实这么说也不对。

假如频率是变化的,那么测量1S也只是测到了平均值,而测量100mS也是测量到了平均值,平均值必然介于最大值和最小值之间。1S的平均值与100mS的平均值是等效的。

使用特权

评论回复
板凳
quakegod| | 2009-3-17 08:14 | 只看该作者

精确到Hz可不是那么简单的事

135K精确到Hz,测量时间100mS,那对你的参考时钟源有极高的要求,要小于6PPM
另外,相位抖动的要求也相当高,可不是一个简单的晶振就能实现的
如果说分辨率做到Hz还是比较容易的,但是精度就太难了

能实现这个精度的频率计估计价格会很猛。

使用特权

评论回复
地板
jizzll|  楼主 | 2009-3-17 09:48 | 只看该作者

终于有朋友说话了

我也很头痛,分辨率做到1Hz很容易么

使用特权

评论回复
5
王紫豪| | 2009-3-17 11:44 | 只看该作者

楼主测得什么波形啊?滤波、整形了吗?

使用特权

评论回复
6
有风| | 2009-3-17 12:08 | 只看该作者

捕捉固定脉冲数,测量时间

在确定捕捉到第一个脉冲之后,
再开启一个timer,测量时间,这个timer精度最好高一点.
100ms可以捕捉10000个100k的脉冲了.(用8192个就好了吧,比较容易计算)
再求平均值.
我觉得这是最好的方法~~~

使用特权

评论回复
7
gx_huang| | 2009-3-17 12:30 | 只看该作者

原理性错误

如果不是测量脉冲宽度,只是计数,要做到1HZ精度,则计时闸门必须大于1S
才有可能。

要做到0.1Hz,则闸门必须10S以上,这是基本原理呀!

使用特权

评论回复
8
ayb_ice| | 2009-3-17 20:45 | 只看该作者

关键是测量时间太短

使用特权

评论回复
9
jizzll|  楼主 | 2009-3-18 10:40 | 只看该作者

6楼的朋友采用的定时计数吧

6楼的朋友采用的定时计数吧,这样会存在1个计数误差。的确,记时1S才能达到1Hz的


4楼的朋友 测量方波的频率

5楼的朋友,这样测量感觉误差有点大的

使用特权

评论回复
10
mohanwei| | 2009-3-18 13:06 | 只看该作者

“精确到Hz,测量时间小于100mS”这点任何MCU都达不到

1Hz的周期是1s,这是众所周知的,100ms连上升沿、下降沿都摸不到边……怎么测啊

使用特权

评论回复
11
工控秀才| | 2009-3-18 15:01 | 只看该作者

理解错误

"1Hz的周期是1s,这是众所周知的,100ms连上升沿、下降沿都摸不到边……怎么测啊"
 别人的频率是100多K哟,100ms有N多个上下沿了.有开发费用,我可以用我的多核心来试一下,利用高精准的wait 1, wait0等脉冲捕捉指令,来试试看.
   呵呵,计算了一下,楼主在忽悠人呀.
135K的频率周期约7.4074074us
134K的频率周期约7.4636865us
这里的时间只有60ns呢,即使单周期指令也至少要跑16MIPS才可以达到如此精度.还不算其他的处理延时等.
   我放弃,哈哈.

使用特权

评论回复
12
xwj| | 2009-3-18 15:11 | 只看该作者

呵呵,LS正解

使用特权

评论回复
13
quakegod| | 2009-3-18 17:11 | 只看该作者

回10楼和11楼

其实算法不用那么极端,
偶们大可不必测一个周期,而是可以测多个周期
这样对测量的要求就大大降低了,
比如说,在100mS之内,有多少周期算多少周期,
测出这个时间长度后,除以所记的周期数即可。
135K的频率周期约7.4074074us
比如,135K频率,计时分辨率是1uS,那么100mS内就可以测到13500个周期,时间是100.000mS,或100000uS.
假如,同样测到了13500个周期,但是测到所用时间为99.999mS,
因为差1uS,比一个周期7.4uS短,所以不会差一个周期。
那么再算回到频率就是13500/99.999e-3=135001.35Hz,分辨率,1.35Hz.
假如计时频率能到135KHz的10倍,也就是1.35MHz,是完全能在100mS的时间内用测周期的办法实现1Hz的分辨率的。
注意,偶这里说的是分辨率,而不是说精度。
就像偶在二楼说的,分辨率很简单,但是精度就很难了。
版主加裤子吧。

使用特权

评论回复
14
工控秀才| | 2009-3-18 19:38 | 只看该作者

理论高手

呵呵,楼上的理论看起来是可以的.
可能我习惯用软件模拟多路PWM了,所以算法没有选择好,其实就是累计和求平均的关系.这样看来,我是可以完成分辨率为1hz的测试哟,呵呵.
刚好原来有人想用我的来产生100多K的可变频率,也想分辨率达到1Hz,我就是按刚才说的方式算的,那次是对的,这次是错误的,哈哈,谢谢.

使用特权

评论回复
15
jizzll|  楼主 | 2009-3-18 19:44 | 只看该作者

回12楼

   昨天看了你的2楼帖子,我特意去查了哈精度和分辨率,虽然我是学仪器的,但是头还是有点晕。

   因为频率变化1Hz,对我最后的结果是0.06%的影响,所以我需要测量准确到1Hz,这个应该是叫精度吧。
   在这个我的这个实例中,我还是分不清精度和分辨率。O(∩_∩)O~

使用特权

评论回复
16
jizzll|  楼主 | 2009-3-18 20:03 | 只看该作者

回15楼

不知道你说的采用什么方法

使用特权

评论回复
17
有风| | 2009-3-18 20:06 | 只看该作者

编译器计算13500/99.999e-3也会有误差的

使用特权

评论回复
18
mohanwei| | 2009-3-18 20:19 | 只看该作者

没看到100k-135k频率范围的约束……

因为习惯了只给上限的任务……呵呵

如2楼所说,分辨率做到1Hz不难(是其它方案,对于MSP430不熟,不发表意见),精度就很难达到了。

使用特权

评论回复
19
mohanwei| | 2009-3-18 20:39 | 只看该作者

关于精度和分辨率的关系,记得我以前发过一篇帖子

举个例子:
1把塑料尺,量程10cm,每个cm有10个刻度——你可以认为它的分辨率是1/100,也可以说分辨率是1mm(反正现在的专业名词是挺乱的)。
好,现在把尺子放到火上烤一烤,拉一拉,凭直觉,你就知道这个东西“不准”了,但是它上面的刻度线还是在的,所以分辨率不变……但是精度可就天差地别了。

所以我看到很多分辨率号称0.01度的温度、湿度传感器我就觉得好笑,要知道普通湿度传感器5%精度都不容易做到……

使用特权

评论回复
20
jizzll|  楼主 | 2009-3-18 20:51 | 只看该作者

19楼的朋友

  那在我这个例子中,可不可以这样理解分辨率和精度呢

  假设我的晶振是2M,最后得到的频率准确为100.000K
  现在由于晶振的误差(也许是2.00001M),我根据公式算出来是100.001K

  这个就说明我的分辨率是1Hz,而精度其实不是1Hz吧
  

使用特权

评论回复
21
mohanwei| | 2009-3-18 21:26 | 只看该作者

是的,只能说是分辨率;精度不是可以随便标的……

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

5

主题

37

帖子

0

粉丝