【问题标题】:making pink noise (1/f) using list of frequencies使用频率列表制作粉红噪声(1/f)
【发布时间】:2013-07-21 15:59:10
【问题描述】:

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

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

我想获取此文件/数据并使用它来创建粉红噪声 (1/f)。当然,当我使用 1/f 作为频率时,数字会变得非常小,有没有人知道如何使用我自己的声音频率,我在 matlab 中进行 fft 来产生粉红噪声 (1/f)。

谢谢

【问题讨论】:

    标签: matlab fft octave noise noise-generator


    【解决方案1】:

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

    我建议阅读this page 了解必要的算法。

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

    【讨论】:

      【解决方案2】:

      这可能会奏效:根据幅度 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 以生成新波形。

      【讨论】:

      • 你回答N代表什么?我知道“A”是每个频率的幅度,但 N 是多少?
      • 错过了,现在对其进行了编辑 - 这是您的光谱的(复杂)长度。
      猜你喜欢
      • 2010-10-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-04-24
      • 1970-01-01
      • 2013-10-22
      • 2012-01-31
      • 1970-01-01
      相关资源
      最近更新 更多