4

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

4

2 回答 2

1

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

1 取一些仅包含噪声的缓冲区 2 对噪声进行零填充,使其长度与整个信号匹配 3 计算噪声频谱 N 4 计算信号频谱 X 过滤掉 X 中存在于 N 中的频率并将结果存储在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);

这个想法是使用噪声信号的频谱来减少所需信号中的噪声。当噪声频谱已知时,过滤掉这些频率。

于 2012-03-26T12:31:14.723 回答
0

根据您的描述,听起来您只需要反转源信号。如果您这样做并求和原始值,那么您将坐在-inf,没问题。

但是,我认为您真正想要做的是根据背景噪声的测量来减少信号上的噪声。这基本上是通过执行以下操作来完成的:

  1. 选择噪声样本的频谱分析。你可以通过运行 FFT 来获得它。
  2. 您希望修复的区域从时域到频域的转换。(再次,FFT。)
  3. 从您要修复的原始文件中减去该噪声。

你最终会得到一些接近的东西,但无疑会想要对来自那里的信号做更多的工作。这里涉及到很多数学,但是如果你在 Stack Overflow 上搜索 DSP,你会发现有几件事情需要阅读。希望这会让你开始。

于 2012-03-26T17:32:03.853 回答