見出し画像

📌 ノイズを数式で表す方法

🚀 ノイズ(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 × 音響工学」を統合し、新たな信号処理理論を開発! 🔥📡🎶✨

いいなと思ったら応援しよう!