这篇文章是受到一篇知乎文章启发下写出来的,但是原版文章有一些细节的错误,自己将自己的经验总结记录下来!
1. 实信号的DFT变换是共轭对称的
X [ N − k ] = ∑ n = 0 N − 1 x [ n ] e − j ( 2 π / N ) ( N − k ) n = ∑ n = 0 N − 1 x [ n ] e j ( − 2 n π + ( 2 π / N ) k n ) = ∑ n = 0 N − 1 x [ n ] e j ( ( 2 π / N ) k n ) = X ∗ [ k ] 。 \begin{aligned}&X[N-k]=\sum_{n=0}^{N-1}x[n]e^{-j(2\pi/N)(N-k)n}=\sum_{n=0}^{N-1}x[n]e^{j(-2n\pi+(2\pi/N)kn)}=\\&\sum_{n=0}^{N-1}x[n]e^{j((2\pi/N)kn)}=X^*[k]\text{ 。}\end{aligned} X[N−k]=n=0∑N−1x[n]e−j(2π/N)(N−k)n=n=0∑N−1x[n]ej(−2nπ+(2π/N)kn)=n=0∑N−1x[n]ej((2π/N)kn)=X∗[k] 。
当然前提是 x [ n ] x[n] x[n] 必须是实信号。
2. DFT变换后每个点代表的频率性质
不失一般性的,我们假设n为偶数
N × x [ n ] = ∑ k = 0 N − 1 X [ k ] e j ( 2 π / N ) k n = X [ 0 ] + X [ 1 ] e j ( 2 n π / N ) + X [ 2 ] e j ( 2 ( 2 n π / N ) ) + … + X [ N / 2 − 1 ] e j ( 2 n π N ( N / 2 − 1 ) ) + ( − 1 ) n X [ N / 2 ] + X [ N / 2 + 1 ] e j ( 2 n π N ( N / 2 + 1 ) ) + … + X [ N − 2 ] e j ( 2 n π N ( N − 2 ) ) + X [ N − 1 ] e j ( 2 n π N ( N − 1 ) ) \begin{aligned}N\times x[n]=&\sum_{k=0}^{N-1}X[k]e^{j(2\pi/N)kn}=X[0]+X[1]e^{j(2n\pi/N)}+X[2]e^{j(2(2n\pi/N))}+\ldots\\&+X[N/2-1]e^{j(\frac{2n\pi}N(N/2-1))}+(-1)^nX[N/2]+X[N/2+1]e^{j(\frac{2n\pi}N(N/2+1))}+\ldots\\&+X[N-2]e^{j(\frac{2n\pi}N(N-2))}+X[N-1]e^{j(\frac{2n\pi}N(N-1))}\end{aligned} N×x[n]=k=0∑N−1X[k]ej(2π/N)kn=X[0]+X[1]ej(2nπ/N)+X[2]ej(2(2nπ/N))+…+X[N/2−1]ej(N2nπ(N/2−1))+(−1)nX[N/2]+X[N/2+1]ej(N2nπ(N/2+1))+…+X[N−2]ej(N2nπ(N−2))+X[N−1]ej(N2nπ(N−1))
我们假设 X [ k c ] = a k + j b k X[k_c]=a_k+jb_k X[kc]=ak+jbk,那么根据共轭的性质,我们有 X [ N − k c ] = a k − j b k X[N-k_c]=a_k-jb_k X[N−kc]=ak−jbk。显然 X [ k c ] X[k_c] X[kc] 和 X [ N − k c ] X[N-k_c] X[N−kc] 两个分割分量之和变为
= ( a k + j b k ) e j ( 2 π / N ) k c n + ( a k − j b k ) e j ( 2 π / N ) ( N − k c ) n = 2 a k c o s ( 2 k c n π N ) − 2 b k s i n ( 2 k c n π N ) = 2 a k 2 + b k 2 c o s ( 2 k c n π N + ϕ k ) , = A k c o s ( 2 k c n π N + ϕ k ) , \begin{aligned} &=(a_k+jb_k)e^{j(2\pi/N)k_cn}+(a_k-jb_k)e^{j(2\pi/N)(N-k_c)n} \\ &=2a_kcos(\frac{2k_cn\pi}N)-2b_ksin(\frac{2k_cn\pi}N) \\ &=2\sqrt{a_k^2+b_k^2}cos(\frac{2k_cn\pi}N+\phi_k), \\ &=A_kcos(\frac{2k_cn\pi}N+\phi_k), \end{aligned} =(ak+jbk)ej(2π/N)kcn+(ak−jbk)ej(2π/N)(N−kc)n=2akcos(N2kcnπ)−2bksin(N2kcnπ)=2ak2+bk2cos(N2kcnπ+ϕk),=Akcos(N2kcnπ+ϕk),
所以 x ( n ) x(n) x(n) 可以表示成 [ 1 , 2 , . . . , N / 2 − 1 ] [1, 2, ..., N/2-1] [1,2,...,N/2−1] 这些三角函数表示的频率分量与 a 0 a_0 a0,即 X [ 0 ] + ( − 1 ) n X [ N 2 ] X[0]+(-1)^nX[\frac{N}{2}] X[0]+(−1)nX[2N] 的和:
原文章中最大的问题其实就在这里,他错误地理解了 a 0 a_0 a0 的含义。
N × x [ n ] = a 0 + A 1 c o s ( n 2 π / N + ϕ 1 ) + A 2 c o s ( ( 2 n ) 2 π / N + ϕ 2 ) + A 3 c o s ( ( 3 n ) 2 π / N + ϕ 3 ) + … + A N 2 − 1 c o s ( ( ( N 2 − 1 ) n ) 2 π / N + ϕ N 2 − 1 ) \begin{aligned} N\times x[n]=&a_0+A_1cos(n2\pi/N+\phi_1)+A_2cos((2n)2\pi/N+\phi_2)+A_3cos((3n)2\pi/N+\phi_3)+\ldots\\ &+A_{\frac N2-1}cos(((\frac N2-1)n)2\pi/N+\phi_{\frac N2-1}) \end{aligned} N×x[n]=a0+A1cos(n2π/N+ϕ1)+A2cos((2n)2π/N+ϕ2)+A3cos((3n)2π/N+ϕ3)+…+A2N−1cos(((2N−1)n)2π/N+ϕ2N−1)
我们不妨假设采样频率是 f s f_s fs,则 x [ n ] = x ( n T s ) = x ( n / f s ) x[n]=x(nT_s)=x(n/f_s) x[n]=x(nTs)=x(n/fs)。将 x ( t ) x(t) x(t) 带入即可以得到
N × x ( t ) = X [ 0 ] + A 1 c o s ( f s 2 π t / N + ϕ 1 ) + A 2 c o s ( ( 2 f s ) 2 π t / N + ϕ 2 ) + A 3 c o s ( ( 3 f s ) 2 π t / N + ϕ 3 ) + … + A N 2 − 1 c o s ( ( ( N 2 − 1 ) f s ) 2 π t / N + ϕ N 2 − 1 ) + A N 2 c o s ( ( N 2 f s ) 2 π t / N + ϕ N 2 ) \begin{aligned}N\times x(t)=&X[0]+A_1cos(f_s2\pi t/N+\phi_1)+A_2cos((2f_s)2\pi t/N+\phi_2)+A_3cos((3f_s)2\pi t/N+\phi_3)+\ldots\\ &+A_{\frac N2-1}cos(((\frac N2-1)f_s)2\pi t/N+\phi_{\frac N2-1})+A_{\frac N2}cos((\frac N2f_s)2\pi t/N+\phi_{\frac N2}) \end{aligned} N×x(t)=X[0]+A1cos(fs2πt/N+ϕ1)+A2cos((2fs)2πt/N+ϕ2)+A3cos((3fs)2πt/N+ϕ3)+…+A2N−1cos(((2N−1)fs)2πt/N+ϕ2N−1)+A2Ncos((2Nfs)2πt/N+ϕ2N)
很明显可以看出, X [ k c ] X[k_c] X[kc] 代表的频率分量是 f = k c f s / N f=k_cf_s/N f=kcfs/N。
注意上述的 x ( t ) x(t) x(t) 只有在特定的时刻采取等号,其他时刻只能取到近似的等号。