如何剪辑wav文件的幅度?

时间:2014-04-25 23:48:31

标签: 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

然而,当我尝试绘制剪切的部分时,程序很慢,并返回一个空白的图。

有什么想法吗?

1 个答案:

答案 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

如果这不能回答你的问题,请告诉我,我会再给它一次。