所以我尝试这段代码。
% assume fs,winsize,winshift is given.
T = 0.1; % in seconds
samples = cell{100,1};
r = audiorecorder(fs,16,1);
k=1;
r.TimerPeriod = 0.1;
r.StopFcn = 'samples{k} = getaudiodata(r);';
r.TimerFcn = {@get_pitch,samples{k},winsize,winshift};
while 1
record(r,T);
k=k+1;
end
我想在通过录音机对象录制期间执行函数'get_pitch(samples,fs,winsize,winshift)'。
但是在执行过程中会发生以下异常。
1) 在record(r,T) 执行之后。(现在称为 StopFcn)???使用 ==> eval 未定义函数或变量 'r' 时出错。
2) StopFcn 调用后(现在调用TimerFcn) 在这个阶段,get_pitch 函数的参数完全错误。例如,位置 samples{k} 中的参数更改为“audiorecorder object”。
看来我不知道“StopFcn”和“TimerFcn”的确切用法。
有没有人可以给我一些建议?我非常感谢您的所有评论。