Re: [問題] Matlab dct.m 其實是作 DFT已回收

看板MATLAB作者 (熊熊)時間15年前 (2010/06/16 06:13), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串2/2 (看更多)
原來DCT可視為DFT的實部.... 感謝CCWck及bighead319的指點迷津, 小弟也找到參考文獻證實了兩位大大的解答。 再次感謝..... << Reference from Wiki >> 離散餘弦變換(DCT for Discrete Cosine Transform)是傳立葉變換相關的一種變換, 它類似於離散傳立葉變換(DFT for Discrete Fourier Transform)但只使用實數。 DCT相當於一個長度大概是它兩倍的DFT, 這個DFT變換是對一個實偶函數進行(因為一個實偶函數的FFT仍然是一個實偶函數).... << Reference form IEEE >> Transactions on signal processing, Vol.40 No.1 January 1992 Computation of an Odd-Length DCT form a Real-Value DFT of the Same Length. ...The DCT is often computed forma DFT of twise or four time the DCT length. DCT algorithms base on identicallength DFT algorithms generally require addition arithmetic operation to shift the phase of the DCT coefficients..... ※ 引述《AllenSale (熊熊)》之銘言: : 想請教版上高手; : 小弟要做DCT轉換函數時參考一下Matlab的內建函數"dct.m", : 在看了程式內容後發現原來裡面用的是DFT的作法, : 在我的概念裡DCT和DFT應該是不同的, : DCT是作餘弦轉換,而DFT是作傳立葉轉換, : 是我的關念有錯嗎?或是Matlab的內建函數寫錯了? : 另外,前不久在用Matlab的"rgb2hsv"時也發現類似的問題, : Matlab的"rgb2hsv"函數將亮度的值(Value)寫成取最大值 ==> max(max(a)); : 但亮度資訊不應該是(R+G+B)/3嗎? : 小弟初學若問得太淺請指教 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 122.126.133.193
文章代碼(AID): #1C5_iT99 (MATLAB)
文章代碼(AID): #1C5_iT99 (MATLAB)