【 MATLAB 】信号处理工具箱之 dct 简介及案例分析

举报
李锐博恩 发表于 2021/07/15 05:56:58 2021/07/15
【摘要】 dct Discrete cosine transform Syntax y = dct(x) y = dct(x,n) y = dct(x,n,dim) y = dct(___,'Type',dcttype) Description y = dct(x)返回输入数组x的酉离散余弦变换。 输出y的大小与x相同。 如果x具有多个维度,则dct沿第一个数组维度...

dct

Discrete cosine transform


Syntax

y = dct(x)

y = dct(x,n)

y = dct(x,n,dim)

y = dct(___,'Type',dcttype)


Description

y = dct(x)返回输入数组x的酉离散余弦变换。 输出y的大小与x相同。 如果x具有多个维度,则dct沿第一个数组维度运行,其大小大于1。

y = dct(x,n)在转换之前将x的相关维度填充或截断为长度n。

y = dct(x,n,dim)计算沿维度dim的变换。 要输入维度并使用默认值n,请将第二个参数指定为空,[]。

y = dct(___,'Type',dcttype)指定要计算的离散余弦变换的类型。 有关详细信息,请参见离散余弦变换。 此选项可以与任何以前的语法结合使用。


Discrete Cosine Transform

离散余弦变换(DCT)与离散傅立叶变换密切相关。 您通常可以从几个DCT系数非常精确地重建序列。 此属性对需要数据减少的应用程序很有用。

DCT有四种标准型号。 对于长度为N的信号x,以及具有δkℓ的Kronecker delta,变换由下式定义:

该系列从n = 1和k = 1索引,而不是通常的n = 0和k = 0,因为MATLAB®向量从1到N而不是从0到N - 1。

DCT的所有变体都是单一的(或等效地,正交):要找到它们的反转,在每个定义中切换k和n。 特别地,DCT-1和DCT-4是它们自己的逆,并且DCT-2和DCT-3是彼此相反的。


Energy Stored in DCT Coefficients

找出有多少DCT系数代表序列中99%的能量。


  
  1. clc
  2. clear
  3. close all
  4. % Find how many DCT coefficients represent 99% of the energy in a sequence.
  5. x = (1:100) + 50*cos((1:100)*2*pi/40);
  6. X = dct(x);
  7. [XX,ind] = sort(abs(X),'descend');
  8. i = 1;
  9. while norm(X(ind(1:i)))/norm(X) < 0.99
  10. i = i + 1;
  11. end
  12. needed = i;
  13. % Reconstruct the signal and compare it to the original signal.
  14. X(ind(needed+1:end)) = 0;
  15. xx = idct(X);
  16. plot([x;xx]')
  17. legend('Original',['Reconstructed, N = ' int2str(needed)], ...
  18. 'Location','SouthEast')

得到:

 

上面这个例子中用到了下面博文中的知识点:

【 MATLAB 】norm ( Vector and matrix norms )(向量范数以及矩阵范数)

【 MATLAB 】范数的必备基础知识

【 MATLAB 】sort ( Sort array elements )

 

 

文章来源: reborn.blog.csdn.net,作者:李锐博恩,版权归原作者所有,如需转载,请联系作者。

原文链接:reborn.blog.csdn.net/article/details/83117706

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。