为什么要使用 DCT 而不是 DFT 来检测信号中的振荡?

信息处理 fft 离散信号 自由度 时频 dct
2022-02-14 16:46:22

对于我的项目,我需要检测信号数据中的主要振荡频率。当我用谷歌搜索时,发现 DCT 是找到这个的最佳工具(http://www.mech.pku.edu.cn/robot/teacher/wangjiandong/WangHuangLu_ImprovedDCT_CEP_2013.pdf

我的问题是:您为什么要基于 DCT 而不是 DFT 进行分析?如果我应用相同的分析但使用 DFT 会发生什么?我不能接受 DCT 是“更快”的,因为对于检测振荡的实践,即使是实时的,两者都“足够快”,因此速度和计算复杂性不应该成为决定选择哪个的因素!

2个回答

与 DFT 相比,对于频率在 DFT 窗口长度内不完全周期性的窄带振荡,DCT 具有更好的“能量压缩”特性。这种能量压缩可以更容易地发现或区分 FFT 结果中“在 bin 之间”和/或几乎不高于给定本底噪声的频谱峰值。

只是保持它伊尔。

DFT 将特定正弦频率的定时偏移记录为复系数的相位。由于实信号的 DFT 是共轭对称的,因此相应的负频率系数的幅度相同,但相位为负。FFT 例程经常跳过计算实际信号的负频谱。这留下了 NFFT/2+1 非冗余复系数,但是 DC 和 Nyquist bin 是完全实数的。可以将 DC 和 Nyquist bin 组合在一起,使数据大小的增长为零(无论如何对于偶数长度的信号)。

但是这种复杂结构和实数结构之间的翻转可能不方便分析或计算。

DCT 捕获的关于真实信号的信息基本相同,只是正弦波的时序被编码为余弦波的总和。DCT 具有表示酉变换而不混合实数和复数的优点。DFT 也是单一的,但它映射RNCN.