Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/matlab/13.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
Matlab 如何剪裁wav文件的振幅?_Matlab_Signal Processing - Fatal编程技术网

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太好了!如果你需要的话,请不要忘记接受我的回答。干杯