DFT, DHT, DCT, DST
Gonzalez R. C. and Woods R. E. Digital Image Processing (Forth Edition)
基本
酉变换
一维的变换:
\mathbf{f} = \mathbf{A}^{H} \mathbf{t}, \\
\mathbf{A}^H = {\mathbf{A}^*}^{T}, \mathbf{A}^H\mathbf{A} = \mathbf{I}.
\]
以及二维的变换:
\mathbf{F} = \mathbf{A}^H \mathbf{T} \mathbf{B}^*, \\
\mathbf{A}^H\mathbf{A=I}, \mathbf{B}^{T}\mathbf{B}^* =\mathbf{I}.
\]
以一维的为例, 实际上就是
\mathbf{s}_u = [s(0, u), s(1, u), \cdots, s(N-1, u)]^T.
\]
故
\]
others
\]
proof:
2\sin (\frac{x}{2}) \sum_{k=0}^n \sin (kx)
&=\sum_{k=0}^n [\cos (\frac{2k-1}{2}x) -\cos (\frac{2k+1}{2}x) ]\\
&= \cos(\frac{1}{2}x) - \cos (\frac{2n+1}{2}x).
\end{array}
\]
类似地
\]
proof:
2\sin (\frac{x}{2}) \sum_{k=0}^n \cos (kx)
&=\sum_{k=0}^n [\sin (\frac{2k+1}{2}x) -\sin (\frac{2k-1}{2}x) ]\\
&= \sin(\frac{2k+1}{2}x) + \sin (\frac{1}{2}x).
\end{array}
\]
Fourier-related Transforms
DFT
\]
\(\mathbf{s}_u^H \mathbf{s}_u = 1\)是显然的, 又注意到
\]
又
\]
由于
\]
DHT
DISCRETE HARTLEY TRANSFORM
\]
\cos (\frac{2\pi u'x}{N})
=\cos (\frac{2\pi (u-u')x}{N})
+\cos (\frac{2\pi (u+u')x}{N}) \\
2\sin (\frac{2\pi ux}{N})
\sin (\frac{2\pi u'x}{N})
=\cos (\frac{2\pi (u-u')x}{N})
-\cos (\frac{2\pi (u+u')x}{N}) \\
2\sin (\frac{2\pi ux}{N})
\cos (\frac{2\pi u'x}{N})
=\sin (\frac{2\pi (u+u')x}{N})
-\sin (\frac{2\pi (u-u')x}{N}) \\
\]
故想要证明其为标准正交基, 只需注意到:
=\frac{\cos(\frac{k\pi}{N}) - \cos (\frac{(2N-1)k\pi}{N})}{...},
\]
\(k\not=0\)的时候, 有
\]
故
\]
类似可得:
\]
正交性如此是易证明的, 实际上标准性是显然的.
DCT
DISCRETE COSINE TRANSFORM
\alpha (u) =
\left \{
\begin{array}{ll}
\sqrt{\frac{1}{N}}, & u=0, \\
\sqrt{\frac{2}{N}}, & u=1,2,\cdots, N-1. \\
\end{array}
\right .
\]
其标准正交的思路和DHT是如出一辙的.
与DFT的联系
- 定义
\left \{
\begin{array}{ll}
f(x), & x = 0, 1, \cdots, N-1, \\
f(2N-x-1), & u=N, N+1, \cdots, 2N-1. \\
\end{array}
\right .
\]
此时\(g(x) = g(2N-1-x)\);
- 计算DFT
\left [
\begin{array}{c}
\mathbf{t}_1 \\
\mathbf{t}_2 \\
\end{array}
\right ].
\]
- 定义
\mathbf{s} = [1 / \sqrt{2}, 1, 1, \cdots, 1]^T.
\]
\]
其中\(\mathrm{Re}\)表示实部, \(\circ\)表示逐项乘法.
证明是平凡的.
DST
DISCRETE SINE TRANSFORM
\]
与DFT的联系
- 定义
\left \{
\begin{array}{ll}
0, & x = 0, \\
f(x-1), & x = 1, \cdots, N, \\
0, & x = N + 1, \\
-f(2N-x+1), & u=N+1, \cdots, 2N+1. \\
\end{array}
\right .
\]
此时\(g(x) = -g(2N + 2 - x)\).
- DFT
\left [
\begin{array}{c}
0 \\
\mathbf{t}_1 \\
0 \\
\mathbf{t}_2 \\
\end{array}
\right ].
\]
\]
其中\(\mathrm{Imag}\)表虚部.
DFT, DHT, DCT, DST的更多相关文章
- 频域分辨率与DFT,DCT,MDCT理解
搞了这么久音频算法,有些细节还没有很清楚. 比如DFT和DCT有哪些区别,DFT系数为什么会是对称的,同样帧长的数据,各自的频域分辨率是多少? 今天决定搞清楚这些问题, 首先DFT的系数对称(2N点的 ...
- 【转】由DFT推导出DCT
原文地址:http://blog.sina.com.cn/s/blog_626631420100xvxd.htm 已知离散傅里叶变换(DFT)为: 由于许多要处理的信号都是实信号,在使用DFT时由于傅 ...
- FFTW中文参考
据说FFTW(Fastest Fourier Transform in the West)是世界上最快的FFT.为了详细了解FFTW以及为编程方便,特将用户手册看了一下,并结合手册制作了以下FFTW中 ...
- FFTW3学习笔记2:FFTW(快速傅里叶变换)中文参考
据说FFTW(Fastest Fourier Transform in the West)是世界上最快的FFT.为了详细了解FFTW以及为编程方便,特将用户手册看了一下,并结合手册制作了以下FFTW中 ...
- opencv 61篇
(一)--安装配置.第一个程序 标签: imagebuildincludeinputpathcmd 2011-10-21 16:16 41132人阅读 评论(50) 收藏 举报 分类: OpenCV ...
- FFTW简介及使用
http://fftw.org/ FFTW is a C subroutine library for computing the discrete Fourier transform (DFT) i ...
- C++开源库集合
| Main | Site Index | Download | mimetic A free/GPL C++ MIME Library mimetic is a free/GPL Email lib ...
- Discrete cosine transform(离散余弦转换)
A discrete cosine transform (DCT) expresses a finite sequence of data points in terms of a sum of co ...
- [转载] OpenCV2.4.3 CheatSheet学习(二)
二.矩阵操作(拷贝.洗牌.局部访问): src.copyTo(dst) 把src矩阵中的数据拷贝到dst. src.convertTo(dst, type,scale, shift) 缩放并转换到另外 ...
随机推荐
- Flink(一)【基础入门,Yarn、Local模式】
目录 一.介绍 Spark | Flink 二.快速入门:WC案例 pom依赖 批处理 流处理 有界流 无界流(重要) 三.Yarn模式部署 安装 打包测试,命令行(无界流) Flink on Yar ...
- flink-----实时项目---day07-----1.Flink的checkpoint原理分析 2. 自定义两阶段提交sink(MySQL) 3 将数据写入Hbase(使用幂等性结合at least Once实现精确一次性语义) 4 ProtoBuf
1.Flink中exactly once实现原理分析 生产者从kafka拉取数据以及消费者往kafka写数据都需要保证exactly once.目前flink中支持exactly once的sourc ...
- Linux:cp -rp
cp -rp[原文件或目录] [目标文件或目录] -r 复制目录 - p 保留文件属性 范例: cp -r /yy/k /yy/u /mm 复制目录u和目录k到目录mm中 cp -r /yy/ ...
- MyBatis常用批量方法
<!-- 批量添加派车单子表数据 --> <insert id="addBatch" parameterType="java.util.List&quo ...
- alert之后才执行
如果在正常情况下,代码要在alert之后才执行,解决办法:将要执行的代码用setTimeout延迟执行即可(原因:页面未加载完毕)
- 重量级&轻量级
重量级 就是说包的大小,还有就是与个人项目的耦合程度,重量级的框架与项目耦合程度大些 代表EJB容器的服务往往是"买一送三",不要都不行 轻量级 就是相对较小的包,当然与项目的耦合 ...
- 【Linux】【Basis】【RHEL】KickStart for RHEL6.8
1. 概念: 自动安装的脚本,这篇文章以RHEL6.8为例 kickstart for RHEL6.8官方教程:https://access.redhat.com/documentation/en-U ...
- GSS API
Detail:http://docs.oracle.com/cd/E24847_01/html/E22200/overview-61.html GSS-API 介绍 使用 GSS-API,程序员在编写 ...
- Python 字典是如何解决哈希冲突的
本文主要翻译自 so 上面的问题 Why can a Python dict have multiple keys with the same hash? 下 Praveen Gollakota 的答 ...
- APS高级计划排程系统和生产排产系统
一.什么是APS高级计划排程系统 APS高级计划与排程是解决生产排程和生产调度问题,常被称为排序问题或资源分配问题. 目前,市场逐步走向个性化.以销定产模式:生产逐步以多品种小批量形成存在.对于离散制 ...