DCT变换及matlab实现
来源:互联网 发布:19岁网络女主播萱萱 编辑:程序博客网 时间:2024/05/17 11:59
1.一维DCT变换
一维的DCT变换共有8种,其中最实用的是第二种形式,公式如下:
其中c(u)是加上去一个系数,为了能使DCT变换矩阵成为正交矩阵,在后面二维变换将看到他的作用。N是f(x)的总数。相比其他几种形式,他的运算还是比较简单的,因此也用的比较广。
clcclearin=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;endFFF=dct(in)
F是使用上面的公式进行变换,FF是用matlab自带的dct函数变换
计算结果
F = 12.7279 -6.4423 -0.0000 -0.6735 0 -0.2009 -0.0000 -0.0507FF = 12.7279 -6.4423 0 -0.6735 0 -0.2009 0 -0.0507
2.二维DCT变换
二维DCT变换是在一维的基础上再进行一次DCT变换,这个比较好理解,直接看公式:
这里我只讨论两个N相等的情况,也就是数据是方阵的形式,在实际应用中对不是方阵的数据都是先补齐再进行变换的。为了matlab仿真方便点,写成矩阵形式:
matlab程序如下:
clear;clc;N=4;X =[26 18 87 85; 80 26 58 62; 43 15 55 35; 91 14 14 51];A=zeros(N);for i=0:N-1 if i==0 c=sqrt(1/N); else c=sqrt(2/N); end for j=0:N-1 A(i+1,j+1)=c*cos(pi*(j+0.5)*i/N); endendD=A*X*A'DD=dct2(X)
http://www.cnblogs.com/xkfz007/archive/2012/07/31/2616791.html
0 0
- DCT变换及matlab实现
- matlab实现图像DCT变换
- DCT(discrete cosine transform)离散余弦变换及matlab实现
- matlab实现离散余弦变换(DCT)
- DCT变换(matlab)
- DCT变换编码及C语言实现
- DCT变换编码及C语言实现
- Matlab数字图像处理:DCT变换
- 二维DCT变换的实现
- 基于DCT的图像压缩及Matlab实现
- MATLAB DCT变换原理和源码
- 【matlab】基于DCT变换的数字水印
- DCT变换
- DCT变换
- DCT变换
- DCT变换
- dct变换
- DCT变换
- Unity3D的断点调试功能
- csv模块学习:Python学习笔记—CSV模块读写数据
- POJ2411 状态压缩DP
- Eclipse功能键大全
- 1对n的条件筛选
- DCT变换及matlab实现
- linux VIM/VI的工作模式
- Android内存溢出整理总结
- Mac上 Intellij 13配置tomcat7
- mkswap
- html+css----基本介绍
- 苹果(nyoj 289)
- 题目133:子序列。
- CF:391F1 - Stock Trading 动规DP