首先我们列出离散傅里叶变换与离散余弦变换的公式:

离散傅里叶变换

正变换:
F ( u ) = ∑ x = 0 N f ( x ) e − j 2 π u x N , u = 0 , 1 , … , N − 1 F(u)=\sum^{N}_{x=0}f(x)e^{-j2\pi\frac{ux}{N}},\ u=0,1,\ \dots\ ,N-1 F(u)=x=0∑N​f(x)e−j2πNux​, u=0,1, … ,N−1

反变换:
f ( x ) = 1 N ∑ x = 0 N F ( u ) e j 2 π u x N , x = 0 , 1 , … , N − 1 f(x)=\frac{1}{N}\sum^{N}_{x=0}F(u)e^{\ j2\pi\frac{ux}{N}},\ x=0,1,\ \dots\ ,N-1 f(x)=N1​x=0∑N​F(u)e j2πNux​, x=0,1, … ,N−1

离散余弦变换

正变换:
F ( u ) = α ( u ) ∑ x = 0 N − 1 f ( x ) c o s ( 2 x + 1 ) u π 2 N , u = 0 , 1 , … , N − 1 F(u)=\alpha(u) \sum^{N-1}_{x=0}f(x)cos\frac{(2x+1)u\pi}{2N},\ u=0,1,\ \dots\ ,N-1 F(u)=α(u)x=0∑N−1​f(x)cos2N(2x+1)uπ​, u=0,1, … ,N−1

反变换:
f ( x ) = ∑ u = 0 N − 1 α ( u ) F ( u ) c o s ( 2 x + 1 ) u π 2 N , x = 0 , 1 , … , N − 1 f(x)=\sum^{N-1}_{u=0}\alpha(u)F(u)cos\frac{(2x+1)u\pi}{2N},\ x=0,1,\ \dots\ ,N-1 f(x)=u=0∑N−1​α(u)F(u)cos2N(2x+1)uπ​, x=0,1, … ,N−1

其中
α ( u ) = { 1 N , u = 0 2 N , u ≠ 0 \alpha(u)= \begin{cases} \sqrt{\frac{1}{N}}\ , & u=0 \\ \sqrt{\frac{2}{N}}\ , & u \ne 0 \end{cases} α(u)=⎩⎨⎧​N1​ ​ ,N2​ ​ ,​u=0u​=0​
离散余弦变换其实是对原信号经一定处理后产生新信号的离散傅里叶变换。从原始信号到新信号的变换过程如下图所示。


原始信号(蓝)先做对称(红)再平移 1/2 个单位后得到新信号。如果把原信号作为 f ( x ) f(x) f(x),那么新信号为 g ( x ) = f ( x − 1 2 ) + f ( − x − 1 2 ) g(x)=f(x-\frac{1}{2})+f(-x-\frac{1}{2}) g(x)=f(x−21​)+f(−x−21​)。

在证明对新信号的离散傅里叶变换就是对原信号的离散余弦变换之前,我们先对傅里叶变换公式进行一些处理,我们把公式前面的系数重新分配一下。这样做会改变正变换的结果,但不会对反变换的结果造成影响,也就是说依然能够还原出正确的 f ( x ) f(x) f(x)。(其实怎么改都无所谓,只要系数乘积结果相同就行)

正变换:
F ( u ) = 1 N ∑ x = 0 N f ( x ) e − j 2 π u x N , u = 0 , 1 , … , N − 1 F(u)=\frac{1}{\sqrt{N}}\sum^{N}_{x=0}f(x)e^{-j2\pi\frac{ux}{N}},\ u=0,1,\ \dots\ ,N-1 F(u)=N ​1​x=0∑N​f(x)e−j2πNux​, u=0,1, … ,N−1

反变换:
f ( x ) = 1 N ∑ x = 0 N F ( u ) e j 2 π u x N , x = 0 , 1 , … , N − 1 f(x)=\frac{1}{\sqrt{N}}\sum^{N}_{x=0}F(u)e^{\ j2\pi\frac{ux}{N}},\ x=0,1,\ \dots\ ,N-1 f(x)=N ​1​x=0∑N​F(u)e j2πNux​, x=0,1, … ,N−1

下面开始证明。

证明

原始信号范围为 0 , 1 , … , N − 1 0, 1, \ \dots \ ,N-1 0,1, … ,N−1,新信号的范围为 − N + 1 2 , − N + 3 2 , … , N − 1 2 -N+\frac{1}{2}, -N+\frac{3}{2},\ \dots\ ,N-\frac{1}{2} −N+21​,−N+23​, … ,N−21​,故对信号的傅里叶变换为:
F ( u ) = 1 2 N ∑ x = − N + 1 2 N − 1 2 g ( x ) e − j 2 π u x 2 N = 1 2 N ∑ x = − N + 1 2 N − 1 2 g ( x ) [ c o s 2 π u x 2 N − j s i n 2 π u x 2 N ] 【 g ( x ) 偶 函 数 , s i n 奇 函 数 , 乘 积 后 求 和 为 0 】 = 1 2 N ∑ x = − N + 1 2 N − 1 2 g ( x ) c o s 2 π u x 2 N 【 g ( x ) 偶 函 数 , c o s 偶 函 数 , 乘 积 后 求 和 为 2 倍 正 半 轴 部 分 】 = 2 N ∑ x = 1 2 N − 1 2 f ( x − 1 2 ) c o s 2 π u x 2 N = 2 N ∑ x = 0 N − 1 f ( x ) c o s 2 π u ( x + 1 2 ) 2 N = 2 N ∑ x = 0 N − 1 f ( x ) c o s ( 2 x + 1 ) u π 2 N \begin{aligned} F(u) & = \frac{1}{\sqrt{2N}}\sum^{N-\frac{1}{2}}_{x=-N+\frac{1}{2}}g(x)e^{-j2\pi\frac{ux}{2N}} \\ & = \frac{1}{\sqrt{2N}}\sum^{N-\frac{1}{2}}_{x=-N+\frac{1}{2}}g(x)\bigg[cos\frac{2\pi ux}{2N}-jsin\frac{2\pi ux}{2N}\bigg]\ 【g(x) 偶函数,sin 奇函数,乘积后求和为 0】\\ & = \frac{1}{\sqrt{2N}}\sum^{N-\frac{1}{2}}_{x=-N+\frac{1}{2}}g(x)cos\frac{2\pi ux}{2N} \ 【g(x) 偶函数,cos 偶函数,乘积后求和为 2 倍正半轴部分】 \\ & = \sqrt\frac{2}{N}\sum^{N-\frac{1}{2}}_{x=\frac{1}{2}}f(x-\frac{1}{2})cos\frac{2\pi ux}{2N} \\ & = \sqrt\frac{2}{N}\sum^{N-1}_{x=0}f(x)cos\frac{2\pi u(x+\frac{1}{2})}{2N} \\ & = \sqrt\frac{2}{N}\sum^{N-1}_{x=0}f(x)cos\frac{(2x+1)u\pi}{2N} \end{aligned} F(u)​=2N ​1​x=−N+21​∑N−21​​g(x)e−j2π2Nux​=2N ​1​x=−N+21​∑N−21​​g(x)[cos2N2πux​−jsin2N2πux​] 【g(x)偶函数,sin奇函数,乘积后求和为0】=2N ​1​x=−N+21​∑N−21​​g(x)cos2N2πux​ 【g(x)偶函数,cos偶函数,乘积后求和为2倍正半轴部分】=N2​ ​x=21​∑N−21​​f(x−21​)cos2N2πux​=N2​ ​x=0∑N−1​f(x)cos2N2πu(x+21​)​=N2​ ​x=0∑N−1​f(x)cos2N(2x+1)uπ​​

这里结果已经非常接近了,但是原始离散余弦变换公式中有一个 α ( u ) \alpha(u) α(u),其在 u ≠ 0 u \ne 0 u​=0 时与推导中的结果相同,但是在 u = 0 u=0 u=0 时不同,这是为了满足正交变换核也就是基函数在不同 u u u 下对 x x x 求和结果都为 1。如果有需要的同学,可以在评论区中告诉我,我再进行后续补充证明。

现在,我们知道离散余弦变换其实就是一种特殊的傅里叶变换,大部分傅里叶变换的性质在离散余弦变换中都是能够使用的,而离散余弦变换因为不涉及虚部计算,相比傅里叶变换计算量少了一倍,计算速度也更快,因此在大多数场景下,我们会优先考虑使用离散余弦变换。在上一篇文章中我提到了 利用傅里叶的时域(空域)卷积定理进行图像滤波,那么离散余弦变换是否也能使用时域卷积定理并应用在图像滤波中呢,请见我下一篇文章 利用离散余弦的时域(空域)卷积定理进行图像滤波。

从离散傅里叶变换到离散余弦变换 —— 公式证明相关推荐

  1. 傅里叶变换、离散余弦变换、拉普拉斯变换、Z变换

    图像的变换 图像的傅里叶变换(平移后)数据在频域中心,离散余弦变换以后频率域平均值数据都在左上角.所以在滤波时使用傅里叶变换,图像压缩时使用离散余弦变换.变换后的图像,低频部分反应图像平滑度(概貌特性 ...

  2. 【MATLAB】图像变换(傅里叶变换、离散余弦变换)

    目录 1.实验目的和要求 2.实验内容及过程 3.实验结果及分析

  3. 【matlab 图像处理】离散傅里叶变换离散余弦变换K-L变换小波变换

    [matlab 图像处理]离散傅里叶变换&离散余弦变换&K-L变换&小波变换 正交变换是信号处理的一种有效工具.图像信号不仅可以在空间域表示,也可以在频域表示,后者将有利于许多 ...

  4. 离散余弦变换滤波算法(DCT)

    离散余弦变换滤波算法(DCT) 之前介绍的所有滤波算法都是空间域滤波算法(即2D滤波算法),今天来介绍一下频率域滤波算法,之后还会介绍时间域滤波算法(即3D滤波算法),敬请期待. 时间域相对于空间域增 ...

  5. 图像离散余弦变换(含python代码)

    目录 前言 理论准备 离散余弦变换与傅里叶变换的区别 离散余弦变换的适用性 代码实现 如果不进行数据类型转换float32,就会报错 显示dct变换过程中图像数据变化 压缩和压缩恢复变化 前言 在阅读 ...

  6. 离散余弦变换和离散傅里叶变换

    DCT(离散余弦变换):DCT(离散余弦变换):DCT(离散余弦变换): X[u,m]=∑u=0N−1∑m=0N−1x[u,m]∗c[u,m]X[u,m]=\sum\limits_{u=0}^{N-1 ...

  7. 压缩感知稀疏基之离散余弦变换(DCT)和离散正弦变换(DST)

    题目:压缩感知稀疏基之离散余弦变换(DCT)和离散正弦变换(DST) 在前面一篇<压缩感知的常见稀疏基名称及离散傅里叶变换基>中集结了九篇压缩感知文献中有关稀疏基名称,并且直白地告诉大家稀 ...

  8. 基于离散余弦变换(DCT)傅里叶变换(DFT)小波变换(DWT)的彩色图像数字水印的嵌入、提取简介及MATLAB实现

    一.引言 该篇包括三部分,1)引言.2)图像变化技术简介和代码实现 .3)基于图像变换技术的数字水印技术及代码实现. 数字水印是一种有效的数字产品版权保护和数据安全维护技术, 是信息隐藏领域的一个重要 ...

  9. 离散余弦变换java实现_离散余弦变换(含源码)

    图像处理中常用的正交变换除了傅里叶变换外,还有其他一些有用的正交变换,其中离散余弦就是一种.离散余弦变换表示为DCT( Discrete Cosine Transformation),常用于图像处理和 ...

最新文章

  1. 阿里 mysql 架构_阿里java架构教你怎么用mysql怒怼面试官
  2. strstr和strcchr查找字符串和区别
  3. 终于学会上传图片了\( ̄︶ ̄*\))
  4. 计算邮资(信息学奥赛一本通-T1052)
  5. 4.1 SE38数据类型
  6. winCE DEBUGZONE
  7. 【劲峰论道时空分析技术-学习笔记】3 时空演化树
  8. iOS--利用Fastlane实现自动化打包
  9. 黑客常备十大编程语言,每一个都不容易学,但每一个又很有用
  10. Python和Excel的完美结合:常用操作汇总(案例详析)
  11. python 离散点 等高线_飞时达软件离散点高程、等高线高程、特征线高程等检查与处理...
  12. Silverlight 2.“.NET研究”5D RPG游戏技巧与特效处理:(二)纸娃娃系统
  13. 基于51单片机+LD3320语音模块+SYN6288语音合成——语音识别智能分类垃圾桶
  14. Unity 关于制作UV动画,模拟管路气路流向示意图
  15. 苹果html 闪退,苹果打开软件闪退是怎么回事_苹果手机一打开软件就闪退如何解决-win7之家...
  16. js 迅雷 批量下载
  17. android应用市场汇总
  18. 摄像头测心率(python)
  19. 搭建IIS文件服务器
  20. 微信运营:自媒体人必须知道的20个自媒体平台

热门文章

  1. 光的干涉衍射计算机模拟仿真技术,光学衍射和干涉现象的计算机仿真.doc
  2. WSUS(Windows Server Update Services)注册表配置
  3. 接触网的异物入侵 和卡尔曼的异物检测系统
  4. STM32系统时钟设置,采用外部有源晶振相关配置问题
  5. 扫拖一体洗地机哪个品牌好、家用洗地机品牌介绍
  6. Python 基于python实现ADSL宽带帐号,密码的获取及宽带拨号
  7. linux文件的权限已经是777了但是还是没有写入权限
  8. 为什么比你优秀比你成功的人,还比你更努力?
  9. 心电图知识学习(2)
  10. 苏黎世联邦理工计算机科学,苏黎世联邦理工学院的计算机科学界人士在编程语言领域取得了重要突破...