如何制作抗噪声?

时间:2012-03-26 12:16:05

标签: audio audio-streaming audio-recording noise-reduction

如何使用代码或应用程序创建抗噪声? 它不一定是实时的,只是与整个音轨相反的声音!所以,当你们一起玩时,他们会相互抵消。

2 个答案:

答案 0 :(得分:1)

如果你有纯粹的噪音尝试(我没有尝试过我自己)fft你可以使用fftw-3

1仅取一些缓冲容器噪音 2对噪声进行零填充,使其长度与整个信号匹配 3计算噪声频谱N. 4计算信号光谱X. 过滤出N中存在的X中的频率并将结果存储在Y中 6从Y重新构造y

在Matlab或octave中:

n=length(x);
n(1:noise_end-noise_start+1)=x(noise_start:noise_end);
N=fft(n);
X=fft(N);
%   Filter noise frquencies
y=ifft(Y);

这个想法是使用噪声信号的频谱来降低所需信号中的噪声。当已知噪声频谱时,将这些频率滤除。

答案 1 :(得分:0)

根据您的描述,听起来您只需要反转源信号。如果你这样做并加上原件,你就会坐在-inf,没问题。

但是,我认为你真正想做的是根据背景噪音的测量结果降低信号噪音。这基本上是通过以下方式完成的:

  1. 选择噪声样本的频谱分析。你可以通过运行FFT来实现这一点。
  2. 将您要修复的区域从时域转换为频域。 (再次,FFT。)
  3. 从想要修复的原稿中减去噪音。
  4. 你最终会接近一些东西,但毫无疑问,他们希望对那里的信号做更多的工作。这里涉及很多数学,但是如果你在DSP上搜索Stack Overflow,你会发现有几件事需要阅读。希望这会让你开始。