下载此文档

离散余弦变换DCT及其C++实现.doc


文档分类:高等教育 | 页数:约2页 举报非法文档有奖
1/2
下载提示
  • 1.该资料是网友上传的,本站提供全文预览,预览什么样,下载就什么样。
  • 2.下载该文档所得收入归上传者、原创者。
  • 3.下载的文档,不会出现我们的网址水印。
1/2 下载此文档
文档列表 文档介绍
离散余弦变换(DCT)及其C++实现:定义:离散余弦是一种基于实数的正交变换。一维离散余弦的定义如下:式中,F(u)为第u个余弦变换系数,u为广义频率分量,f(x)为时域中N点序列,x=0,1,2,…N-1。对于二维的离散余弦变换的定义如下:基本算法二维的DCT可分解为两个一维的DCT,即现对图像信号(二维数据)的行进行一位DCT,然后再对列进行一维DCT。基本算法描述如下:求对行进行一位DCT的变换矩阵系数coefa求系数矩阵coefa的转置矩阵coefb用来对列进行一维DCT利用系数矩阵coefa和coefb对二维信号data先近行行变换,再进行列变换。快速算法利用快速傅立叶变换可以得到DCT的快速算法。首先,将f(x)进行延拓:按照上述定义,fe(x)的离散余弦变换为:式中,Re{}表示取复数的实部。由上式知,为fe(x)的2N点离散傅立叶变换。以此,对于快速离散余弦变换,可以把长度为N的序列f(x)的长度延拓为2N的序列fe(x),然后再对延拓的结果fe(x)进行离散傅立叶变换,最后取离散傅立叶变换的实部便是离散余弦变换的结果,完成快速的DCT。程序说明采用C++语言编写,共有三个函数:主函数voidmain()完成DCT变换;plex<double>*plex<double>*FD,intr)完成快速傅立叶变换;子函数voiddct(double*f,double*F,intr)完成快速DCT。参数说明见源程序注释。

离散余弦变换DCT及其C++实现 来自淘豆网m.daumloan.com转载请标明出处.

非法内容举报中心
文档信息
  • 页数2
  • 收藏数0 收藏
  • 顶次数0
  • 上传人1017848967
  • 文件大小38 KB
  • 时间2020-06-12