数据采集中的采样率、缓冲区大小以及,每通道采样数之间的关系
采樣率:每秒鐘才多少次
每通道采樣數:指的是每次從通道讀取的數據長度,其實是從buffer里面讀取。如果每次讀的太少,讀取時間間隔長那么buffer數據堆積會導致溢出。因此buffer size應該大于數據讀取間隔*采樣率。
形象一點,buffer就是一個桶,采集端是往里面倒水的,采樣率就是這個進口的水流速度。讀取端是往外抽水的,每通道的采樣數和讀取間隔決定了出水速度,你的任務是保證水桶不會滿。
DAQmx定時VI(采樣時鐘)控制了從設備中得到數據的數量和速率。這個VI有三種工作模式:有限的,連續的和硬件定時單點,這些模式決定了采集數據的數量。
有限采樣:?每通道采樣決定了每通道上有多少數據被讀取。也就是說,每通道采樣每個通道上有多少數據被收集。
連續采樣:每通道采樣數決定了每個通道分配的緩沖區的大小。采樣率決定了數據被采集并且放置到硬件緩沖區的速度。采樣數決定從硬件緩沖區到軟件緩沖區的數據數量。一般推薦采樣數是采樣率的十分之一,例如:DAQmx的采樣率輸入是1000(Hz),那么每通道采樣數不應該超過100。決定數據采集速率時,必須協調好兩步的采集,不能太快或者太慢。
輸入緩沖區的大小則是由采樣速度決定的。通過調用輸入緩沖配置函數/VI可重寫默認緩沖區大小。
一般采集的VI都是放在一個Loop里面,不斷的Loop不斷的采集,那么每Loop一次,采集VI的輸出的采集到的數據的個數就是“每通道采樣數”,相當于一個一維數組;如果是多通道采集,就相當于是二維數組。千萬不要以為采集VI是每Loop一次即是“采集一個數據”,這是錯的,除非你設置“每通道采集數”為1。如果你設置采樣頻率為100Hz,每通道采樣數為1000,那么每Loop一次為10秒,輸出1000個數據(每個通道);如果每通道采樣數為10,則每Loop一次為0.1秒,輸出10個數據(每個通道)。
而至于緩沖區大小,則和平常說的是一個意思,如果你不手動設定緩沖區大小,則緩沖區大小是由Labview自動按照采集頻率和每通道采樣數的大小來確定的,具體參考Labview的help里面有個表,自己可以找找?
總結
以上是生活随笔為你收集整理的数据采集中的采样率、缓冲区大小以及,每通道采样数之间的关系的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: java识别系统_[Java教程]Jav
- 下一篇: matlab gui实例_App Des