介紹
離散哈特利轉換( DHT)是一種與傅立葉變換相關之轉換,類似於離散傅立葉變換( DFT),與傅立葉變換在信號處理及其他相關領域中有類似的套用。與離散傅立葉變換最主要的差異在於哈特利轉換對於實數的輸入,有實數的輸出,並不會牽涉到複數的運算。如同離散傅立葉變換是連續域傅立葉變換的離散類比,離散哈特利轉換亦為連續域哈特利轉換的類比。連續域哈特利轉換於1942年由R. V. Hartley提出。離散哈特利轉換則在1983年由 R. N. Bracewell所提出,由於有相當多類似於快速傅立葉變換( FFT)的快速算法被提出,於是在一般情況下當欲處理之資料為實數時,成為較傅立葉變換有效率之工具。然而,亦有人認為,特別針對實數輸入或輸出所設計之快速傅立葉變換算法可以達到較相對應之哈特利轉換算法而少的運算量(見下文)。
定義
在正式定義上,離散哈特利轉換是一種線性可逆函式 H; R-> R( R表示實數的集合)。根據下列公式, N個實數輸入 x, x,..., x經由轉換產生 N個實數輸出
其中之組合有時候我們會以表示,與在離散傅立葉變換之定義式中出現的需有所區分(其中 i為虛數單位)。
就像離散傅立葉變換一樣,在一般的習慣或不同的套用上,離散哈特利轉換定義式前之比例因子或正弦函式之正負號或有些許的差異,但並不會對離散哈特利轉換的性質產生影響。
性質
此轉換可被詮釋為 N維之向量( x, ...., x) 乘上一個 N-x- N之矩陣的矩陣運算,於是離散哈特利轉換為一種線性運運算元。該矩陣是可逆矩陣,如欲由 H重建回 x,此反轉換隻需對將 H視為輸入,進行離散哈特利轉換,輸出再乘上1/ N即得。也就是說,離散哈特利反轉換除了一個比例因子之外,與離散哈特利轉換完全相同,此一特性尤其在哈特利轉換之硬體架構設計有其優勢。
離散哈特利轉換可用於計算離散傅立葉變換,反之亦然,其關係如下。 對於實數輸入 x,經由離散傅立葉變換之輸出 X之實部為( H+ H)/2,虛部為( H- H)/2。而離散哈特利轉換的輸出則等價於計算出 x的離散傅立葉變換後乘上(1+ i),再取其實部。
如同離散傅立葉變換一樣,當我們考慮使用離散哈特利轉換計算兩個向量 x與 y( x= ( x), y= ( y) )之環形折積 z= x* y( z= ( z) )也變得簡單許多。我們令向量 X, Y與 Z分別表示 x, y與 z之離散哈特利轉換結果,於是 Z可以由下式求得:
我們可發現,類似離散傅立葉變換將折積運算轉化為點對點複數乘法運算。離散哈特利轉換將折積運算轉化成簡單的頻率成分組成,其中的運算皆只包含實數運算。再經由離散哈特利反轉換即得欲求之向量 z。於是當我們需要計算折積時,除了利用離散傅立葉變換之外,亦可利用離散哈特利轉換代為完成。而基於上述關係,一個針對使用離散哈特利轉換進行折積運算之快速算法便可產生。
快速算法討論
如同離散傅立葉變換的情況,如果我們直接依照定義計算離散哈特利轉換,則需要的計算法雜度。但我們有類似於快速傅立葉變換之快速算法僅需的計算複雜度。幾乎每種快速傅立葉變換算法,如Cooley-Tukey、質因數分解、Winograd等,皆有直接類比的快速離散哈特利轉換算法。(然而,一些較為複雜之FFT算法如QFT則目前未有對應版本)。
特別地,由Cooley-Tukey算法所類比之離散哈特利轉換算法一般被稱為快速哈特利轉換( FHT)算法,在1984年由 Bracewell 提出,此 FHT快速算法對於2的冪次方點數之版本,由史丹佛大學於1987年提出為美國專利編號第4,646,256號,並於1995年公開專利權。
如同前文所述,離散哈特利算法之效率(基於浮點數的計算次數)可能較對應之特別針對實數輸出之快速傅立葉變換算法差,此論點第一次是由Sorensen等人與Duhamel及Vetterli在1987年提出。現今電腦效能主要決定於快取與處理器管線化的考量,而非嚴格的運算數量所決定,所以在計算量上些微的差異已不如此顯著。而在實務上,針對實數輸入的高度最佳化快速傅立葉變換程式集已相當容易取得(由處理器廠商如英特爾)。然而,高度最佳化之離散哈特利轉換程式集則並非如此普遍。
一般化離散哈特利轉換
在離散傅立葉變換中,藉由將相位一般化,得到了所謂的一般化離散傅立葉變換,而離散哈特利轉換也有類比的一般化離散哈特利轉換,共有四種型態
型態一
型態二
型態三
型態四
一般化離散哈特利轉換適用於很多套用,如濾波器設計、折積計算、信號表示法、任意點數組合之離散哈特利轉換與快速算法。 對於一般化離散哈特利轉換,亦有快速算法的設計(Guoan Bi et al. 2000)。
整數離散哈特利轉換
雖然離散哈特利轉換相較於離散傅立葉變換有一個主要的優點,當實數輸入時可以得到實數的輸出,且計算過程中完全避免了複數的運算,降低了計算複雜度且可達到類似離散傅立葉變換的效果,於是在許多套用上為傅立葉變換之替代方案之一。然而,如同前文所述,在特別針對實數輸入而設計之離散傅立葉變換算法往往可以得到較低的計算複雜度,於是如欲使離散哈特利轉換之套用層面更廣,進一步的分析與簡化是必要的。
有相關文獻(Soo-Chang Pei and Jian-Jiun Ding, 2000)探討對於傅立葉變換相關之轉換族,包括離散餘弦轉換、離散正弦轉換、 離散哈特利轉換等之整數版本近似轉換,其轉換核係數並不牽涉到浮點數。整數轉換主要有幾個優點,首先對於一個運算的計算複雜度與需要的記憶體可以再加以縮減,尤其當輸入亦為整數時特別顯著,另一方面,由於不同的平台對於浮點數的精準度不一定相同,在跨平台的套用上,如果牽涉到浮點數的運算,則會有潛在錯誤的可能性。
在此提供八點離散哈特利轉換之整數近似轉換核如下:
結論
離散哈特利轉換為離散傅立葉變換之替代方案之一(其他包括離散餘弦轉換,離散正弦轉換,瓦西轉換,哈爾轉換等),可視為離散傅立葉變換之簡化版本,對於實數輸入可以產生實數的輸出,去除離散傅立葉變換需要複數計算之缺點,而且如此一來,因為不需要儲存虛部的資訊,記憶體的需求亦有所減少。此外因為正轉換與逆轉換有相當的一致性,架構設計簡單亦有許多相關算法提出。在輸入為實數時,可替代離散傅立葉變換進行頻譜分析與折積的計算,。 在不同的套用需求上,一般化離散哈特利轉換與其快速算法被提出,如欲進一步降低複雜度,亦有相關文獻討論如何產生近似離散哈特利轉換之整數離散哈特利轉換,使離散哈特利轉換對浮點數乘法的需求可以進一步去除。
相關條目
• 傅立葉變換
• 快速傅立葉變換