時頻譜

時頻譜（Spectrogram）又稱聲譜圖（voicegram），是一種描述波動的各頻率成分如何隨時間變化的熱圖。利用傅立葉變換得到的傳統的2維頻譜可展示複雜的波動是如何按比例分解為簡單波的疊加（分解為頻譜），但是無法同時體現它們隨時間的變化。能對波動的時間變量與頻率分布同時進行分析的常用數學方法是短時距傅立葉變換，但是直接繪成3維圖像的話又不便於在紙面上觀察和分析。時頻譜在藉助時頻分析方法的基礎上，以熱圖的形式將第3維的數值用顏色的深淺加以呈現。

## 定義與格式

時頻譜通常以熱圖形式呈現,即以顏色或亮度的變化來表示強度的圖像。

### 常見格式

標準的時頻譜是一個具有兩個幾何維度的圖形:一個軸表示時間,另一個軸表示頻率;第三個維度(特定頻率在特定時間的振幅)由圖像中每個點的強度或顏色表示。

格式有許多變化:

- 有時垂直軸和水平軸會互換,使時間由上而下排列
- 有時作為瀑布圖,其中振幅由3D表面的高度而非顏色或強度表示
- 頻率軸和振幅軸可以是線性或對數刻度,取決於圖形的用途

對於音訊,通常使用對數振幅軸(可能以分貝或dB表示)。頻率可以是線性以強調諧波關係,或對數以強調音樂、音調關係。

## 時頻分析

時頻分析是頻譜分析的推廣，比頻譜分析更加直觀。在分析一段隨時間而變化的信號時，若單純以離散（或離散-時間）傅立葉轉換（Discrete (Time) Fourier Transform），我們能得到信號的所有頻率資訊，但是卻缺乏時間的資訊。以語音信號為例，若以離散傅立葉轉換分析（DFT/FFT），可以得知該段聲音中有哪些頻率出現，卻無法得知該頻率出現的時間點。但若以時頻分析（利用短時距傅立葉變換，STFT）來分析語音信號，我們會在每個取樣時間點上乘上一個窗函數，再做離散傅立葉轉換，因此在這段短時間中，我們就具有該信號的頻率成分，即可得知在該段時間中，語音信號的頻率為何，最後將整段信號做時頻分析，就可以得到該信號的時頻分布圖

$${X}\left( {t,f} \right) = \int_{ - \infty }^\infty {w\left( {t - \tau } \right) } {x}\left( {\tau} \right)\,{e^{ - j2\pi \,f\tau }} d\tau$$

時頻譜即是描繪信號的時間和頻率分布的熱圖，顯示時頻分析的結果

$$SP(t,f)=\left|X(t,f)\right|^2 =X(t,f)X^*(t,f)$$

## 窗函數

在計算時頻譜時,窗函數的選擇對結果有重要影響。窗函數用於減少頻譜洩漏,但也會影響時間和頻率解析度之間的權衡。

### 常用窗函數類型

矩形窗(Rectangular window):

- 最簡單的窗函數,在所需區段內為1,區段外為0
- 會在區段邊界產生不連續,導致頻域出現振鈴效應
- 主瓣最窄但旁瓣電平高

漢寧窗(Hann window):

- 也稱為Hanning窗,以氣象學家Julius von Hann命名
- 為升餘弦窗,在邊界平滑降至零
- 減少了振鈴偽影,但代價是一定程度的頻率模糊
- 旁瓣以約18 dB/倍頻程的速率衰減

漢明窗(Hamming window):

- 由Richard W. Hamming提出
- 與漢寧窗類似但在端點不完全降至零(約0.08)
- 最高旁瓣約-43 dB,比漢寧窗低10 dB
- 由於端點不連續,旁瓣衰減較慢(6 dB/倍頻程)

布萊克曼窗(Blackman window):

- 使用更多餘弦項的廣義窗函數
- 提供更好的旁瓣抑制(約-74 dB)
- 主瓣比漢寧窗和漢明窗寬約50%

### 時頻解析度權衡

窗的大小和形狀可以改變。較小(較短)的窗將在時間上產生更準確的結果,但會犧牲頻率表示的精確度。較大(較長)的窗將提供更精確的頻率表示,但會犧牲時間表示的精確度。

這是海森堡不確定性原理的一個實例:兩個共軛變量的精度乘積大於或等於一個常數(通常記為B×T≥1)。

## 進階時頻分析方法

除了基於短時距傅立葉變換的時頻譜外,還有其他時頻分析方法可以提供不同的時頻表示。

### 小波變換

連續小波變換(Continuous Wavelet Transform, CWT)是一種時頻變換,特別適合分析非平穩信號。

CWT通過將信號與一組小波進行卷積來實現,這些小波由母小波(mother wavelet)經過平移和膨脹生成。數學上,CWT定義為:

$$W(a,b) = \frac{1}{\sqrt{|a|}} \int_{-\infty}^{\infty} x(t) \psi^* \left( \frac{t-b}{a} \right) dt$$

其中:

- $W(a,b)$ 是小波係數
- $a$ 是尺度參數(與頻率成反比)
- $b$ 是時間平移參數
- $\psi(t)$ 是母小波
- $\psi^*$ 表示複共軛

尺度圖(Scalogram)是CWT的絕對值平方作為時間和頻率函數的圖形表示,類似於STFT的時頻譜。

CWT相對於STFT的優勢:

- 可變時頻解析度:對低頻使用較長的小波以改善頻率定位,對高頻使用較短的小波以改善時間定位
- 克服了STFT的固定窗口大小限制
- 更適合分析包含多尺度特徵的信號

常用的母小波包括:

- Morlet小波:常用於時頻分析
- Haar小波:最簡單的小波
- Daubechies小波系列
- 墨西哥帽小波

### 維格納分布

維格納-維爾分布(Wigner-Ville distribution, WVD)是另一種時頻表示方法,定義為:

$$W(t, \omega) = \int_{-\infty}^{\infty} x\left(t + \frac{\tau}{2}\right) x^*\left(t - \frac{\tau}{2}\right) e^{-j\omega\tau} d\tau$$

WVD的特點:

- 實值函數
- 提供高時頻解析度
- 存在交叉項干擾,對多分量信號會產生虛假的時頻成分

為減少交叉項,發展了多種平滑WVD的變體,如偽維格納分布(Pseudo Wigner-Ville Distribution)和Choi-Williams分布。

## 應用領域

### 語音與音訊處理

時頻譜廣泛應用於語音識別、音樂分析和聲學研究中。在早期,模擬時頻譜被應用於研究鳥類叫聲等動物聲音。當代數字時頻譜的使用對於研究動物叫聲中的頻率調制(FM)特別有用,FM啁啾、寬頻點擊音和社交諧波的區別特徵最容易通過時頻譜可視化。

時頻譜對於協助克服言語缺陷和對嚴重耳聾人群進行言語訓練也很有用。

### 梅爾時頻譜與深度學習

在基於深度學習的語音合成中,首先由序列到序列模型預測時頻譜(或梅爾尺度的時頻譜),然後將時頻譜饋送到神經聲碼器以生成合成的原始波形。

梅爾時頻譜(Mel spectrogram)是一種特殊的時頻譜,使用梅爾刻度代替線性頻率刻度,並使用分貝刻度代替線性振幅來表示顏色。

梅爾尺度基於人類感知語音的研究發現,使其適合表示語音期間產生的聲音的聲學資訊。

梅爾時頻譜在深度學習中的應用:

- 語音情感識別:將音訊樣本轉換為梅爾時頻譜圖像,然後用於訓練卷積神經網絡(CNN)模型
- 自動語音識別:梅爾時頻譜提供比原始音訊或MFCC更豐富的特徵表示
- 音訊分類:深度學習模型利用梅爾時頻譜作為輸入來識別和分類各種聲音

### 其他應用

時頻譜在多個領域都有應用:

- 生物醫學信號處理:分析心電圖、腦電圖等生理信號
- 地震學:分析地震波和地震活動
- 射頻系統開發:使用高畫質晰度時頻譜
- 振動分析:振動測試工程師使用時頻譜分析連續波形的頻率內容

## 限制與信號重建

從時頻譜的公式可以看出,時頻譜不包含關於其所表示信號的精確甚至近似相位的資訊。因此,無法反轉該過程並從時頻譜生成原始信號的副本。

然而,在精確初始相位不重要的情況下,可能可以生成原始信號的有用近似值。例如:

- 分析與重合成聲音時頻譜儀(Analysis & Resynthesis Sound Spectrograph)是一個嘗試執行此操作的電腦程序
- Pattern Playback是20世紀40年代末在哈斯金斯實驗室設計的早期語音合成器,將語音聲學模式圖片(時頻譜)轉換回聲音

實際上,時頻譜中確實存在一些相位資訊,但它以另一種形式出現,即時間延遲(或群延遲),這是瞬時頻率的對偶。