复倒谱

**倒頻譜**（**cepstrum**），顧名思義，就是將頻譜（spectrum）的英文前四個字母反過來寫。倒頻譜是為了某些時候，為了計算方便，將原來訊號的頻譜先轉成類似分貝的單位，再作逆傅立葉轉換，把它視為一種新的訊號做處理。倒頻譜有複數倒頻譜，及實數倒頻譜。

倒頻譜被定義在 1963 的論文（Bogert 等）。定義如下：

* 字義：倒頻譜（訊號）是訊號頻譜取對數的傅立葉變換後的新頻譜（訊號），有時候會稱頻譜的倒頻譜。
* 數學上：訊號的倒頻譜 = IFT (log ( | FT (訊號) | ) + j2πm )（m 為實數）
* 演算法：訊號 -> 傅立葉轉換 -> 取絕對值 -> 取對數 -> 相位展開 -> 逆傅立葉轉換 -> 倒頻譜

複數倒頻譜擁有頻譜大小跟相位的資訊，實數倒頻譜只有頻譜大小的資訊，各有各的不同應用。

## 複數倒頻譜與實數倒頻譜

### 複數倒頻譜

 ${\widehat {x}}\left[n\right]=\int _{-{\frac {1}{2}}}^{\frac {1}{2}}{\widehat {X}}\left(F\right)e^{j{2\pi }F}dF$ 
其中 ${\widehat {X}}\left[F\right]=\log |X(F)|+j\arg[X(F)]$ 
可能遭遇的問題 

1. $\log 0=-\infty $ 

2. $\arg[X[n]]$ 有無限多的解 
當輸入是實數時，因為 $\log |X(F)|$ 偶對稱， $\arg[X(F)]$ 奇對稱，所以複數倒頻譜的值為實數 

### 實數倒頻譜

 $C\left[n\right]=\int _{-{\frac {1}{2}}}^{\frac {1}{2}}\log |X(F)|e^{j{2\pi }Fn}dF$ 
可能遭遇的問題 

1. $\log 0=-\infty $ 

## 應用

* 倒頻譜可以被視為在不同頻帶上變化速率的資訊，倒頻譜一開始被發明在地震或炸彈產生的地震回音，現今也被使用在分析雷達訊號，以及訊號處理等問題。
* 自相關倒頻譜 (autocepstrum) 被定義為倒頻譜的自相關性，自相關倒頻譜有時在分析處理回傳訊號時比倒頻譜還準確。
* 倒頻譜在處理人聲訊號以及音樂訊號有非常好的效果，例如梅爾頻率倒頻譜 (Mel-Frequency Cepstrum)，用來做聲音的辨認，偵測音高等。近年來梅耳倒頻譜也被應用在音樂資訊的回覆。
* 倒頻譜在聲學中可以將聲帶震動的影響去除。
* 倒頻譜用在處理多路徑問題時 (如聲波的迴音、電磁波的折、反射等)，如果將其他路徑干擾視為雜訊，為了消除雜訊，利用倒頻譜，不需測量每條多路徑的延遲時間，可以利用傳送多次訊號，觀察其他路徑在倒頻譜上的效果，並且加以濾除。
* 語音大致上是由音高、聲帶脈衝、聲門波形所組成，我們可以利用倒頻譜將這三種元素在倒頻域上分開，以利於做語音訊號的分析。
* 倒頻譜的微分適用於影像處理上的圖形辨認 (pattern recognition)。
* 倒頻譜與同型聲音理論 (homomorphic sound theory) 有關。

## 倒頻譜觀念

頻譜圖上的獨立變數是頻率，而倒頻譜圖上的獨立變數為倒頻率 (quefrency)，倒頻率是一種時間的度量單位。舉個例子，聲音訊號取樣速率等於 44100 赫茲，在倒頻譜上有個很大的值在倒頻率等於 100，代表實際上在 44100/100=441 赫茲有很大的值，這值出現在倒頻譜上因為頻譜上週期性出現，而頻譜上出現的週期與倒頻譜很大的值出現的位置有關。

## 倒濾波器

濾波器 (filter) 常使用在頻譜上，用來保存或刪除我們所要或不要的資訊，經過上面的許多討論，不難猜到，倒濾波器 (lifter) 就是在倒頻譜上所使用的濾波器。低通的倒濾波器跟低通濾波器有點類似，它可以藉由在倒頻譜上乘以一個 window 係數，使倒頻譜上的高倒頻率被壓抑，如此依來，當訊號轉回時域空間時會變成一個較平滑的訊號。

## 計算倒頻譜的方法

### 直接計算 IDTFT (反離散時間傅立葉變換)

 ${\widehat {x}}\left[n\right]=\int _{-{\frac {1}{2}}}^{\frac {1}{2}}{\widehat {X}}\left(F\right)e^{j{2\pi }F}dF$ 
問題: ${\widehat {X}}\left(F\right)$ 可能會無限大，且對於 arg (x [n]) 有無限多個解 

### 利用 Z 轉換的零點與極點

先對訊號做 Z 轉換，並整理一下係數，讓他變成下面的形式 
 $X\left(Z\right)={\cfrac {A{Z^{r}}\prod _{k=1}^{m_{i}}(1-{a_{k}}{Z^{-1}})\prod _{k=1}^{m_{0}}(1-{b_{k}}Z)}{\prod _{k=1}^{P_{i}}(1-{c_{k}}{Z^{-1}})\prod _{k=1}^{P_{0}}(1-{d_{k}}Z)}}$ 
其中 $\left|a_{k}\right|,\left|b_{k}\right|,\left|c_{k}\right|,\left|d_{k}\right|\leq 1$ 
  
分子: 
第一項 A 是係數 
第二項 $Z^{r}$ 是延遲 
第三項是位於單位圓內的零點 
第四項是位於單位圓外的零點 
  
分母: 
第一項是位於單位圓內的極點 
第二項是位於單位圓外的極點 
  
對 $X\left(Z\right)$ 取 log 變成 ${\widehat {X}}\left(Z\right)$ 
 ${\widehat {X}}\left(Z\right)=logX\left(Z\right)=\log A+r\log Z+\sum _{k=1}^{m_{i}}\log(1-{a_{k}}{Z^{-1}})+\sum _{k=1}^{m_{0}}\log(1-{b_{k}}Z)-\sum _{k=1}^{P_{i}}\log(1-{c_{k}}{Z^{-1}})-\sum _{k=1}^{P_{0}}\log(1-{d_{k}}Z)$ 
假設 r=0, 因為這只是延遲，並不會破壞波形 
根據 Z 轉換所得到的系數，我們可以利用泰勒展開得到 Z 的反轉換 
 ${\widehat {x}}\left[n\right]={\begin{cases}\log A&{\mbox{if }}n=0\\-\sum _{k=1}^{m_{i}}{\cfrac {{a_{k}}^{n}}{n}}+\sum _{k=1}^{P_{i}}{\cfrac {{c_{k}}^{n}}{n}}&{\mbox{if }}n>0\\\sum _{k=1}^{m_{0}}{\cfrac {{b_{k}}^{-n}}{n}}-\sum _{k=1}^{P_{0}}{\cfrac {{d_{k}}^{-n}}{n}}&{\mbox{if }}n<0\end{cases}}$ 
  
注意事項 

1. ${\widehat {x}}\left[n\right]$ 總是 IIR (無限脈衝響應) 
2. 對於 FIR (有限脈衝響應) 的情況， $c_{k}=0,d_{k}=0$

### 利用 Z 轉換與微分

 $Z\cdot {\widehat {X}}'\left(Z\right)=Z\cdot {\cfrac {{X}'\left(Z\right)}{{X}\left(Z\right)}}$ 
 $Z{X}'\left(Z\right)=Z{\widehat {X}}'\left(Z\right)\cdot {X}\left(Z\right)$ 
對其做 Z 的反轉換 
 $nx[n]=\sum _{k=-\infty }^{\infty }k{\widehat {x}}\left[k\right]x[n-k]$ 
故 
 $x[n]=\sum _{k=-\infty }^{\infty }{\frac {k}{n}}{\widehat {x}}\left[k\right]x[n-k]\quad for\ n\neq 0$ 
  
分別對於 x [n] 的四種不同的狀況做延伸 
1. 對於 x [n] 是因果 (causal) 和最小相位 (minimum phase) i.e. $x[n]={\widehat {x}}\left[n\right]=0,n<0$ 
對於 $x[n]=\sum _{k=-\infty }^{\infty }{\frac {k}{n}}{\widehat {x}}\left[k\right]x[n-k]\quad for\ n\neq 0$ 
可得出 
 $x[n]=\sum _{k=0}^{\infty }{\frac {k}{n}}{\widehat {x}}\left[k\right]x[n-k]\quad for\ n>0$ 
故 
 $x[n]={\widehat {x}}\left[n\right]x[0]+\sum _{k=0}^{n-1}{\frac {k}{n}}{\widehat {x}}\left[k\right]x[n-k]$ 
2. 對於 x [n] 是最小相位 (minimum phase) 
 ${\widehat {x}}\left[n\right]={\begin{cases}0&{\mbox{if }}n<0\\{\cfrac {x[n]}{x[0]}}-\sum _{k=0}^{n-1}{\cfrac {k}{n}}{\widehat {x}}\left[k\right]{\cfrac {x[n-k]}{x[0]}}&{\mbox{if }}n>0\\\log A&{\mbox{if }}n=0\end{cases}}$ 
3. 對於 x [n] 是反因果 (anti-causal) 且最大相位 (maximum phase) i.e. $x[n]={\widehat {x}}\left[n\right]=0,n>0$ 
 ${\begin{aligned}x[n]&=\sum _{k=n}^{0}{\cfrac {k}{n}}{\widehat {x}}\left[k\right]x[n-k]\quad for\ n<0\\&={\widehat {x}}\left[n\right]x[0]+\sum _{k=n+1}^{0}{\cfrac {k}{n}}{\widehat {x}}\left[k\right]x[n-k]\\\end{aligned}}$ 
4. 對於 x [n] 是最大相位 (maximum phase) 
 ${\widehat {x}}\left[n\right]={\begin{cases}0&{\mbox{if }}n>0\\{\cfrac {x[n]}{x[0]}}-\sum _{k=n+1}^{0}{\cfrac {k}{n}}{\widehat {x}}\left[k\right]{\cfrac {x[n-k]}{x[0]}}&{\mbox{if }}n<0\\\log A&{\mbox{if }}n=0\end{cases}}$ 

## 特性

1. 複數倒頻譜至少以 ${\frac {1}{n}}$ 的速度衰退 
 $|{\widehat {x}}\left[n\right]|=c|{\frac {{\alpha }^{n}}{n}}|\quad -\infty <n<\infty $ 
其中 $\alpha =max(a_{k},b_{k},c_{k},d_{k})$ 
2. 如果 X (Z) 沒有在單位圓以外的零點和極點，則 
 ${\widehat {x}}\left[n\right]=0\quad for\ all\ n<0$ 
因為 $b_{k},d_{k}=0$ 
3. 如果 X (Z) 沒有在單位圓以內的零點和極點，則 
 ${\widehat {x}}\left[n\right]=0\quad for\ all\ n>0$ 
因為 $a_{k},c_{k}=0$ 
4. 如果 x [n] 是有限長度，則 ${\widehat {x}}\left[n\right]$ 是無限長度 

## 梅爾頻率倒頻譜

梅爾頻率倒頻譜是倒頻譜的一種應用，梅爾頻率倒頻譜常應用在聲音訊號處理，對於聲音訊號處理比倒頻譜更接近人耳對聲音的分析特性，而梅爾頻率倒頻譜與倒頻譜的差別在於:

1. 梅爾頻率倒頻譜的頻帶分析是根據人耳聽覺特性所設計，人耳對於頻率的分辨能力，是由頻率的 "比值" 決定，也就是說，人耳對 200 赫茲和 300 赫茲之間的差別與 2000 赫茲和 3000 赫茲之間的差別是相同的。
2. 梅爾頻率倒頻譜是針對訊號的能量取對數，而倒頻譜是針對訊號原始在頻譜上的值取對數。
3. 梅爾頻率倒頻譜是使用離散餘弦轉換，倒頻譜是用離散傅立葉變換。
4. 梅爾頻率倒頻譜係數足夠描述語音的特徵。

 
梅爾頻率倒頻譜係數 (MFCCs) 的推導步驟：

1. 將訊號做傅立葉變換
2. 頻譜上的值取絕對值再平方成為能量，在乘上頻譜上對應的梅爾頻率倒頻譜三角重疊窗 (window) 的係數。
3. 對每個梅爾頻率取對數。
4. 作離散餘弦轉換。
5. 求得梅爾頻率倒頻譜係數。

## 梅爾頻率倒頻譜應用

* 梅爾頻率倒頻譜係數常利用在辨認語音技術上，例如辨認電話中說話的人的身份。
* 利用每種樂風、或樂器在梅爾頻域上有不同特性來分析音樂的種類與類型，並且可以加以分類。

## 雜訊敏感性

梅爾頻率倒頻譜係數很容易被外來的雜訊所破壞，因此有些研究結果指出，在求梅爾頻率倒頻譜係數時，在作離散餘弦轉換前，提升適當的能量 (大約 2 或 3 倍)，以減少雜訊在低能量成份的影響。

## 梅爾頻率倒頻譜優點

相較於原始的倒頻譜

* 有絕對值平方

## 卷積

倒頻譜領域上的一項重要的特性為二訊號卷積之產生，其產生之程序為二倒頻譜值 (cepstra) 之相加：

$$
x_{1}*x_{2}\rightarrow x'_{1}+x'_{2}
$$

 

 

## 微分倒頻譜 (differential cepstrum)

### 定義

```
${\widehat {x}}_{d}(n)=Z^{-1}{\frac {X'(Z)}{X(Z)}}$ 或 ${\widehat {x}}_{d}[n]=\int _{-{\frac {1}{2}}}^{\frac {1}{2}}{\frac {X'(F)}{X(F)}}e^{i2\pi F}dF$  
```

 $({\frac {d}{dZ}}{\widehat {X}}_{d}(Z)={\frac {d}{dZ}}logX(Z)={\frac {X'(Z)}{X(Z)}})$ 

If $x(n)=x_{1}(n)*x_{2}(n)$ 
 $X(Z)=X_{1}(Z)X_{2}(Z)$ 
 $X'(Z)=X_{1}'(Z)X_{2}(Z)+X_{1}(Z)X_{2}'(Z)$ 
 ${\frac {X'(Z)}{X(Z)}}={\frac {X_{1}'(Z)}{X_{1}(Z)}})+{\frac {X_{2}'(Z)}{X_{2}(Z)}})$ 
 $\therefore {\widehat {x}}_{d}(n)={\widehat {x}}_{1d}(n)+{\widehat {x}}_{2d}(n)$ 
優點: 
(a) 沒有模糊的相位
(b) 可以處理延遲問題

### 特性

(1) 微分倒頻譜在 shift 和 scaling 時，結果不改變。 

ex: $y[n]=AX[n-r]$ 
 $\Rightarrow {\widehat {y}}_{d}(n)={\begin{cases}{\widehat {x}}_{d}(n),n\neq 1\\-r+{\widehat {x}}_{d}(1),n=1\end{cases}}$ 

(proof): 
 $Y(z)=Az^{-r}X(z)$ 
 $Y(z)=Az^{-r}X'(z)-rAz^{-r-1}X(z)$ 
 ${\frac {Y'(z)}{Y(z)}}={\frac {X'(z)}{X(z)}}-rz^{-1}$ 
(2) 複數倒頻譜 ${\widehat {C}}[n]$ 與 微分倒頻譜 ${\widehat {x}}_{d}[n]$ 和原訊號 x [n] 有關 
 ${\widehat {C}}(n)={\frac {-{\widehat {x}}_{d}(n+1)}{n}},n\neq 0$ diff cepstrum 
 $-(n-1)x(n-1)=\sum _{k=-\infty }^{\infty }{\widehat {x}}_{d}(n)x(n-k)$ recursive formula 
 $\Rightarrow $ 複數頻譜做得到的事情，微分倒頻譜也做得到 
(3) 如果 x [n] 是最小相位 (minimum phase), 則 ${\widehat {x}}_{d}[n]=0$ , 當 $n\leq 0$ 
minimum phase 意思為 no poles 或 zeros 在單位圓外 
(4) 如果 x [n] 是最大相位 (maximum phase), 則 ${\widehat {x}}_{d}[n]=0$ , 當 $n\geq 2$ 
maximum phase 意思為 no poles 或 zeros 在單位圓內 
(5) 如果 x (n) 為有限區間，則 ${\widehat {x}}_{d}[n]$ 為無限區間 

* 複數倒頻譜的衰減率反比於 n
* 微分倒頻譜的衰減率下降

$$
\therefore {\widehat {x}}_{d}(n+1)=n{\widehat {c}}(n)\varpropto n{\frac {1}{n}}=1
$$

## 範例

 * $x[0]=1,x[1]=0.5$ ,otherwise 0 , Find its cepstrum.

 $x[n]\quad {\stackrel {Ztransform}{\longrightarrow }}\quad X(Z)\quad {\stackrel {log}{\longrightarrow }}\quad {\widehat {X}}(Z)\quad {\stackrel {Z^{-1}}{\longrightarrow }}\quad {\widehat {x}}[n]$ 
  

step 1. Z transform: $X(Z)=1+0.5Z^{-1},pole=-0.5$ 

step 2. log: ${\widehat {X}}(Z)=\sum _{k=1}^{m_{i}}log(1-(-0.5Z^{-1}))$ 

step 3. reverse Z transform: ${\widehat {x}}[n]=\sum _{n=0}^{N}-{\frac {-0.5^{n}}{n}},n>0$

 * ${\widehat {x}}[0]=1$ ,otherwise 0 , Find its inverse cepstrum.

 ${\widehat {x}}[n]\quad {\stackrel {Ztransform}{\longrightarrow }}\quad {\widehat {X}}(Z)\quad {\stackrel {exp}{\longrightarrow }}\quad {X}(Z)\quad {\stackrel {Z^{-1}}{\longrightarrow }}\quad {x}[n]$ 
  

step 1. Z transform: ${\widehat {X}}[n]=Z^{-1}$ 

step 2. exp: $e({\frac {1}{z}})=\sum _{n=0}^{\infty }{\frac {\frac {1}{z^{n}}}{n!}}$ 

step 3. reverse Z transform: $x[n]={\begin{cases}{\frac {1}{n!}},n\geq 0\\0,otherwise\\\end{cases}}$ 

* Suppose that an IIR filter is $H(Z)={\frac {2z^{3}-4z^{2}-z+2}{2z^{2}-2z+1}}$

 $x[n]\quad {\stackrel {Ztransform}{\longrightarrow }}\quad X(Z)\quad {\stackrel {log}{\longrightarrow }}\quad {\widehat {X}}(Z)\quad {\stackrel {Z^{-1}}{\longrightarrow }}\quad {\widehat {x}}[n]$ 
  

step 1. Z transform: $H(Z)={\frac {(-2)(z)(z-{\frac {\sqrt {2}}{2}}z^{-1})(z+{\frac {\sqrt {2}}{2}}z^{-1})(1-{\frac {1}{2}}z)}{(1-{\frac {1+j}{2}}z^{-1})(1-{\frac {1-j}{2}}z^{-1})}}$ 

step 2. log: ${\widehat {H}}(Z)=log(-2)+3log(z)+log(1\pm {\frac {\sqrt {2}}{2}}z^{-1})+log(1-{\frac {1}{2}}z)-log(1-{\frac {1\pm j}{2}}z^{-1})$ 

step 3. reverse Z transform: ${\widehat {h}}[n]={\begin{cases}log(-2),n=0\\\displaystyle {-{\frac {{({\frac {\sqrt {2}}{2}})}^{n}+{({\frac {-{\sqrt {2}}}{2}})}^{n}}{n}}+{\frac {{({\frac {1+j}{2}})}^{n}+{({\frac {1-j}{2}})}^{n}}{n}},n>0}\\\displaystyle {\frac {{({\frac {1}{2}})}^{-n}}{n}},n<0\\\end{cases}}$ 

 

$$
$$

## 參考文獻