Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/multithreading/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Multithreading 在MATLAB中录制音频信号时,我可以执行函数吗?_Multithreading_Matlab - Fatal编程技术网

Multithreading 在MATLAB中录制音频信号时,我可以执行函数吗?

Multithreading 在MATLAB中录制音频信号时,我可以执行函数吗?,multithreading,matlab,Multithreading,Matlab,我想在录制信号时获得音频数据帧的基音。(不停止录制) 首先,我执行以下代码 r = audiorecorder(fs,16,1); while 1 recordblocking(r,T); % T is frame length [s] (A) sample{k} = getaudiodata(r); pitch{k} = get_pitch(sample{k}); % (B) end 但是,在执行get_变桨功能期间,记录过程停止,并导致 缺少要录制的音

我想在录制信号时获得音频数据帧的基音。(不停止录制) 首先,我执行以下代码

r = audiorecorder(fs,16,1);
while 1
   recordblocking(r,T);  % T is frame length [s]   (A)
   sample{k} = getaudiodata(r);   
   pitch{k} = get_pitch(sample{k});     % (B)
end
但是,在执行get_变桨功能期间,记录过程停止,并导致 缺少要录制的音乐信号的某些部分

我希望不停止执行样本记录,但将长度为T[s]的数据发送到函数get_pitch,以便连续获得所有帧的基音


有人能给我一些建议吗?我真的很感谢你的评论。

一般来说,如果你在使用Matlab,并且你想要多线程,你唯一的希望就是并行计算工具箱。 这里有一个典型的
消费者/生产者场景
——试试谷歌吧


然而,您的方法的问题不一定是缺少线程。如果get_pitch命令足够快,您就不会有问题。您最好保存所有样本,然后再进行分析(如果它适合应用程序)。

不幸的是,我的“get_pitch”功能没有那么快。但无论如何,谢谢!您给我的链接可能有助于解决此问题。@gmkim90,欢迎使用SO。如果答案有帮助的话,不需要感谢、投票和接受。