【发布时间】:2016-02-29 06:23:22
【问题描述】:
我有一个主信号,例如周期为 200 个样本的正弦信号。
我想为这个信号添加噪音。 “噪声信号部分”的周期应在 5-30 个样本的范围内。
我认为这足以在此范围内生成多个具有不同随机选择幅度的窦:
noise = np.sin(np.array(range(N))/0.7)*np.random.random(1) + np.sin(np.array(range(N))/1.1)*np.random.random(1) + np.sin(np.array(range(N))/1.5)*np.random.random(1)
但是对于我的目的来说,这个解决方案仍然过于“确定性”。
如何产生幅度和周期随机变化的噪声?
【问题讨论】:
-
一种典型的方法是生成一些白噪声(例如使用
np.random.randn),然后对其进行带通滤波,以便在将其添加到您的信号之前为其提供所需的频率特性。 -
@ali_m 是的,这是典型且完全正确的方法。你说的对。但如果可能的话,我想避免过滤。所以我想要的解决方案应该像我建议的那样简单,但结果更好(不太确定)。
-
为什么要“避免过滤”?
-
@ali_m 我想用这个噪音来测试一个过滤器。根据我的经验,滤波器不会消除带通外的所有噪声,或者会延迟数据,或者还会抑制带通边界周围的频率。也许我错了,但我相信对于相对较短的数据,我会通过一些“作弊解决方案”获得比适当过滤更清晰的结果。
-
我只是说在将噪声添加到信号之前对噪声进行带通滤波,所以我看不出相移可能是个问题。您主要担心的似乎是噪声会泄漏到其他光谱带中,但这实际上仅取决于选择合适的带通滤波器。如果您想使用单个随机正弦曲线生成类似于带限白噪声的东西,那么您将需要很多正弦曲线(原则上,它们的数量是无限的)。如果您能在问题中解释您的确切需求,这将有所帮助。
标签: python numpy signal-processing noise