2017年9月27日 星期三

[訊號與系統] Frequency Modulation 淺嚐:Chirp Signal

回憶一般 弦波訊號
\[
z(t) = A \cos(2 \pi f_0 t + \phi) = Re\{A e^{j (2 \pi f_0 t + \phi)}\}
\]其中 $A$ 為振幅 ,$f_0$ 為頻率,$\phi$ 為相位。由上式,我們可以定義 $z(t)$ 的 "角度" 記作
\[
\psi(t) := 2 \pi f_0 t + \phi
\]由於上式為 linear in $t$ ,我們可觀察
\[
\frac{d}{dt} \psi(t) = 2 \pi f_0 := \omega_i(t)
\] 故 $z(t)$ 的角度 隨時間的瞬時變化率 為 $2 \pi f_0$  其單位為 (rad/s) ,若我們將其除掉 $2\pi$ 即可得到 (瞬時)頻率 $f_0$ (單位為 Hz)。

上述想法可以被進一步推廣如下:

Frequency Modulation (FM) Signal
現在我們將上述 $z(t)$ 做進一步簡單的推廣:假設
\[
x(t) := A \cos(\psi (t)) = Re\{e^{j \psi(t)}\}
\]則我們可仿造前述的方法來定義 瞬時頻率 (instantaneous frequency),亦即我們先對 $\psi(t)$ 對 $t$ 微分,可得瞬時角頻率 (instantaneous angular frequency)
\[
\omega_i(t) :=  \frac{d}{dt} \psi(t)
\]若對上式兩邊同除以 $2 \pi$ ,可得瞬時頻率 (instantaneous frequency), 記作 $f_i(t)$, 如下
\[
f_i(t) :=\frac{1}{2\pi}\omega_i(t) =  \frac{1}{2 \pi} \frac{d}{dt} \psi(t)
\]單位為 Hz。

以下我們看個 FM 調頻中的一類特殊例子,假設我們想要創造一組 弦波訊號 使其 頻率可以包含一段我們感興趣頻段,比如說我們想創造一組聲音其頻率 從 300 Hz 並且一路往上到 800 Hz,一種常見的做法是採用 chirp signal 來達成,其特性如下:給定初始頻率 $f_{int}$ 與 終點頻率 $f_{end}$, chirp signal 保證訊號頻率在 $f_{int}$ 到 $f_{end}$ 之間以連續且線性方式改變(比如遞增或者遞減),故此法又稱線性調頻。

FM Signal Example: Chirp, or Linear Swept Frequency or Linear FM
以下我們考慮一類特殊的 FM 訊號,亦即我們取
\[
\psi(t) := 2\pi \mu t^2 + 2\pi f_0 t+\phi
\]則對應的瞬時頻率為
\[
f_i(t) := \frac{1}{2 \pi} \frac{d}{dt} \psi(t)  = 2 \mu t + f_0
\]亦即我們發現瞬時頻率隨時間遞增,且在 $t=0$時後我們有 起始頻率 $f_0$。讀者可使用 下列 matlab code 來聽聽看 chirp 訊號 (起始的 瞬時頻率為 300Hz 一路往上到 800Hz):

% Generate an play a chirp signal

fsamp = 11025; % sampling frequency

dur = 2;
mu = 125;
Amp = 6;
f0 = 300;

dt = 1/fsamp;
tt = 0 : dt : dur;

psi = 2*pi*(100 + f0*tt + mu*tt.*tt);
xx = real( Amp*exp(j*psi) );

soundsc( xx, fsamp );