使用频率列表产生粉红色噪声(1/f)



使用频率列表产生粉红色噪声(1/f)

我想看看如果我只使用声音中的频率,我会得到什么类型的噪音。我使用fft创建了一个matlab/倍频程阵列,以获得[频率、振幅、相位]来再现我的声乐信号。

我想把这个文件/数据,并用它来创建粉红色的噪音(1/f)。当然,当我使用1/f作为频率时,数字会变得非常小。有人知道如何使用我自己的人声频率吗?我在matlab中进行fft运算,得到了这些频率来创建粉红噪声(1/f)。

感谢

如果我是对的,那么您正在做的是基于1/f频率生成噪声。但是,如果您阅读了以下文章:http://en.wikipedia.org/wiki/Pink_noise除了功率谱密度为CCD_ 1与CCD_。因此,你不应该产生频率为1/f的噪音。

我建议阅读本页以了解必要的算法。

但是,如果您面临的问题是音量过低,请尝试将结果乘以一个因子来放大合成噪声。例如:pinkNoise = pinkNoise * 100

这可能会奏效:根据振幅A=A(f)计算频谱中的平均功率,其中f是频率。

P = mean(A.^2);

将其扩展到您的频率范围:

N = length(f);
invfnorm = 1./[1:N];
Anew = sqrt(P*invfnorm/sum(invfnorm));

Anew具有与原始频谱具有相同总功率密度的特性,并且功率衰减为1/f。

用Anew代替A,并对新频谱进行逆FFT以生成新波形。

最新更新