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

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

如何用声卡测量声波速度

我用话筒发声,用耳机接收声音,让话筒和耳机保持一定距离,目的是通过labview测出声音在各种介质里传播的时间,来计算出声音在不同介质中的波速。现在发现的问题是(估计由于操作系统(windows xp)是非实时系统)不能准确地测量出声音到达的的时间。比如我让话筒和耳机保持一定距离或把它们放在一起,每次测到声音到达的时间都有所不同。最大误差有0.003s的样子,由于我要求话筒和耳机的距离比较短,在50m以内,所以这个误差使得测量非常不准,有时会出现距离长了,反而测量时间短的现象。请问各位老师,有什么办法能用labview比较准确地测量出声波的速度。我在网上了解到的情况是,曾经有人做过这方面的尝试。谢谢各位。
0 项奖励
1 条消息(共 10 条)
7,146 次查看
可以用LabVIEW Real-Time Module来替代Windows操作系统。
Regards
MY
2 条消息(共 10 条)
7,137 次查看

谢谢My NI,但用realtime模块对于这个似乎没什么用,因为我刚了解了,realtime模块对于声卡的实时不支持。我把我的程序也贴出来,请大家指点一下。

0 项奖励
3 条消息(共 10 条)
7,124 次查看

你这个方案不大合适。

windows系统的时钟是ms级别的,也就是说出现几个ms的误差是正常的,这是因为你的采集都是基于windows的时钟来做的。

对于你的这个项目来说,对采集的时间要求比较高,那么你必须采用硬件的定时。

 

 

AE Yang Liu

4 条消息(共 10 条)
7,082 次查看
谢谢各位的帮助,我还有一个问题,如附件中图所示,如何让程序自动求出声波到来时X轴对应的时间呢?
0 项奖励
5 条消息(共 10 条)
7,067 次查看
我得想办法求到声波到来时的绝对时间,如图所示,因为发出声波的绝对时间我可以求到,并且能精确到1ms ,如果可以求到声波到来的绝对时间,并且也能精确到1ms,我想有可能能够测量波速。谢谢大家的帮忙。
0 项奖励
6 条消息(共 10 条)
7,048 次查看
不好意思,我问题中的距离写错了,话筒和耳机的距离不是50m,最多5m,一般只有0.5m左右。因为距离50m什么声音都接收不到了。peter_liu 先生说得对,得找个外部时钟源,因为距离0.5m,传播时间只有1ms-2ms,这点时间用1KHZ的频率根本没法分辨出来。请问NI公司有外部时钟源吗?或者是买NI的自带时钟源的板卡?有1MHZ的时钟源应该够了。
0 项奖励
7 条消息(共 10 条)
7,042 次查看

现在存在的主要问题是,每次程序运行时,声卡设置、发声、接收声音所占用的时间都不一样。而且误差很大,测量到的时间只有0.1s上是完全稳定的,0.01s上有2-3个数的跳动,可能是非实时系统的原因吧。然道这个方案真的不可行么?

0 项奖励
8 条消息(共 10 条)
6,993 次查看
请问windows NT是不是实是系统啊?在NT上运行是不是要好些?
0 项奖励
9 条消息(共 10 条)
6,986 次查看

swji 贴出的图 是使用声卡 发出类似脉冲波形 的信号进行测量的,这样的话 不太容易避开 声卡启动 这一个阶段的干扰,可以参考一下 使用 类似于载波信号的方式:)

Using LabVIEW 8.0.0 on Windows XP
10 条消息(共 10 条)
6,978 次查看