dct
离散余弦变换。
库::`工程师`
例子:
存储在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=$需要")
此外
离散余弦变换
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彼此相反。