DCT變換及matlab實現

2021-06-20 14:05:39 字數 558 閱讀 7125

一維的dct變換共有8種,其中最實用的是第二種形式,公式如下:

其中c(u)是加上去乙個係數,為了能使dct變換矩陣成為正交矩陣,在後面二維變換將看到他的作用。n是f(x)的總數。相比其他幾種形式,他的運算還是比較簡單的,因此也用的比較廣。

clc

clear

in=1:8;

n=8;

for i=0:n-1

if i==0

a=sqrt(1/n);

else

a=sqrt(2/n);

end 

sum=0;

for j=0:n-1     

sum=sum+in(j+1)*cos(pi*(j+0.5)*i/n);

endf(i+1)=a*sum;

endf

ff=dct(in)

f是使用上面的公式進行變換,ff是用matlab自帶的dct函式變

DCT變換編碼及C語言實現

離散余弦變換 discrete cosine transform,簡稱dct變換 是一種與傅利葉變換緊密相關的數 算。在傅利葉級數展開式中,如果被展開的函式是實偶函式,那麼其傅利葉級數中只包含余弦項,再將其離散化可匯出余弦變換,因此稱之為離散余弦變換。3 具有較強的抗干擾能力,傳輸過程中的誤碼對影象...

DCT 變換(幾個簡單的MATLAB的例子)

example 1 use real image a imread class f.png imshow a a is unit8 0,255 c dct2 a 進行余弦變換 figure b log abs c imshow b colormap jet 64 顯示為64級灰度 colorbar ...

DCT變換和DFT變換

這裡我只談論二維的dft變換,有關一維的dft,請檢視一下部落格,裡面有詳細介紹 根據上面的公式,我們可以得到對應的離散傅利葉變換呃 下面是matlab版本的 和公式 12 是一一對應的,時間複雜度為 mn 2,通常記成n 4,因此對於乙個512 512的來說,計算量就已經很大了,更不用說別的高解析...