FFT 是一种如雷贯耳的快速算法,应用范围及其广泛,就不多说了。不过 DFT 很多人并不是很清楚,只知道 DFT 比 FFT 效率低,速度慢。实际上,在很多应用场合下,DFT 反而会比 FFT 效率高很多。
首先,回顾一下复数的特性:
V = R + jI = M*(R/M + j I/M) = M*(cos(A) + j sin(A)) = M*exp(j A) (1)
wher R is the real and I is the image, M = sqrt(R*R + I*I) and A=arctan2(R, I) is the angle.
DFT/FFT
首要的任务是确定系统的基频(
Fundamental Frequency),
这样就能确定系统一个周期的采样点数。基频在同一个系统中可根据需要而采用不同的值。现在假设系统的采样时间为
Ts,
周期采样点数
N (
对于
FFT,
一般要求
N = 2*M = 2^L, DFT
则无此要求),
则第
H
次谐波的
DFT
的计算公式可以从基本的
Fourier
积分公式中得出:
V(k) = sum (x(k - n) * exp( j 2* n *PI * H /N) *2/N) (2)
这里,
n = 0 to N-1, sum
是
N
项之和
,
也就是一个周波
(c