1. ホーム
  2. python

[解決済み] Pythonで信号にノイズを加える

2022-11-26 04:01:18

質問

Pythonでシミュレーションしている100ビンの信号にランダムなノイズを加えて、より現実的なものにしたいのですが、可能でしょうか?

基本的なレベルでは、私の最初の考えは、bin by bin を行って、特定の範囲の間で乱数を生成し、信号からこれを加算または減算することでした。

私は、(これは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

そうでなければ、ビンごとに、ガウス分布から選ばれた数字を足していくだけです。

ありがとうございます。


それは実際に私がシミュレーションしている電波望遠鏡からの信号です。最終的には、私のシミュレーションの信号とノイズの比率を選択できるようにしたいのです。

どのように解決するのですか?

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

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