如何从 DCT 系数计算信号的 "energy"?
How to calculate the "energy" of a signal from DCT coefficients?
我想计算由 n 最大 DCT(离散余弦变换)系数表示的二维 signal/image 的能量比例。
我找到的是这个,但是我不太明白为什么我只能使用L2范数。我也没有找到它的其他来源。
X = dct(x);
[XX,ind] = sort(abs(X),'descend');
i = 1;
while norm(X(ind(1:i)))/norm(X) < 0.99
i = i + 1;
end
假设 DCT 是正交变换,即基的每个向量都被归一化,并且与所有其他向量不相关。
如果两个向量x[i], x[j]不相关则表示能量(a[i] * x[i] + a[i] * x[i])是向量的能量个别部分 (a1 * x1) 和 (a2 * x2).
如果 x[i] 被归一化意味着 a[i] * x[i] 的能量就是 a[i]**2.
结合这两件事,你得出结论:总和 a[i] * x[i] 的能量就是总和 a[i]**2。
这就是为什么您可以简单地使用任何正交基中系数的 L2 范数来计算信号的 L2 范数。
我想计算由 n 最大 DCT(离散余弦变换)系数表示的二维 signal/image 的能量比例。
我找到的是这个,但是我不太明白为什么我只能使用L2范数。我也没有找到它的其他来源。
X = dct(x);
[XX,ind] = sort(abs(X),'descend');
i = 1;
while norm(X(ind(1:i)))/norm(X) < 0.99
i = i + 1;
end
假设 DCT 是正交变换,即基的每个向量都被归一化,并且与所有其他向量不相关。
如果两个向量x[i], x[j]不相关则表示能量(a[i] * x[i] + a[i] * x[i])是向量的能量个别部分 (a1 * x1) 和 (a2 * x2).
如果 x[i] 被归一化意味着 a[i] * x[i] 的能量就是 a[i]**2.
结合这两件事,你得出结论:总和 a[i] * x[i] 的能量就是总和 a[i]**2。
这就是为什么您可以简单地使用任何正交基中系数的 L2 范数来计算信号的 L2 范数。