如何使用MATLAB将.wav文件中的非零常量重置为0?

时间:2014-10-23 21:02:24

标签: matlab

我使用wavread加载.wav文件。在实际语音开始之前,我的语音信号以一些非零常数值开始,例如1。我试图将这些值重置为0,直到我的数组y中的值开始变化。我怎么能这样做?

2 个答案:

答案 0 :(得分:1)

假设值为常量* ,您可以执行以下操作:

y = wavread(filename)
y(1:find(y~=y(1))-1) = 0;

举例说明:

y =
     1     1     1     6     5     9     9     3     1     2    
y(1:find(y~=y(1))-1) = 0
y =
     0     0     0     6     5     9     9     3     1     2

*如果它不是绝对不变的(非常小的差异),你可以这样做:

y(1:find(abs(y-y(1))>1e-6)-1) = 0

答案 1 :(得分:0)

如果你的文件是1D,你可以试试这个,

y = wavread(filename);
y(cumsum(diff(y)) == 0 ) = 0;
y(1) = 0;