ノイズ生成
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$ | ホワイトノイズの微分 |
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) | 高精度リアルタイム処理 |
用途別選択ガイド
| 用途 | 推奨手法 | 誤差 | 計算量 | メモリ |
|---|---|---|---|---|
| 実装簡素性重視・教育用・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 変数) |
各手法ページ
以下、 主要な生成手法をそれぞれ専用ページで詳述する。 おおむね 順番に読むと理論から実装までスムーズだが、 手法に合わせて単独で読んでも構わない。
ホワイトノイズ (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. 参考資料
- Paul Kellet, "Pink noise filter" — musicdsp.org(Kellet フィルタの原典)
- Phil Burke, "DSP Generation of Pink Noise" — firstpr.com.au(各手法の包括的解説)
- "1st and 2nd order pink noise filters" — musicdsp.org
- Colors of noise — Wikipedia
- Pink noise — Wikipedia
- White noise — Wikipedia
- Brownian noise — Wikipedia
- Box–Muller transform — Wikipedia
よくある質問
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 手法は対称等リップル近似が得られる。 詳細は上記「用途別選択ガイド」 と各手法ページ参照。