【问题标题】:Simulating noise with specific time character模拟具有特定时间特征的噪声
【发布时间】:2019-05-18 02:50:20
【问题描述】:

我正在尝试为时域信号生成合成数据。假设我的信号是方波,并且在它上面有一些随机噪声。我将噪声建模为高斯。如果我将数据生成为长度为 N 的向量,然后添加从均值为 0 和宽度为 1 的正态分布中采样的随机噪声,我对我关心的情况进行了粗略的模拟。但是,这会增加由采样率设置的特征时间尺度的噪声。我不希望这样,因为实际上噪音具有更长的时间尺度。产生具有特定带宽的噪声的有效方法是什么?

我尝试在每个采样点生成噪声,然后使用 FFT 去除某个值以上的频率。但是,这会严重衰减信号。

我的想法基本上是:

noise = normrnd(0,1);
f = fft(noise);
f(1000:end) = 0;
noise = ifft(f);

这种方法有效但会严重衰减信号。

【问题讨论】:

    标签: python matlab noise


    【解决方案1】:

    产生白噪声并对其进行过滤是很常见的。通常使用 IIR,因为它很便宜,而且噪声相位无论如何都是随机的。它确实会衰减信号,但放大它不需要任何成本。

    您还可以使用 IFFT 直接生成噪声。在示例中,您在fft(noise) 的输出中给出的每个系数是一个高斯分布的随机变量,因此不要使用 FFT 获取这些系数并将您不想要的系数清零,您可以设置您想要的系数和IFFT得到结果信号。请记住,系数是复数,但实部和虚部是独立的高斯分布。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-08-13
      • 2016-01-25
      • 2019-05-16
      • 2017-09-05
      • 2015-03-06
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多