Engee 文档

dct

离散余弦变换。

库::`工程师`

语法

函数调用

  • [参数:y]=dct(<参数:x>>) -返回输入数组的酉离散余弦变换 [参数:x]. 输出数组的大小 [参数:y] 匹配的大小 [参数:x]. 如果 [参数:x] 它有几个维度,功能 dct 对数组的第一维执行操作,该操作的大小较大 1.

争论

输入参数

# x — 输入数组

+ 向量资料 | 矩阵 | 一个N维数组

Details

指定为具有实数或复数值的向量、矩阵或多维数组的输入数组。

数据类型

漂浮物32, 漂浮64</无翻译> 支持复数::是

# n 是 转换的长度

+ 正整数标量

Details

变换的长度,指定为正整数标量。

数据类型

漂浮物32, 漂浮64</无翻译>

输出参数

# y 是 离散余弦变换

+ 向量资料 | 矩阵 | 一个N维数组

Details

作为实数或复数向量、矩阵或多维数组返回的离散余弦变换。

例子:

存储在PREP系数中的能量

Details

让我们确定DCT系数代表多少 99 序列中能量的%。

import EngeeDSP.Functions: dct, norm

x = (1:100) .+ 50 .* cos.((1:100) .* 2π / 40) .^ 3
X = dct(x)
XX = sort(abs.(X), rev = true)
ind = sortperm(abs.(X), rev = true)

i = 1
while (norm(X[ind[1:i]]) / norm(X))^2 < 0.99
   global i += 1
end
needed = i

让我们恢复信号并将其与原始信号进行比较。

import EngeeDSP.Functions: idct

X[ind[needed+1:end]] .= 0
xx = idct(X)

情节(1:100,x,标签="原始",传奇=:bottomright)
阴谋!(1:100,xx,label="重建,N=$需要")

dct 1

此外

离散余弦变换

Details

离散余弦变换(DCT)与离散傅立叶变换密切相关。 通常,仅使用几个PREP系数就可以非常精确地重构序列。 此属性对于需要数据处理的应用程序非常有用。

PREP有四个标准选项。 此功能仅实现DKP-2类型。 为信号 长度 和克朗克符号 转换的定义如下:

  • PREP-1:

  • PREP-2:

  • PREP-3:

  • PREP-4:

这些行是从 而不是通常的 由于 AnyMath 向量从 以前 ,不是从 以前 .

所有PREP变体都是_unitar_(或者,等价地,_orthogonal):要找到它们的反值,请交换它们 在每一个定义中。 DKP-1和DKP-4彼此相反。 DKP-2和DKP-3彼此相反。

文学作品

  1. Jain,A.K. _fundamentals Of Digital Image Processing。_恩格尔伍悬崖,NJ:普伦蒂斯-霍尔,1989.

  2. Oppenheim,Alan V.,Ronald W.Schafer和John R.Buck。 _实时信号处理。_第二版。 Upper Saddle River,NJ:Prentice Hall,1999。

  3. Pennebaker,W.B.和J.L.Mitchell。 _jpeg静止图像数据压缩标准。_纽约:Van Nostrand Reinhold,1993。