使用频率列表制作粉红噪声(1 / f)

时间:2013-07-22 19:20:26

标签: matlab fft octave noise noise-generator

使用频率列表制作粉红噪声(1 / f)

如果我只使用声音中的频率,我想知道会得到什么类型的噪音。我使用fft创建了一个matlab / octave数组,以获得 [频率,幅度,相位] 来重现我的声音信号。

我想把这个文件/数据用来制作粉红噪音(1 / f)。当然,当我使用1 / f作为频率时,数字变得非常小,是否有人有任何想法如何使用我自己的声音频率,我在matlab中做fft以产生粉红噪声(1 / f)。

由于

2 个答案:

答案 0 :(得分:1)

如果我是正确的,你所做的是基于1 / f频率产生噪音。但是,如果您阅读以下文章:http://en.wikipedia.org/wiki/Pink_noise除了功率谱密度为S1/f成正比外,频率相同。因此,您不应该产生频率为1 / f的噪声。

我建议您阅读this page以获取必要的算法。

但是,如果您遇到的问题是音量太低,请尝试通过将结果乘以因子pinkNoise = pinkNoise * 100

来放大合成噪音。

答案 1 :(得分:0)

这可能有效:从幅度A = A(f)计算频谱的平均功率,其中f是频率。

P = mean(A.^2);

在你的频率范围内传播:

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

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

重新替换A并对新频谱进行反FFT以生成新波形。