ノイズ生成

Noise Generation — Theory and Implementation

ノイズ (雑音) は、 信号処理のテスト、 音響測定、 ディザリング、 シミュレーションなど多くの場面で不可欠な信号である。 本ページは 基本理論 + 各手法へのナビゲーション をまとめている。 各手法は個別の専用ページで詳述する。

1. 色付きノイズの分類

ノイズはパワースペクトル密度 $S(f)$ の周波数依存性によって分類される。 一般に $S(f) \propto 1/f^\alpha$ と表され、指数 $\alpha$ によって「色」が決まる。

名称 指数 $\alpha$ パワースペクトル密度 特徴
ホワイトノイズ $0$ $S(f) = \text{const.}$ 全帯域均一、理論解析の基準
ピンクノイズ($1/f$) $1$ $S(f) \propto 1/f$ オクターブ等エネルギー、音響測定
ブラウンノイズ($1/f^2$) $2$ $S(f) \propto 1/f^2$ ランダムウォーク、低周波成分優勢
ブルーノイズ $-1$ $S(f) \propto f$ 高周波成分優勢、ディザリング
バイオレットノイズ $-2$ $S(f) \propto f^2$ ホワイトノイズの微分
表1: スペクトル傾斜による色付きノイズの分類

2. ピンクノイズ($1/f$ ノイズ)

ピンクノイズはパワースペクトル密度が周波数に反比例する雑音であり、 オクターブあたりのエネルギーが等しいという特徴を持つ。 音響測定、音楽制作、自然現象のモデリングに広く使われる。 このようなスペクトルを持つノイズは「$1/f$ 揺らぎ」とも呼ばれ、自然界に広く見られる。

オクターブ等パワー性の証明

ピンクノイズのパワースペクトル密度を $E[|X(f)|^2] = f^{-1}$ とする。 任意の中心周波数 $f_0$ から 1 オクターブ上の $2f_0$ までのパワーは:

$$p(f_0) = \int_{f_0}^{2f_0} E[|X(f)|^2]\,df = \int_{f_0}^{2f_0} f^{-1}\,df = \bigl[\log f\bigr]_{f_0}^{2f_0}$$ $$= \log(2f_0) - \log(f_0) = \log 2$$

結果は $f_0$ に依存せず一定である。 すなわち、どのオクターブ帯域でもパワーは $\log 2$ で等しい。 これがピンクノイズが音響測定に用いられる理由であり、 オクターブバンド分析器で測定すると全帯域のレベルが揃う。

主要な生成手法

手法 原理 精度 用途
IIR フィルタ法 ホワイトノイズに $1/\sqrt{f}$ 特性のフィルタを適用 近似(設計依存) リアルタイム処理
Voss-McCartney 法 異なる更新頻度の乱数列を加算 近似(段数依存) 低コスト実装
IFFT 法 周波数領域で $1/\sqrt{f}$ を設定し逆 FFT 厳密 オフライン生成
シェルビング型縦続接続法 $-3$ dB シェルビングフィルタを 11 段縦続接続し sangi $L_p$ ホモトピー最適化 高精度($\pm 0.0084$ dB 対称等リップル) 高精度リアルタイム処理
2 次 IIR (biquad) 縦続接続法 biquad を 6 段または 7 段で縦続接続し sangi $L_p$ ホモトピー法 + 交互最適化 (7 段で等リップル達成) 極めて高精度 (6 段 $\pm 0.0075$ dB / 7 段 $\pm 0.0049$ dB) 高精度リアルタイム処理
表2: ピンクノイズ生成手法の概要

用途別選択ガイド

用途 推奨手法 誤差 計算量 メモリ
実装簡素性重視・教育用・FPGA Voss-McCartney($K=16$ 段) $\pm 0.4$ dB 極低(乱数 2 + 加減算) 低(状態 16 変数)
組込み・楽器音色 Paul Kellet IIR(6 段並列) $\pm 0.1$ dB 低(状態 6 変数)
オフライン生成・サンプリング周波数非依存 IFFT 法 厳密 中(1 回の FFT) 高($O(N)$)
バランス重視(音響アプリ) シェルビング 11 段縦続 $\pm 0.0084$ dB 低(状態 11 変数)
測定器・最高精度 biquad 7 段縦続 $\pm 0.0049$ dB 中高 低(状態 14 変数)
表3: 用途別選択ガイド(20 Hz–20 kHz、 sangi 最適化込み)

各手法ページ

以下、 主要な生成手法をそれぞれ専用ページで詳述する。 おおむね 順番に読むと理論から実装までスムーズだが、 手法に合わせて単独で読んでも構わない。

ホワイト

ホワイトノイズ (M 系列含む)

i.i.d. 乱数 / Box-Muller・Marsaglia 極法・Ziggurat / M 系列 (MLS)

各サンプル独立同分布の理想雑音。 ガウス変換 3 手法 (Box-Muller / Marsaglia 極法 / Ziggurat) の幾何的解説 + 用途別選択決定木 + 性能桁感 + 落とし穴、 16/24 ビット LFSR による $\pm 1$ 2 値 M 系列の原理・性質・応用 (CDMA/GPS/インパルス応答測定) と C++/sangi 実装例。

ピンク

Paul Kellet の IIR フィルタ法

6 段並列 1 次 IIR、 $\pm 0.1$ dB @ 10 Hz–4 kHz

ホワイトノイズに $1/\sqrt{s}$ 特性の IIR フィルタを適用する古典的手法。 差分方程式・伝達関数 $H(z)$・周波数応答の導出、 サンプリング周波数依存性を解析。

ピンク

Voss-McCartney 法

乱数源 $K$ 個加算、 $K=16$ で $\pm 0.4$ dB

異なる更新頻度の乱数源を加算する古典手法。 オリジナル Voss (1978)、 McCartney 改良 (1990) で $O(1)$/sample 化。 周波数応答の理論解析と C++/sangi 実装例。

ピンク

IFFT 法

サンプリング周波数非依存、 厳密 $-3$ dB/oct、 任意 $1/f^\beta$ 対応

周波数領域で $|X[k]| \propto k^{-\beta/2}$ + ランダム位相を設定し、 逆 FFT で時間信号化。 任意 $\beta \in [-2, 2]$ の色付きノイズに統一的に拡張、 Kasdin 1995 の離散時間再帰フィルタも紹介。 ループ再生でリアルタイム使用可能。 メモリと周期性のトレードオフ。

ピンク

シェルビング型フィルタ縦続接続

11 段 1 次 IIR、 $\pm 0.0084$ dB 対称等リップル

$-3$ dB シェルビングをオクターブ間隔で 11 段配置し、 sangi $L_p$ ホモトピー + 等リップル最適化で 20 Hz–20 kHz を $\pm 0.0084$ dB の対称等リップル近似に。

ピンク

2 次 IIR (biquad) 縦続接続 + 全手法比較

6/7 段 biquad、 $\pm 0.0049$ dB 対称等リップル

biquad を縦続接続し sangi で最適化。 6 段で $\pm 0.0075$ dB、 7 段で $\pm 0.0049$ dB の対称等リップル。 末尾に 4 手法 (Kellet / シェルビング / biquad-6/7) の精度比較表 + 一括グラフ。

ブラウン

ブラウンノイズ ($1/f^2$)

ランダムウォーク / レッドノイズ

ホワイトノイズの累積和として生成される $1/f^2$ ノイズ。 統計的性質、 生成法、 低周波発散の問題と対策。

基盤

疑似乱数生成器 (PRNG)

MT19937 / xoshiro / LCG

ノイズ生成の下支えとなる PRNG の特性比較。 メルセンヌ・ツイスタ、 xoshiro、 LCG、 std::random の使い分け。

3. 応用

  • 音響測定 — ピンクノイズによるスピーカー・ルームの周波数応答測定
  • ディザリング — 量子化歪みの分散にブルーノイズやホワイトノイズを使用
  • シミュレーション — モンテカルロ法における確率的モデリング
  • 通信 — チャネルノイズのシミュレーション(AWGN チャネル)
  • 音楽・サウンドデザイン — シンセサイザーの音源としてのノイズ波形
  • インパルス応答測定 — TSP(時間引き伸ばしパルス)と組み合わせた室内音響計測

4. 参考資料

よくある質問

Q. ピンクノイズの $1/f$ 性質とは何か?

ピンクノイズはパワースペクトル密度が周波数に反比例する ($S(f) \propto 1/f$) 雑音である。 任意のオクターブ帯域 $[f_0, 2f_0]$ のパワーは $\int_{f_0}^{2f_0} 1/f\, df = \log 2$ となり、 中心周波数 $f_0$ に依存しない。 つまり「オクターブあたりのエネルギーが等しい」 という特徴があり、 音響測定・音楽制作・自然現象のモデリング ($1/f$ 揺らぎ) に広く使われる。

Q. ホワイト・ピンク・ブラウンノイズはどう違うか?

パワースペクトル密度 $S(f)$ の周波数依存性で区別される。 ホワイトノイズは $S(f) = $ 定数(全帯域均一)、 ピンクノイズは $S(f) \propto 1/f$(オクターブあたり等エネルギー)、 ブラウンノイズは $S(f) \propto 1/f^2$(ホワイトの累積和、 低周波優勢)。 ほかにブルーノイズ ($S \propto f$、 高周波優勢)、 バイオレットノイズ ($S \propto f^2$、 ホワイトの微分) などがある。

Q. ピンクノイズ生成手法は何を選べばよいか?

用途別に: (1) 軽量重視(組込み・楽器音色)なら Paul Kellet IIR(6 段並列、 $\pm 0.1$ dB)、 (2) サンプリング周波数非依存が要なら IFFT 法(厳密だがメモリ $O(N)$)、 (3) バランス重視(音響アプリ)ならシェルビング縦続 11 段($\pm 0.0084$ dB)、 (4) 精度重視(測定器)なら biquad 7 段縦続($\pm 0.0049$ dB の対称等リップル)。 sangi の $L_p$ ホモトピー最適化を使う後 2 手法は対称等リップル近似が得られる。 詳細は上記「用途別選択ガイド」 と各手法ページ参照。