【发布时间】:2013-01-22 14:46:19
【问题描述】:
我编写了一个程序,使用 fft 从歌曲中删除人声。在 C# 之前,我决定在 Matlab 中测试降低频率的算法,但无法得到示例中的结果。有噪音。我试过选择任何范围(0.7 - 1.5),但都一样......噪音。我没有什么? 请帮我写正确)提前谢谢!
[y, fs] = wavread('Song.wav');
left = y(:,1);
right = y(:,2);
fftL = fft(left);
fftR = fft(right);
for i = 1:683550 %in my example 683550
dif = fftL(i,1) / fftR(i,1);
dif = abs(dif);
if (dif > 0.7 & dif < 1.5)
fftL(i,1) = 0;
fftR(i,1) = 0;
end;
end;
leftOut = ifft(fftL);
rightOut = ifft(fftR);
yOut(:,1) = leftOut;
yOut(:,2) = rightOut;
wavwrite(yOut, fs, 'tmp.wav');
【问题讨论】:
-
我认为这更像是dsp.stackexchange.com 之类的问题...
-
好的,OP 刚刚被要求在 dsp.stackexchange 标记迁移到 stackoverflow。我会在这里回答...
-
This 是一个非常相似的问题,正在尝试类似的方法。
标签: matlab audio source-separation