常數Q轉換
在數學和信號處理中,常數Q轉換(英語:Constant-Q transform,CQT)和變Q轉換(英語:Variable-Q transform,VQT)將信號變換到頻域,與短時距傅立葉轉換一樣為重要時頻分析工具。其與傅里葉轉換相關,與復莫萊小波密切相關[1],並適用於音樂信號的分析,這個轉換產生的頻譜最大的特色是在於頻率軸為對數標度(log scale)而不是線性標度(linear scale),且窗口長度(window length)會隨着頻率而改變。
常數Q轉換由一系列以對數尺度分佈在頻域的濾波器fk,構成,其中第k個濾波器的頻帶寬度δfk與前一個濾波器的帶寬相關:
其中δfk是第k個濾波器的帶寬,fmin是最低頻濾波器的中心頻率,n是每八度中濾波器數量。
基本概念
十二平均律告訴我們,一個音會與其高八度的的音頻率相差兩倍,我們以比率將一個八度平均分為十二等分(十二個半音),換句話說在一個八度中,十二個音的頻率會呈現等比數列,公比為 (約為1.06),如今各式各樣的音樂類型均符合十二平均律,所以常數Q轉換可說是十分適用於分析各種不同的音樂類型。
常數Q轉換是根據十二平均律,在頻率軸上每個八度均用12n格來表示,也就是說每個八度中十二個音均會被分到n格。另一方面來說,常數Q轉換其實就是一個1/(12n)th-oct 濾波器組(filter bank),第k個濾波器的頻寬會是前一個濾波器的頻寬乘上一個倍數,也就是說
換句話說,
其中為時頻圖上顯示的最小頻率。
計算方式
常數Q轉換的計算方式大致與短時距傅立葉轉換相同,唯一的兩個差異是
1. 所使用的窗口(window)長度會隨着頻率而改變。
2. 頻率軸為對數標度(log scale)。
以下為短時距傅立葉轉換運算式,若要改成常數Q轉換只要將N與k作修正即可。
前面提過,這個轉換可視為濾波器組,其中第k個濾波器的頻寬為,
我們定義品質因子Q,,
Q的值為常數,不會因為而改變,順帶一提,此轉換的名稱便是從這裏來的。
是第k個濾波器的中心頻率,也是時頻圖上第k格所代表的頻率 而窗口長度N表示如下
其中為取樣頻率,所以頻率越高,窗口長度越短。
除此之外,我們用來取代,目的是要讓頻率軸上每個八度均用12n格來表示。
所以常數Q轉換
轉換結果除以N(窗口長度)的原因是要作一個歸一化(normalization),這是由於不同頻率窗口長度不同的緣故。
特性
常數Q轉換可說是為音樂訊號設計的,其中第一個原因是它讓窗口長度隨着頻率改變,進而提高低頻在頻域的解像度。
下表為C和C#在不同八度時的頻率:
Midi number | C2 | C#2 | C5 | C#5 |
Frequency | 65.4 Hz | 69.2 Hz | 523.3 Hz | 554.4 Hz |
其中C2和C#2為低音,兩者間的頻率差不到4 Hz,然而C5和C#5為高三個八度的音,兩者間頻率差增加30 Hz 左右。 所以在線性標度的轉換下(比方說傅立葉轉換),低音部分頻域的解像度會很差,這在判斷音高上造成極大的不便。
低頻部分窗口長度加長,這樣可以改善低頻頻域的解像度,避免音高的誤判,但改善解像度的唯一缺點是會犧牲低頻部分時域的解像度。
第二個原因是他在頻域軸上是對數標度,這會比線性標度更符合人耳聽覺系統,且產生出來的時頻圖較容易閱讀。
參考資料
- Judith C. Brown, Calculation of a constant Q spectral transform (頁面存檔備份,存於互聯網檔案館), J. Acoust. Soc. Am., 89(1):425–434, 1991.
- ^ Continuous Wavelet Transform (頁面存檔備份,存於互聯網檔案館) "When the mother wavelet can be interpreted as a windowed sinusoid (such as the Morlet wavelet), the wavelet transform can be interpreted as a constant-Q Fourier transform. Before the theory of wavelets, constant-Q Fourier transforms (such as obtained from a classic third-octave filter bank) were not easy to invert, because the basis signals were not orthogonal."