您的位置:首页 > 编程语言 > MATLAB

Matlab计算二维(逆)离散余弦变换(DCT,IDCT)

2017-06-13 00:00 417 查看
dct2(x)用于计算二维的DCT,idct2(x)用于计算二维的IDCT

dctmtx(x) 用于生成 x 维的离散余弦变换矩阵

mcu=
139   144   149   153   155   155   155   155
144   151   153   156   159   156   156   156
150   155   160   163   158   156   156   156
159   161   162   160   160   159   159   159
159   160   161   162   162   155   155   155
161   161   161   161   160   157   157   157
162   162   161   163   162   157   157   157
162   162   161   161   163   158   158   158

dct2(mcu)

ans =

1.0e+03 *

1.2596   -0.0010   -0.0121   -0.0052    0.0021   -0.0017   -0.0027    0.0013
-0.0226   -0.0175   -0.0062   -0.0032   -0.0029   -0.0001    0.0004   -0.0012
-0.0109   -0.0093   -0.0016    0.0015    0.0002   -0.0009   -0.0006   -0.0001
-0.0071   -0.0019    0.0002    0.0015    0.0009   -0.0001   -0.0000    0.0003
-0.0006   -0.0008    0.0015    0.0016   -0.0001   -0.0007    0.0006    0.0013
0.0018   -0.0002    0.0016   -0.0003   -0.0008    0.0015    0.0010   -0.0010
-0.0013   -0.0004   -0.0003   -0.0015   -0.0005    0.0017    0.0011   -0.0008
-0.0026    0.0016   -0.0038   -0.0018    0.0019    0.0012   -0.0006   -0.0004

dct = dctmtx(8)

dct =

0.3536    0.3536    0.3536    0.3536    0.3536    0.3536    0.3536    0.3536
0.4904    0.4157    0.2778    0.0975   -0.0975   -0.2778   -0.4157   -0.4904
0.4619    0.1913   -0.1913   -0.4619   -0.4619   -0.1913    0.1913    0.4619
0.4157   -0.0975   -0.4904   -0.2778    0.2778    0.4904    0.0975   -0.4157
0.3536   -0.3536   -0.3536    0.3536    0.3536   -0.3536   -0.3536    0.3536
0.2778   -0.4904    0.0975    0.4157   -0.4157   -0.0975    0.4904   -0.2778
0.1913   -0.4619    0.4619   -0.1913   -0.1913    0.4619   -0.4619    0.1913
0.0975   -0.2778    0.4157   -0.4904    0.4904   -0.4157    0.2778   -0.0975

idct = dct'

idct =

0.3536    0.4904    0.4619    0.4157    0.3536    0.2778    0.1913    0.0975
0.3536    0.4157    0.1913   -0.0975   -0.3536   -0.4904   -0.4619   -0.2778
0.3536    0.2778   -0.1913   -0.4904   -0.3536    0.0975    0.4619    0.4157
0.3536    0.0975   -0.4619   -0.2778    0.3536    0.4157   -0.1913   -0.4904
0.3536   -0.0975   -0.4619    0.2778    0.3536   -0.4157   -0.1913    0.4904
0.3536   -0.2778   -0.1913    0.4904   -0.3536   -0.0975    0.4619   -0.4157
0.3536   -0.4157    0.1913    0.0975   -0.3536    0.4904   -0.4619    0.2778
0.3536   -0.4904    0.4619   -0.4157    0.3536   -0.2778    0.1913   -0.0975

ans = dct * mcu * idct

ans =

1.0e+03 *

1.2596   -0.0010   -0.0121   -0.0052    0.0021   -0.0017   -0.0027    0.0013
-0.0226   -0.0175   -0.0062   -0.0032   -0.0029   -0.0001    0.0004   -0.0012
-0.0109   -0.0093   -0.0016    0.0015    0.0002   -0.0009   -0.0006   -0.0001
-0.0071   -0.0019    0.0002    0.0015    0.0009   -0.0001   -0.0000    0.0003
-0.0006   -0.0008    0.0015    0.0016   -0.0001   -0.0007    0.0006    0.0013
0.0018   -0.0002    0.0016   -0.0003   -0.0008    0.0015    0.0010   -0.0010
-0.0013   -0.0004   -0.0003   -0.0015   -0.0005    0.0017    0.0011   -0.0008
-0.0026    0.0016   -0.0038   -0.0018    0.0019    0.0012   -0.0006   -0.0004
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  MATLAB DCT IDCT