考える波 第 1 回 / 第 I 部・道具をつくる

音の話から始めて、物理定数まで行く

微分は高音、積分は低音 ──
まず、実測から 音声を微分すると高音が強くなり、積分すると低音が強くなる。
これは比喩ではなく、1 オクターブあたり きっかり ±6.02 dB の厳密な事実です。
そして物理は、位置 → 速度 → 加速度と、この操作を繰り返しているだけ。

必要な道具:なし計算:kenshou/nami.js

このシリーズの出発点は一つの気づきです ── 音声は波で、微分は高周波を取り出す操作、積分は低周波を取り出す操作。
ならば物理の微積分も全部それだと見ると、何が見えるか。まず、その土台が本当に厳密なのかを測ります。

01試験信号を作って、微分する

48 kHz で 16384 点、2 オクターブおきに正弦波を 4 本 重ねます。どれも FFT のビン中心に乗せてあるので、漏れは出ません。

試験信号 $$x(t)=\sin(2\pi\cdot93.75\,t)+\sin(2\pi\cdot375\,t)+\sin(2\pi\cdot1500\,t)+\sin(2\pi\cdot6000\,t)$$

周波数分解能 \(\Delta f = 1/T = 2.93\) Hz

これを素朴に数値微分します(中心差分)。そしてスペクトルを見ます。

周波数元の振幅微分後の振幅\(\omega=2\pi f\)比 / \(\omega\)
93.75 Hz1.0000589.0589.0\(5.890\times10^{2}\)0.99997
375 Hz1.00002355.22355.2\(2.356\times10^{3}\)0.99960
1500 Hz1.00009364.39364.3\(9.425\times10^{3}\)0.99359
6000 Hz1.000033941.133941.1\(3.770\times10^{4}\)0.90032

01節の結論

最後の列が 1 に揃っています ── つまり

微分すると、振幅が \(\omega\) 倍になる。

6000 Hz だけ 0.90 に落ちているのは、物理ではなく差分近似のせいです(04 節で正体を突き止めます)。

02積分は、その逆

周波数積分後 / 元\(1/\omega\)比 × \(\omega\)
93.75 Hz\(1.698\times10^{-3}\)\(1.698\times10^{-3}\)0.99999
375 Hz\(4.243\times10^{-4}\)\(4.244\times10^{-4}\)0.99980
1500 Hz\(1.058\times10^{-4}\)\(1.061\times10^{-4}\)0.99679
6000 Hz\(2.515\times10^{-5}\)\(2.653\times10^{-5}\)0.94806
オクターブあたりの傾き(実測) $$\text{2 オクターブで}\quad \text{微分}:+12.04\ \text{dB},\qquad \text{積分}:-12.04\ \text{dB}$$ $$\Rightarrow\quad \boxed{\ \text{微分}=+6\ \text{dB/oct},\qquad \text{積分}=-6\ \text{dB/oct}\ }$$

音響の世界では、これは日常の道具です

一次のハイパスフィルタの傾きが +6 dB/oct、ローパスが −6 dB/oct。微分回路とハイパスは、同じものです。
レコードの RIAA イコライザも、録音時に高域を持ち上げ(微分寄り)、再生時に戻す(積分寄り)── その組み合わせでできています。

03位相も測る

振幅だけでは半分です。\(i\omega\) の \(i\) が効いているなら、位相が 90° 回るはずです。

周波数微分による位相の変化積分による位相の変化
93.75 Hz\(+90.0°\)\(-90.0°\)
375 Hz\(+90.0°\)\(-90.0°\)
1500 Hz\(+90.0°\)\(-90.0°\)
6000 Hz\(+90.0°\)\(-90.0°\)

03節の中心 ── これで全部 説明できます

フーリエ変換の上では、微分も積分もただの掛け算です:

$$\frac{d}{dt}\ \longrightarrow\ \times(i\omega),\qquad \int dt\ \longrightarrow\ \times\frac{1}{i\omega}$$

\(|i\omega|=\omega\) が振幅を、\(\arg(i)=90°\) が位相を決めている。
振幅も位相も、予言どおりでした。

04ズレの正体 ── 物理ではなく、近似

6000 Hz で比が 0.90 に落ちました。中心差分の伝達関数を厳密に書くと、原因がわかります。

中心差分の厳密な伝達関数 $$\frac{e^{i\omega\Delta t}-e^{-i\omega\Delta t}}{2\Delta t}=i\,\frac{\sin(\omega\Delta t)}{\Delta t}=i\omega\cdot\underbrace{\frac{\sin(\omega\Delta t)}{\omega\Delta t}}_{\text{ズレの正体}}$$
周波数\(\omega\Delta t\)予言 \(\mathrm{sinc}(\omega\Delta t)\)実測の 比/\(\omega\)
93.75 Hz0.01230.9999750.999975
375 Hz0.04910.9995980.999598
1500 Hz0.19630.9935870.993587
6000 Hz0.78540.9003160.900316

小数点以下 6 桁まで一致しました。ズレは物理ではなく、差分という近似のせいです。

厳密にやる方法 ── スペクトル法 $$\text{FFT}\ \to\ \times(i\omega)^\alpha\ \to\ \text{逆 FFT}$$

この方法なら、比/\(\omega\) が全周波数で 1.000000000(丸め誤差のみ)

05物理は、この操作の連なりでできている

位置からの階数スペクトルの傾き
位置の積分(absement)\(-1\)\(-6\) dB/oct
位置 \(x\)0\(0\)
速度 \(v=dx/dt\)\(+1\)\(+6\) dB/oct
加速度 \(a=d^2x/dt^2\)\(+2\)\(+12\) dB/oct
躍度(ジャーク)\(+3\)\(+18\) dB/oct

この回の結論

物理で微分・積分を繰り返すとは、信号のスペクトルを傾け続けることでした。
ニュートンの法則 \(F=ma\) は「入力を +12 dB/oct 傾けたものに比例する」と読める。
比喩ではなく、フーリエ変換の上では文字どおりそうなっています。

ここから先で使う、たった一つの引っかかり

スペクトル法のコードには、一行だけ特別な処理が要ります ──

if (ω === 0) { 出力 = 0; continue; }  // DC は定義できない

\(\omega=0\) では \(1/\omega\) が発散するので、積分は DC 成分を決められない。微分のほうは逆に、DC 成分を 0 に潰してしまう。
この一行が、第 3 回の主題になります。

練習問題

  1. なぜ「微分 = +6 dB/oct」なのか、1 行で。
    答えを見る
    微分は振幅を \(\omega\) 倍にする。1 オクターブは \(\omega\) が 2 倍。
    \(20\log_{10}2 = \mathbf{6.02}\) dB。それだけです。
  2. 加速度計の出力を 2 回 積分すると位置が出るはずだが、実際にはドリフトする。なぜか。
    答えを見る
    積分が \(1/\omega\) 倍だから、低周波ほど巨大に増幅される。2 回なら \(1/\omega^2\)。
    センサの微小な直流オフセット(\(\omega\approx0\) の成分)が、発散的に効いてしまいます。
    実務ではハイパスを噛ませて DC を落としますが、それは「本当の位置」の一部も捨てているということです。
  3. 「微分するとノイズが乗る」と言われる理由は。
    答えを見る
    高周波を \(\omega\) 倍に持ち上げるから。
    測定ノイズは高周波まで広く分布している(白色に近い)ので、微分するとノイズだけが選択的に増幅されます。
    逆に積分は平滑化になる ── どちらも「フィルタ」として理解すれば当たり前の性質です。

まとめ 微分も積分も、フィルタだった

48 kHz の合成音声を実際に微分・積分して測りました。微分すると振幅が \(\omega\) 倍・位相が \(+90°\)、積分すると \(1/\omega\) 倍・位相が \(-90°\)。オクターブあたり ±6.02 dB

高周波でのわずかなズレも、中心差分の \(\mathrm{sinc}(\omega\Delta t)\) で小数点以下 6 桁まで説明できました ── 物理ではなく近似のせいです。FFT で直接 \((i\omega)\) を掛ければ誤差は消えます。

そして物理は、位置 → 速度 → 加速度と、この操作を繰り返しているだけでした。\(F=ma\) は「+12 dB/oct 傾けたもの」。

物理の微積分とは、スペクトルを傾け続ける操作である。

この文書は「考える波」シリーズ第 1 回です。計算は kenshou/nami.js で行っています(依存なしの素の Node)。本回の数値について:試験信号の周波数(93.75, 375, 1500, 6000 Hz)は \(f_s/N=2.9297\) Hz の整数倍になるよう選んであり、窓関数なしでもスペクトル漏れが出ません。これを外すと振幅が数 % 揺れます(実際、最初は 100/400/1600/6400 Hz で試して漏れが出ました)。数値微分は中心差分、積分は台形則で、いずれも周期境界を仮定しています。積分後の信号からは平均値を引いています ── 引かないと台形則の累積でドリフトし、スペクトルの低域が汚れるためです。この「平均値を引く」操作こそが第 3 回の主題(積分定数)になります。 ── 印刷する場合はブラウザの「印刷」から「PDF に保存」を。

印刷 / PDF 化:⌘+P(Windows は Ctrl+P)。「答えを見る」で解答が開きます。