完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
原来的采集卡使用的labview 2011 32位,matlab2012a 32位。
在数据采集系统中,需要添加一个实时的处理模块,对处理结果用XY图实时展示。 系统参数: 采样率10k,采样数:1k,采集通道我用的6个通道或者自己定义。 我的尝试: 将采集到的数据接入到M Script节点,用A来接收,为6x1000的数据。处理结果用XY图展示。为了让其实时变化,我将其放入了一个while框中,设置1秒刷新一次。可以让图形实时变化。这样可行吗? 在没有加while循环时,接收到的数据A不会变化,是怎么回事,M程序中处理是用for循环先处理采样率m个数据,然后再处理m+1到2m个数据,会出现越界问题。 放到while框中,接受到的数据成为 6x1000。我可以将其转置就跟原来的存储格式一样了。在处理的时候在M 程序中,直接用for循环,每次处理m个数据。循环多少次就能有多少个点绘制。这样可行吗? 还有个不懂的,采样率10k,采样数1k,我接受到的数据为6x1000. 所以在M程序中最多处理1k个数据。1k指的是一列数据1000x1个数据来处理经过一些傅立叶变换等计算会计算出一个值。for循环5次就会有5个点的显示。 这样做是否合理?请多指教。谢谢 |
|
相关推荐
1个回答
|
|
您好,我跟你遇到同样的问题,咱们的需求是一样的,都是需要将数据进行实时处理然后实时的展示结果图。
原来的计算方式是,采集完的数据进行计算,每次计算m个数据点。我设置的for循环次数是样本总数居/采样率。 在实时计算中需要在计算时添加一个while循环。用A接收的永远都是 6 X 1000的, 我在计算中将其转化为 1000 X 6在是的,计算方法就不能使用采集完再对数据切分计算的方法,会出现数组越界。所以我采用的方法是,这1000个数据点分成10份进行计算(说白了就是10个点),每次计算100个点。10的由来就是根据一般将采样数设置为采样率的10分之1(不知道这样是否合适)。这样是可以得到自己想要的结果的。 但是仍然存在一个疑惑,采样率是10K, 采样数是1K,while循环中设置的刷新时间是1秒, 本来1s接收的是10K个数据点,但是在while中1s刷新一次是只会显示每10K中前1K的数据点计算结果吗。 还是将while循环中的定时器刷新时间设置为100ms,这样是否能将每个数据都计算到。 其他的问题就是,采集到的数据在计算之前不需要对数据进行处理吗(类似于归一化等处理),还是说在某种情况下才需要进行处理。 我刚接触也不太了解这些,你是否解决了你的问题。如果解决了请麻烦你指点一下我。 谢谢。 我的联系方式 qq:1029593617 |
|
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
用udl里的字符串信息在局域网内其他电脑连接sql数据库为什么为出现连接失败拒绝访问?
1852 浏览 2 评论
为什么同一个队列引用的全局变量,运行在两个子vi中发现队列数据丢失了
1469 浏览 0 评论
1664 浏览 0 评论
关于labview2024版本的lvanlys.dll出错的问题
3718 浏览 3 评论
1575 浏览 2 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-26 03:03 , Processed in 0.614793 second(s), Total 75, Slave 58 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号