matlab - 使用 matlab 和 NI 设备生成连续信号
问题描述
我正在使用 Ni Daq 的发射器,我有一个小问题。我生成了一段时间的信号,然后通过队列输出将其取出,然后我放置了一个侦听器以再次调用队列输出,但是此过程需要 0.1 秒(再次调用队列),因此对于 1KHz 来说这是一个很大的延迟例如信号,那么我怎样才能减少这种延迟。
这是我的代码:
clc;
clear all;
clc;
s = daq.createSession('ni');
s.addAnalogOutputChannel('Dev1',0,'Voltage');
s.IsContinuous = true;
fs=1000;
quality= 15;
fd=48000;
fs= fd * quality;
s.Rate = fs;
n=1;
A= 2;
y1=0;
y2=0;
wo= 2*pi*(fd/fs);
x=A*sin(wo);
pcos= 2*cos(wo);
out = [];
tic();
while(n<=quality),
y= ((x)+(pcos*y1)-(y2));
y2=y1;
y1=y;
out(n,1) = y+2.1;
x=0;
n=n+1;
end
toc()
plot(out,'*r');
grid on;
s.NotifyWhenScansQueuedBelow = lim;
lh = addlistener(s,'DataRequired', ...
@(src,event) src.queueOutputData(out)); % Here is the delay
queueOutputData(s,out)
startBackground(s);
解决方案
推荐阅读
- python - 通过c ++调用具有多个pyx文件的cython库
- php - PHP DOMDocument XML
- android - 登录或注册后后按禁用
- javascript - 如何监听反应语义下拉元素的变化?
- c# - C# 在不知道 XML 文档大小的情况下声明一个二维数组
- android - 在 AlertDialog 中验证 EditText
- c++ - 为什么使用大括号初始化器时继承的构造函数不起作用?(C++)
- git - Git版本控制某些文件
- twitter-bootstrap - Bootstrap 在文本中包含连字符后将整个单词换行
- twilio - Twilio 视频 - 切换摄像头无法在 android 上运行 - NotReadableError:无法启动视频源