都卜勒效應

救護車(波源)一邊沿著道路行駛、一邊發出聲波(俯視圖)。觀察前方的波前被擠在一起、後方被拉開;把觀察者拖到任何位置,讀出他聽到的頻率 f′——由「這個聲音發出時波源在哪裡」精確算出。打開音效聽聽看經過時音調由高變低,再把速度提高到超過音速,看看馬赫錐與音爆。

試試看:打開「音效」再按「波源靠近」,聽救護車經過時音調怎麼變,對照 f′(t) 圖。

波前(每 1/f 發出一個) 此刻傳到觀察者的波前 波源速度 vs 觀察者速度 vo 3D:空氣中的半球形波前 3D:馬赫錐(超音速)

3D 立體:拖曳旋轉、雙指或滾輪縮放(右鍵或雙指拖曳可平移)。拖曳觀察者、點地面或按方向鍵可以移動觀察者。每個波前是以「發出位置」為球心、半徑 v(t − te) 的球面,地面以上是半球;地面上的圓就是 2D 俯視圖,「剖開半球」會切掉靠近你的一半,看得到沿著道路的剖面。三個灰色的參考聽者靜止不動:道路前方、道路後方與路旁。救護車與人放大顯示,未依比例。

俯視圖,距離以公尺計(比例尺在左下角);救護車與觀察者的圖示放大顯示,未依比例。速度箭頭代表 0.5 秒內移動的距離。點畫面任一處或拖曳觀察者,可以改變觀察者的位置;沿道路拖曳救護車,可以改變它的起點(從頭開始)。鍵盤:選取畫面後按 Enter 在觀察者與救護車之間切換,方向鍵每次移動 10 m,按住 Shift 為 50 m。半透明的救護車標出「此刻聽到的聲音」發出時波源所在的位置。

音效:畫面上的 f 只有幾 Hz(才看得見一圈一圈的波前),所以喇叭播放的音高按比例放大——以 660 Hz 代表 f,聽到的是 660 Hz × f′/f;距離聲音發出的位置越遠,音量越小。

背後的物理

頻率 \(f\) 的波源每隔一個週期 \(1/f\) 發出一個波前。每個波前從「發出時波源所在的位置」以聲速 \(v\) 向四周擴散;聲速只由空氣決定,與波源怎麼動無關。波源靜止時,波前是一圈圈同心圓,間距為一個波長:

\[ \lambda = \frac{v}{f} \]

波源運動:前方被壓縮、後方被拉長

一個週期內,波前走了 \(v/f\),但波源也同方向前進了 \(v_s/f\) 才發出下一個波前。所以前方的間距變短、後方的間距變長:

\[ \lambda_{\text{前}} = \frac{v - v_s}{f}, \qquad \lambda_{\text{後}} = \frac{v + v_s}{f} \]

靜止的觀察者以速率 \(v\) 接收這些波,聽到 \(f' = v/\lambda\):

\[ f'_{\text{靠近}} = f\,\frac{v}{v - v_s} \gt f, \qquad f'_{\text{遠離}} = f\,\frac{v}{v + v_s} \lt f \]

觀察者運動:遇到波前的快慢改變

觀察者運動時,空氣中的波長不變,但波相對於觀察者的速率變成 \(v \pm v_o\)。把兩種效應合起來,就是都卜勒效應公式——朝向對方運動時取上面的符號:

\[ f' = f\,\frac{v \pm v_o}{v \mp v_s} \]

波源動與觀察者動,就算速率相同,結果也不一樣,因為空氣(介質)是靜止的。

波源從旁邊經過

你現在聽到的聲音,是波源稍早在它當時的位置(半透明的救護車)發出的。只有沿著「那個位置 → 你」這條連線的速度分量有影響。令 \(\hat{R}\) 為由發出位置指向觀察者的單位向量,\(u_s = \hat{R}\cdot\vec{v}_s\)、\(u_o = -\hat{R}\cdot\vec{v}_o\):

\[ f' = f\,\frac{v + u_o}{v - u_s} \]

救護車經過時,\(u_s\) 由 \(+v_s\) 連續變成 \(-v_s\),音調由高平滑地滑到低;救護車正好在你身旁時發出的那段聲音,你聽到的就是 \(f\)。

超過音速:馬赫錐與音爆

當 \(v_s \ge v\),波源追上自己發出的波前,波前在後方沿著一個圓錐(平面上是兩條直線)疊在一起,形成震波。錐的半頂角 \(\theta\) 滿足

\[ \sin\theta = \frac{v}{v_s} = \frac{1}{M}, \qquad M = \frac{v_s}{v} \]

在錐的前方完全聽不到聲音。錐面掃過觀察者時,大量波前同時抵達,就是音爆。之後觀察者會同時聽到兩個聲音:一個是波源遠離時發出的,另一個是更早、波源以超過音速靠近時發出的,它以相反的時間順序抵達(公式算出 \(f' \lt 0\),圖上以虛線畫出 \(|f'|\))。

觀察重點

模擬方法

參考資料