当您同时使用 DFT 和 DCT 将信号转换到频域时,例如函数 sin(x),频谱会如何?两个频率值(DCT 和 DFT)是否相同?谁能解释函数 sin(x) 的频率值(显然频率应该是 1/2π)
DFT 与 DCT - 频谱差异
信息处理
自由度
dct
2022-02-17 22:07:21
3个回答
上的 DCT 与上的 DFT 大致相同,即在垂直轴上镜像。由于该函数是偶数,因此所有正弦系数都将为零,并且可以从结果中删除。
现在与负不同,因此所得系数将完全不相关。如果采样间隔在处结束,则 DFT 将仅在频率附近出现一个峰值。
但是由于中处的扭结,以及采样间隔结束时的一秒,DCT 将在频率。
首先,DFT 产生复数输出,因此您最好将其幅度与输入和输出均为实数的 DCT 幅度进行比较。
您可能知道 DCT 可以从 DFT 中精确计算,因此您可以从预处理的 x[n] 信号的 DFT[k] 值中准确找到任何 k 的 DCT[k] 值。(反过来可能是错误的)
基本上,DCT 用于那些强调低频内容的过程。例如在语音或图像编码中。然而,出于频谱分析的目的,DFT 会产生更好的工具,并且将其结果映射到物理频率是如此简单。如果您有 matlab,请检查以下代码以查看它们的差异是否对您很重要:
N=128; f = 123, Fs = 1024; % set the signal parameters
x = sin(2* pi* f*[0:N-1]/Fs); % create a real signal x[n]
figure,plot(abs(fft(x,N))); % get the first half of it, since it is symmetric
figure,plot(abs(dct(x,N))); % get DCT for comparison
正如您所看到的,对于不同的“f”值,DCT 和 DFT 值之间的相似性有所不同,但是它们的总体包络(如预期的那样)相似。
看看维基百科。有一个示例图像,但用于 DFT。

其它你可能感兴趣的问题