要求: 实时数据处理
如何做:对于采集到的数据以数组流的形式传输。处理时在while循环中添加
matlab Script (M. Script)模块进行数据的处理。
M. Script 模块用 A 接收实时数组流。由于采样数为1k,A 为 6(采集通道数)X 1000 的数据形式。即每次计算1000个数据点。需要实时处理的需求,我将其放入到while循环中,设置了一个定时,每隔1s,刷新一次。这样传入到M.Script模块中的数据就会发生变化。
问题:采样率为10k。 这样不能保证所有的数据都进行了处理,即使我设置了定时时间为100ms,按道理1s内会处理10k个数据点,正好和数组流的速度相匹配。但是不能保证采集卡的数据速度能跟的上(这点不太清楚采集卡的处理速度是否可以匹配上数据的传输速度)。在定时上还有两种方法:1是等待(ms),2是等待下一个整数毫秒(这个涉及同步问题。第一个整数倍时间不能保证时间间隔正好是100ms)。
在定时处理任务中避免不了的就是,数据流来的时间正好是你设置的时间间隔的某一个的开始。所以想采用定量处理,每处理1k个数据就刷新一次。感觉山是可行的,但定量处理的话时间上就不能保证1s内我到底处理了10k中的多少数据。
请各位大佬帮忙解决一下,在while循环中实时的处理数据,怎么来设置这个处理刷新方式,尽可能多的处理数据使得处理效果较好。
谢谢您的回复。