在Matlab实验中获得高采样率

2024-09-30 06:22:51 发布

您现在位置:Python中文网/ 问答频道 /正文

简单描述一下我想要达到的目标: 我有一个水平安装的杠杆和一个电位计,用来控制电脑屏幕上的光标。为此,我在WindowsXP机器上使用Matlab2011A和Psychtoolbox以及数据采集工具箱。DAQ是安捷伦U2300 A。经过许多不同的方法后,我最终得到了这个(示例代码):

ai = analoginput('agilentu2300', 0); % creates the analog object with our card
ch = addchannel(ai,1); % adds the channel for the potentiometer
set(ai,'InputType','SingleEnded'); % generates absolute values
set(ai,'SampleRate',1000); % sampling rate
set(ai,'SamplesPerTrigger',Inf); % continuous recording
start(ai); % starts the analog object
running = 1;
while running == 1
    mySample = getData(ai,1) % acquire one sample
    drawThisOnTheScreenAtXCoordinate(mySample); % drawsample on screen
    experimentEnded = isExperimentOver(); % check wether experiment is over
    if experimentEnded == 1 % decide wether to quit the program
        running = 0;
    end
end
stop(ai) % stops the analog objects 
experimentData = getData(ai); % acquires all written data

这是有效的。我还包括了一个时间检查,所以这个while循环的运行速度没有CPU允许的那么快。它被限制在每秒大约200个循环,并且我得到相同数量的样本。但实际上,这些并不是不同的样本。如果我检查不同的样本,我得到大约15个不同的样本每秒15赫兹,这是不够的光标在屏幕上的平稳移动。 我还尝试使用getSample命令,结果得到了相同的结果。你知道吗

我希望我做错了什么,有人知道如何做它不同。 对于使用不同语言(最好是Python)甚至不同DAQ硬件的不同方法,我也愿意接受建议。你知道吗


Tags: the方法objectrunningai样本daqset

热门问题