各位高手大哥帮忙呀,发采同步问题,急等
我先构造一个波形数组,然后发一个,接着采一个(在定义好采样率后),然后实时显示;这样做的结果是,在采样率小于100的时候,完全能够实现;但采样率变大以后,采集的波形,就不是一个完整的正弦波了,只能采到大半个周期;我请教了别人,结果回答是不断调用AO、AI的Vi导致的;而且也找不到更好的办法,能够在提高采样率的同时,还能采集一个完整周期的
波形。
程序我放在附件里了,大家帮我看看,帮帮忙啦
cpubbs大哥帮忙呀
怎么没人愿意帮忙呀? 我也遇到过 这样的情况大概的原因是 采样点数 采样频率 跟你的显示控件 不匹配你增加采样点数看看 比如你采样频率是1000 但是采样点数才500 当然采集不到足够的数据
比如 你信号频率500左右 采样频率 5000 你想显示1个周期的波形 至少要采集 10个点吧
我的看法就是这样的 建议随着采样频率的提高 按照一定比例提高采样点数
具体说 就是 采样频率 影响 波形还原质量 采样点数 影响 数据的获取量
[ 本帖最后由 tinywind 于 2007-8-20 12:47 编辑 ] 你把我的程序看看吧,不是采样的问题,我认为主要是在XP下,你调用 daqmx中的 DA vi 和 AD vi
需要进行用户模式和内核模式的切换,可能是这种切换太浪费时间,所以导致在采样率高的时候,采集跟不上发送。 主要我是想用一块Ni的6221 ,发送一个正弦波,同时进行采集,分析,显示;如果把发送波形,跟采集放到两个不同的线程中,不能保证完全同步,而且定时用的都是板卡上的定时器;所以我就先设定好采样率,然后发送一个点采集一个点,分析显示一个点(一个周期正弦波1024个点)。谢谢sister的帮助, 由于没用过 你这样的方法 我不太好说
但是我用PCI卡采集信号的时候一般不采取 逐点采集分析 我也没办法呀,要实时显示,我没想到更好的办法呀,你有什么好想法可以推荐推荐呀, 即使是 实时显示 也没必要精确到每个点吧
实时显示 也是有一定的显示间隔的看你的要求精度了
你可以同步显示一个数据段嘛比如说 采样频率是10000你每次处理1000个数据点 每0.1秒显示刷新一次数据显示 不也可以么?
如果采集一个点 就分析处理一个点 确实要求太高了 那样采集卡内设计的缓存就完全没有意义了
CPU几乎所有的时间都要花在这个上面 自然会有延迟
(以上纯属个人理解) 即使是 实时显示 也没必要精确到每个点吧
实时显示 也是有一定的显示间隔的看你的要求精度了
你可以同步显示一个数据段嘛比如说 采样频率是10000你每次处理1000个数据点 每0.1秒显示刷新一次数据显示 不也可以么?
如果采集一个点 就分析处理一个点 确实要求太高了 那样采集卡内设计的缓存就完全没有意义了
CPU几乎所有的时间都要花在这个上面 自然会有延迟
(以上纯属个人理解) 8.0以上版本支持双核系统。当然,数据处理的速度也和你的系统有关。在XP系统下,操作系统的相应时间最小就是50ms,如果你的要求过高,或者数据处理量大或者繁琐当然不排除会降低效率的可能。如果你对实时性要求真的很高,又有一定的资金保证,用RT系统吧(实时系统)。能够做到i微妙级的相应时间,呵呵 谢谢两位哥哥妹妹拉,我再多花点时间研究研究了,迟早会搞出个理所然来得.其实主要是要用一块卡,同时实现发和采,实在不行,就只好用专用得信号发生器发,采集卡只用来采就是了,
页:
[1]