Matlab 使用频率列表发出粉红色噪音(1/f)

Matlab 使用频率列表发出粉红色噪音(1/f),matlab,fft,octave,noise,noise-generator,Matlab,Fft,Octave,Noise,Noise Generator,使用频率列表发出粉红色噪音(1/f) 我想知道,如果我只使用声音中的频率,会产生什么样的噪音。我使用fft创建了一个matlab/倍频程阵列,以获得[频率、振幅、相位]来重现我的声音信号 我想用这个文件/数据创建粉红噪声(1/f)。当然,当我使用1/f作为频率时,数字变得非常小。有人知道如何使用我自己的声音频率吗?我在matlab中通过fft生成粉红色噪声(1/f) 谢谢如果我是正确的,您所做的是基于1/f频率产生噪音。但是,如果您阅读以下文章:频率是相同的,只是功率谱密度是S与1/f成比例。因

使用频率列表发出粉红色噪音(1/f)

我想知道,如果我只使用声音中的频率,会产生什么样的噪音。我使用fft创建了一个matlab/倍频程阵列,以获得[频率、振幅、相位]来重现我的声音信号

我想用这个文件/数据创建粉红噪声(1/f)。当然,当我使用1/f作为频率时,数字变得非常小。有人知道如何使用我自己的声音频率吗?我在matlab中通过fft生成粉红色噪声(1/f)


谢谢

如果我是正确的,您所做的是基于1/f频率产生噪音。但是,如果您阅读以下文章:频率是相同的,只是功率谱密度是
S
1/f
成比例。因此,不应产生频率为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));
新频谱具有与原始频谱相同的总功率密度,功率衰减为1/f


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

在回答中,N代表什么?我知道“A”是每个频率的振幅,但N是什么?遗漏了,现在编辑了它-它是你频谱的(复数)长度。