DCT变换及matlab实现

1.一维DCT变换

一维的DCT变换共有8种,其中最实用的是第二种形式,公式如下:

DCT变换及matlab实现_第1张图片

其中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);
    end
    F(i+1)=a*sum;
end
F
FF=dct(in)

F是使用上面的公式进行变换,FF是用matlab自带的dct函数变换
计算结果

F =

   12.7279   -6.4423   -0.0000

你可能感兴趣的:(h.264)