DCT算法.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
DCT算法

VOID ? WINAPI ? DCT(double ? *dpf, ? double ? *dpF, ? int ? r) ? ? { ? ? double ? PI ? = ? 3.1415926; ? ? // ? 离散余弦变换点数 ? ? LONG lNum; ?? ? // ? 循环变量 ? int i; ?? ? // ? 中间变量 ?? double dTemp; ? ? complexdouble ? *comX; ?? ?// ? 离散余弦变换点数 ?? lNum ? = ? 1r; ? // ? 分配内存 ?? comX ? = ? new ? complexdouble[lNum*2]; ? // ? 赋初值0 ?? memset(comX, ? 0, ? sizeof(complexdouble) ? * ? lNum ? * ? 2); ?? ? // ? 将时域点转化为复数形式 ?? for(i=0;ilNum;i++) ? ? { ?? comX[i] ? = ? complexdouble ? (dpf[i], ? 0); ? ? } ?? ? // ? 调用快速付立叶变换 ?? FFT_1D(comX,comX,r+1); ? ? ?? // ? 调整系数 ?? dTemp ? = ? 1/sqrt(lNum); ?? ? ? // ? 求dpF[0] ?? dpF[0] ? = ? comX[0].real() ? * ? dTemp; ?? ? ? dTemp ? *= ? sqrt(2); ? ? ?? // ? 求dpF[u] ?? for(i ? = ? 1; ? i ? ? lNum; ? i++) ? ? { ? ? dpF[i]=(comX[i].real() ? * ? cos(i*PI/(lNum*2)) ? ? + ? comX[i].imag() ? * ? sin(i*PI/(lNum*2))) ? * ? dTemp; ?? } ?? ? ? // ? 释放内存 ?? ? ? ? ? delete ? comX; ? ? } ? ? ??? VOID ? WINAPI ? FFT_1D(complexdouble ? * ? pCTData, ? complexdouble ? * ? pCFData, ? int ? nLevel) ? ? { ? ? int i; ? ? int ? j; ? ? int? k; ? ? ?? double ? PI ? = ? 3.1415926; ? ? ?? int nCount ? =0 ? ; ?? ? nCount ? =(int)pow(2,nLevel) ? ; ?? ? int nBtFlyLen; ? ? nBtFlyLen ? = ? 0 ? ; ?? ? double dAngle; ?? ? complexdouble ? *pCW ? ; ?? ? pCW ? ? = ? new ? complexdouble[nCount ? / ? 2];? ? ? for(i ? = ? 0; ? i ? ? nCount ? / ? 2; ? i++) ? ? { ? ? dAngle ? = ? -2 ? * ? PI ? * ? i ? / ? nCount; ? ? pCW[i] ? = ? complexdouble ? ( ? cos(dAngle), ? sin(dAngle) ? ); ? ? } ? ?? complexdouble ? *pCWork1,*pCWork2; ? ? ? ?? pCWork1 ? = ? new ? complexdouble[nCount]; ?? ? pCWork2 ? = ? new ? complexdouble[nCount]; ?? ? complexdouble ? *pCTmp; ?? ? memcpy(pCWork1, ? pCTData, ? sizeof(complexdouble) ? * ? nCount); ? ? ?? int ? nInter; ? ? ? nInter ? = ? 0; ?? ? ? for(k ? = ? 0; ? k ? ? nLevel; ? k++)? { ?? for(j ? = ? 0; ? j ? ? (int)pow(2,k); ? j++) ? ? { ?? ? nBtFlyLen ? = ? (int)pow( ? 2,(nLevel-k) ? );? ? ? for(i ? = ? 0; ? i ? ? nBtFlyLen/2; ? i++) ? ? { ? ?

文档评论(0)

taotao0b + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档