xiaogetingyu 发表于 2007-8-17 11:28:20

各位高手大哥帮忙呀,发采同步问题,急等

我先构造一个波形数组,然后发一个,接着采一个(在定义好采样率后),然后实时显示;
      这样做的结果是,在采样率小于100的时候,完全能够实现;但采样率变大以后,采集的波形,就不是一个完整的正弦波了,只能采到大半个周期;我请教了别人,结果回答是不断调用AO、AI的Vi导致的;而且也找不到更好的办法,能够在提高采样率的同时,还能采集一个完整周期的
波形。
      程序我放在附件里了,大家帮我看看,帮帮忙啦

xiaogetingyu 发表于 2007-8-18 15:28:39

cpubbs大哥帮忙呀

怎么没人愿意帮忙呀?

tinywind 发表于 2007-8-20 12:33:00

我也遇到过 这样的情况大概的原因是 采样点数 采样频率 跟你的显示控件 不匹配

你增加采样点数看看

tinywind 发表于 2007-8-20 12:35:28

比如你采样频率是1000 但是采样点数才500 当然采集不到足够的数据

比如 你信号频率500左右 采样频率 5000 你想显示1个周期的波形 至少要采集 10个点吧

我的看法就是这样的 建议随着采样频率的提高 按照一定比例提高采样点数

具体说 就是 采样频率 影响 波形还原质量   采样点数 影响 数据的获取量

[ 本帖最后由 tinywind 于 2007-8-20 12:47 编辑 ]

xiaogetingyu 发表于 2007-8-21 09:23:37

你把我的程序看看吧,不是采样的问题,我认为主要是在XP下,你调用 daqmx中的 DA vi 和 AD vi
需要进行用户模式和内核模式的切换,可能是这种切换太浪费时间,所以导致在采样率高的时候,采集跟不上发送。

xiaogetingyu 发表于 2007-8-21 09:35:49

主要我是想用一块Ni的6221 ,发送一个正弦波,同时进行采集,分析,显示;如果把发送波形,跟采集放到两个不同的线程中,不能保证完全同步,而且定时用的都是板卡上的定时器;所以我就先设定好采样率,然后发送一个点采集一个点,分析显示一个点(一个周期正弦波1024个点)。谢谢sister的帮助,

tinywind 发表于 2007-8-21 13:08:45

由于没用过 你这样的方法 我不太好说

但是我用PCI卡采集信号的时候一般不采取 逐点采集分析

xiaogetingyu 发表于 2007-8-22 19:51:50

我也没办法呀,要实时显示,我没想到更好的办法呀,你有什么好想法可以推荐推荐呀,

tinywind 发表于 2007-8-24 13:19:45

即使是 实时显示 也没必要精确到每个点吧

实时显示 也是有一定的显示间隔的看你的要求精度了

你可以同步显示一个数据段嘛比如说 采样频率是10000你每次处理1000个数据点 每0.1秒显示刷新一次数据显示 不也可以么?

如果采集一个点 就分析处理一个点 确实要求太高了 那样采集卡内设计的缓存就完全没有意义了
CPU几乎所有的时间都要花在这个上面 自然会有延迟

(以上纯属个人理解)

tinywind 发表于 2007-8-24 13:21:57

即使是 实时显示 也没必要精确到每个点吧

实时显示 也是有一定的显示间隔的看你的要求精度了

你可以同步显示一个数据段嘛比如说 采样频率是10000你每次处理1000个数据点 每0.1秒显示刷新一次数据显示 不也可以么?

如果采集一个点 就分析处理一个点 确实要求太高了 那样采集卡内设计的缓存就完全没有意义了
CPU几乎所有的时间都要花在这个上面 自然会有延迟

(以上纯属个人理解)

tree2000zz 发表于 2007-8-24 14:06:17

8.0以上版本支持双核系统。当然,数据处理的速度也和你的系统有关。在XP系统下,操作系统的相应时间最小就是50ms,如果你的要求过高,或者数据处理量大或者繁琐当然不排除会降低效率的可能。如果你对实时性要求真的很高,又有一定的资金保证,用RT系统吧(实时系统)。能够做到i微妙级的相应时间,呵呵

xiaogetingyu 发表于 2007-8-24 22:54:44

谢谢两位哥哥妹妹拉,我再多花点时间研究研究了,迟早会搞出个理所然来得.其实主要是要用一块卡,同时实现发和采,实在不行,就只好用专用得信号发生器发,采集卡只用来采就是了,
页: [1]
查看完整版本: 各位高手大哥帮忙呀,发采同步问题,急等