频域滤波—离散余弦变换

简介: 频域滤波—离散余弦变换

正文


离散余弦变换DCT


傅里叶变换的参数是复数,在数据的描述上相当于实数的两倍,若仅用实函数对称延拓成一个实偶函数,则其傅里叶变换也为实偶函数且仅包含余弦项,连续函数和离散函数的余弦变换都是基于这个原理。离散余弦变换是傅里叶变换的一个简化,本质上仍然是傅里叶变换,常常用在数据压缩中。


一维离散余弦变换

给定实信号序列{ f ( x ) ∣ x = 0 , 1 , . . . , N − 1 } ,可以按下列式将其延拓为偶对称序列


000000000.png

实函数延拓举例:

0000000.png

一维离散余弦变换定义为

00000.png


其中,x = 0 , 1 , . . . , N − 1;变换核C 0000.png

归一化参数000.png

表达为矩阵形式:

00.png

离散余弦变换的推导:


对实偶函数g ( x )x)求2 N点的一维傅里叶变换得:


0.png

二维离散余弦变换


实函数先做水平镜像再做垂直镜像,形成二维实偶函数:


1.png

二维离散余弦变换的定义:

2.png

其中,

3.png

变换核C 也称为离散余弦变换的基函数或者基图像,对于一幅8*8的图像,有64个基图像的线性组合表示


表达为矩阵形式为:

4.png


离散余弦变换的性质


1、可分离性


二维离散余弦变换的正反变换核是相同的,且可分离


8.png

2、离散余弦变换为实正交变换

9.png


3、存在快速变换算法

4、能集中高度相关的数据信息


7.png


二维离散余弦变换的频谱分布特点


二维离散余弦变换相当于对带有中心偏移的偶函数进行二维傅里叶变换,因此其谱域与傅里叶变换相比差一倍


6.png


离散余弦变换的应用


离散余弦变换主要应用于图像压缩,例如国际压缩标准JPEG格式中就用到了DCT变换,于DFT变换相似,DCT变换会将高频成分压缩多一点,低频成分压缩少一点,由于高频成分反应细节,因此虽然压缩后的图像质量下降了,但是对于人眼的感觉来说区别不大,充分利用了人眼分辨的局限性。


实例:

5.png

相关文章
|
机器学习/深度学习 编解码 人工智能
ICLR 2024:泛化递归Transformer,降低超分辨率复杂度
【2月更文挑战第16天】ICLR 2024:泛化递归Transformer,降低超分辨率复杂度
560 1
ICLR 2024:泛化递归Transformer,降低超分辨率复杂度
|
5月前
|
前端开发 程序员
墨刀原型图的原理、与UI设计图的区别及转换方法详解-卓伊凡|贝贝
墨刀原型图的原理、与UI设计图的区别及转换方法详解-卓伊凡|贝贝
511 24
墨刀原型图的原理、与UI设计图的区别及转换方法详解-卓伊凡|贝贝
|
敏捷开发 数据可视化 持续交付
带你读《SAFe 4.5参考指南:面向精益企业的规模化敏捷框架 》之一:SAFe基础
SAFe精益–敏捷领导者是终身学习者和老师,他们通过理解和展示精益–敏捷思维、SAFe原则和系统思考,帮助团队构建更好的系统。本书提供了一套在企业的投资组合、价值流、项目群和团队各个层面的完整的工作指南,包括构成框架的各种角色、活动和工件,以及价值观、理念、原则和实践的各种基本要素,并针对SAFe 4.5和SAFe 4.6进行了更新。
|
存储 运维 关系型数据库
开源新发布|PolarDB-X v2.4.1 增强企业级运维能力
PolarDB-X 是阿里云推出的云原生分布式数据库,自2021年10月开源以来,持续迭代升级,至2024年4月发布的v2.4.1版本,重点增强了企业级运维能力,如无锁变更、物理扩缩容、数据TTL等,提供金融级高可用、透明分布式、HTAP一体化等特性。PolarDB-X 支持集中式和分布式一体化形态,兼容MySQL生态,适用于金融、通信、政务等行业。
1973 101
|
缓存 监控 安全
“您与此网站建立的连接不安全”一招解决
当浏览器提示“您与此网站建立的连接不安全”时,通常表示该网站未使用HTTPS加密链接。解决方法包括:购买并安装SSL证书,强制HTTPS重定向,监控证书有效期,以及全面检查内容来源。普通用户可尝试更新浏览器、清除缓存和Cookies,或使用其他浏览器访问。但根本解决需网站管理员操作。
|
机器学习/深度学习 传感器 算法
行人闯红灯检测:基于计算机视觉与深度学习的智能交通解决方案
随着智能交通系统的发展,传统的人工交通违法判断已难以满足需求。本文介绍了一种基于计算机视觉与深度学习的行人闯红灯自动检测系统,涵盖信号灯状态检测、行人检测与跟踪、行为分析及违规判定与报警四大模块,旨在提升交通管理效率与安全性。
|
Android开发
通过反射方式获取Android设备系统属性
通过反射方式获取Android设备系统属性 【5月更文挑战第1天】
305 2
|
缓存 资源调度 JavaScript
秒懂Yarn:从安装到配置的全流程详解
**Yarn**是Facebook推出的JavaScript包管理器,旨在提供更快、更安全的依赖管理。它通过并行安装、离线模式、版本锁定和友好的命令行界面提升效率。要安装Yarn,可以使用npm、Homebrew或Chocolatey。基本命令包括初始化项目(`yarn init`)、安装/移除/升级依赖(`yarn add/remove/upgrade`)。配置Yarn涉及设置`.yarnrc`文件,如更改registry。通过`yarn.lock`文件保证依赖一致性。文章还提供了使用Yarn进行API测试和项目管理的实战案例。
689 0
|
机器学习/深度学习 数据可视化 PyTorch
利用PyTorch实现基于MNIST数据集的手写数字识别
利用PyTorch实现基于MNIST数据集的手写数字识别
453 2
|
算法 编译器 C语言
if else 和 switch的效率
switch在判断分支时,没有判断所有的可能性,而是用一个静态表来解决这个问题,所以速度要比if-else快。 但是,switch对较复杂的表达式进行判断,所以当我们需要判断一些简单数值时,用switch较好。
3757 0

热门文章

最新文章