Pythonで信号にノイズを追加する 質問する

Pythonで信号にノイズを追加する 質問する

Python でシミュレートしている 100 ビンの信号にランダム ノイズを追加して、よりリアルにしたいと考えています。

基本的なレベルでは、最初に考えたのは、ビンごとに特定の範囲内でランダムな数値を生成し、それを信号に加算または減算するというものでした。

私は (これは Python なので)、numpy などを使用してこれを実行するためのよりインテリジェントな方法があるのではないかと期待していました。 (理想的には、ガウス分布から抽出された数値を各ビンに追加する方がよいと思います。)

ご返信をいただければ幸いです。


まだコードを計画している段階なので、お見せできるものはありません。ただ、ノイズを生成するもっと洗練された方法があるのではないかと考えていました。

出力に関しては、次の値を持つ 10 個のビンがあったとします。

ビン 1: 1 ビン 2: 4 ビン 3: 9 ビン 4: 16 ビン 5: 25 ビン 6: 25 ビン 7: 16 ビン 8: 9 ビン 9: 4 ビン 10: 1

次のようなノイズを追加できる定義済み関数があるかどうか疑問に思いました。

ビン 1: 1.13 ビン 2: 4.21 ビン 3: 8.79 ビン 4: 16.08 ビン 5: 24.97 ビン 6: 25.14 ビン 7: 16.22 ビン 8: 8.90 ビン 9: 4.02 ビン 10: 0.91

そうでない場合は、ビンごとに進み、ガウス分布から選択した数値を各ビンに追加します。

ありがとう。


これは実際に私がシミュレーションしている電波望遠鏡からの信号です。最終的にはシミュレーションの信号対雑音比を選択できるようにしたいと考えています。

ベストアンサー1

ノイズ配列を生成し、それを信号に追加することができます

import numpy as np

noise = np.random.normal(0,1,100)

# 0 is the mean of the normal distribution you are choosing from
# 1 is the standard deviation of the normal distribution
# 100 is the number of elements you get in array noise

おすすめ記事