搞了這麼久音頻算法,有些細節尚未很清楚。算法
好比DFT和DCT有哪些區別,DFT係數爲何會是對稱的,一樣幀長的數據,各自的頻域分辨率是多少?函數
今天決定搞清楚這些問題,編碼
首先DFT的係數對稱(2N點的數據作DFT,變換系數關於N點位置對稱)是由於DFT的的變換基是對0~2π分析的,由於0到π和π到2π對稱因此會對稱。能夠參見DFT公式
spa
而DCT的係數就不會對稱(2N點的數據作DCT,變換系數不對稱)是由於DCT的變換基是對0~π分析的,故不會存在變換關係,可參加DCT變換。(以DCT2型爲例子)3d
DCT和DFT比較blog
再引用wikipedia上對DCT的解釋ip
注意裏面的解釋:DCT至關於一個長度是他兩倍的實偶函數DFT。那麼下面的問題來了,一樣長度N的信號作DCT和DFT,各自的頻域分辨率是多少。音頻
注意,引用
上面引用給出另外兩個引伸,im
第一:DST至關於一個長度是它兩倍的實奇函數DFT。
第二:MDCT至關於對交疊的數據進行DCT。
第二類問題:
對採樣率爲f hz的信號進行長度爲2N的DFT分析它的頻域分辨率是多少,第2N個信號表示多少hz:
答案:分辨率是f/2N。獲得的第2N個頻域係數,他表明的2π,也就是f Hz的信號。
對採樣率爲f hz的信號進行長度爲2N的MDCT分析它的頻域分辨率是多少,第N個信號表示多少hz(注意MDCT的輸入是輸出的2倍):
答案:分辨是是f/2N。獲得的第N個頻域係數,他表明的π,也就是f/2 Hz的信號。
對採樣率爲f hz的信號進行長度爲2N的DCT分析它的頻域分辨率是多少,,第2N個信號表示多少hz:
答案:分辨是是f/2N。獲得的第2N個頻域係數,他表明的π,也就是f/2 Hz的信號。
藍色:表示注意。
紅色:表示不肯定。
紅色的部分我不確認我分析的結果,但願有人能給些幫助。
本文不含MDCT,MLT和DCT的詳細區別,編碼特性等等,尤爲是針對MLT和MDCT建議查閱Malvar的論文。有時間另將分析。