我试图通过使用具有裁剪功能的自相关功能来检测信号的音高 我在编写剪辑功能时遇到问题。
我试过了:
[sig Fs]= wavread('sound.wav');
N = length(sig);
for i=1:N
if sig > cl
sigp(i) = sig(i)-cl(i);
elseif sig < -cl
sigp(i) = sig(i)+cl(i);
else
sigp(i) = 0;
end
然而,当我尝试绘制剪切的部分时,程序很慢,并返回一个空白的图。
有什么想法吗?
答案 0 :(得分:0)
您忘记在条件语句中索引sig数组。见下文:
[sig Fs]= wavread('sound.wav');
N = length(sig);
for i=1:N
if sig(i) > cl
sigp(i) = sig(i)-cl;
elseif sig(i) < -cl
sigp(i) = sig(i)+cl;
else
sigp(i) = 0;
end
如果这不能回答你的问题,请告诉我,我会再给它一次。