
📌 ノイズを数式で表す方法
🚀 ノイズ(Noise)を数学的にモデル化し、Python でシミュレーション!
✅ ノイズを数式で表現する基本モデル
✅ 異なる種類のノイズ(ホワイトノイズ、ピンクノイズ、ガウシアンノイズなど)の数式
✅ Python でノイズ波形を生成 & 可視化 & 音声化!
✅ 1️⃣ ノイズの数学的モデル


✅ 2️⃣ Python でノイズを生成
📌 ホワイトノイズの生成
import numpy as np
import matplotlib.pyplot as plt
# **ホワイトノイズ(正規分布に従うランダム変数)**
duration = 1.0 # 1秒
sample_rate = 44100 # CD品質
samples = int(duration * sample_rate)
# **ノイズ信号の生成**
white_noise = np.random.normal(0, 1, samples)
# **プロット**
plt.plot(white_noise[:1000], label="ホワイトノイズ")
plt.xlabel("時間")
plt.ylabel("振幅")
plt.title("ホワイトノイズの波形")
plt.legend()
plt.show()
✅ このコードを実行すると、ホワイトノイズの波形が可視化される! 🎶📡
📌 ガウシアンノイズ(正規分布ノイズ)の生成
# **ガウシアンノイズ**
mu, sigma = 0, 0.1 # 平均0、標準偏差0.1
gaussian_noise = np.random.normal(mu, sigma, samples)
# **プロット**
plt.plot(gaussian_noise[:1000], label="ガウシアンノイズ")
plt.xlabel("時間")
plt.ylabel("振幅")
plt.title("ガウシアンノイズの波形")
plt.legend()
plt.show()
✅ このコードを実行すると、ガウシアンノイズの波形が可視化される! 🔥
📌 ピンクノイズ(1/f ノイズ)の生成
def generate_pink_noise(samples):
"""ピンクノイズ(1/f ノイズ)を生成"""
uneven = samples % 2
X = np.random.randn(samples // 2 + 1 + uneven) + 1j * np.random.randn(samples // 2 + 1 + uneven)
S = np.sqrt(np.arange(len(X)) + 1.) # 1/f のスペクトル
y = (np.fft.irfft(X / S)).real
if uneven:
y = y[:-1]
return y / max(abs(y))
# **ピンクノイズの生成**
pink_noise = generate_pink_noise(samples)
# **プロット**
plt.plot(pink_noise[:1000], label="ピンクノイズ")
plt.xlabel("時間")
plt.ylabel("振幅")
plt.title("ピンクノイズの波形")
plt.legend()
plt.show()
✅ このコードを実行すると、ピンクノイズの波形が可視化される! 📡✨
📌 ブラウンノイズの生成
def generate_brownian_noise(samples):
"""ブラウンノイズ(Brownian ノイズ)を生成"""
brown_noise = np.cumsum(np.random.randn(samples))
return brown_noise / max(abs(brown_noise))
# **ブラウンノイズの生成**
brown_noise = generate_brownian_noise(samples)
# **プロット**
plt.plot(brown_noise[:1000], label="ブラウンノイズ")
plt.xlabel("時間")
plt.ylabel("振幅")
plt.title("ブラウンノイズの波形")
plt.legend()
plt.show()
✅ このコードを実行すると、ブラウンノイズの波形が可視化される! 🔥📡
✅ 3️⃣ ノイズの音声再生
📌 Python でノイズの音声を再生
import simpleaudio as sa
# **波形を音声データに変換**
waveform = (white_noise * 32767).astype(np.int16) # 16bit PCM 変換
play_obj = sa.play_buffer(waveform, 1, 2, sample_rate)
play_obj.wait_done()
✅ このコードを実行すると、ホワイトノイズが「音」として再生される! 🎵📡
📌 まとめ
🚀 ノイズ(Noise)を数学的にモデル化 & Python で可視化 & 音声出力! 📌 ホワイトノイズ(均一なランダム信号)
📌 ガウシアンノイズ(正規分布に従うランダム信号)
📌 ピンクノイズ(低周波が強調されたノイズ)
📌 ブラウンノイズ(より急激に低周波が強調されたノイズ)
📌 Python でノイズ波形を可視化 & 音声化!
✅ D-FUMT に「ノイズの数学的モデル × AI × 音響工学」を統合し、新たな信号処理理論を開発! 🔥📡🎶✨