Matlab 如何剪裁wav文件的振幅?
我试图通过使用自相关函数和限幅函数来检测信号的基音。 我在编码剪辑函数时遇到问题 我试过这个:Matlab 如何剪裁wav文件的振幅?,matlab,signal-processing,Matlab,Signal Processing,我试图通过使用自相关函数和限幅函数来检测信号的基音。 我在编码剪辑函数时遇到问题 我试过这个: [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
[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
但是,当我尝试绘制剪裁的部分时,程序运行缓慢,并返回一个空白绘图
有什么想法吗 您忘记在条件语句中为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
如果这还不能回答你的问题,请告诉我,我会再试一次。@Sams太好了!如果你需要的话,请不要忘记接受我的回答。干杯