为什么Matlab快速傅里叶算法分析出来的幅度谱需要校正
一切的根源,让我们回到DFT定义上面来,观察FFT算法对直流分量和非直流分量频率的影响。下面请大家注意观察这个式子,假设信号具有直流分量A,假设采样点为N个,那么得到的采样点显然是这样的序列:
[
A
,
A
,
.
.
.
,
A
]
[A,A,…,A]
[
A
,
A
,
.
.
.
,
A
]
,现在我们回到DFT的定义:
D
F
T
{
x
(
n
)
}
=
∑
n
=
0
n
=
N
−
1
x
(
n
)
e
−
j
w
n
DFT\{x(n)\}=\sum_{n=0}^{n=N-1}x(n)e^{-jwn}
D
F
T
{
x
(
n
)
}
=
∑
n
=
0
n
=
N
−
1
x
(
n
)
e
−
j
w
n
显然对于直流分量来说,则
w
w
w
取0时,得到的DFT在这一点的值为
N
A
NA
N
A
,那么,我们对幅度谱进行修正时,对于直流分量,直接除以傅里叶变换点数
N
N
N
即可。而对于非零频率,为了简化分析,我们只分析这样的一个信号
e
j
w
0
n
e^{jw_{0}n}
e
j
w
0
n
,它的DFT结果只在
w
=
w
0
w=w_{0}
w
=
w
0
处有幅度为1的冲击。那么,
对于一般的周期信号,我们一般是表示为余弦形式的
。
借用欧拉公式
e
j
w
n
=
c
o
s
(
w
n
)
+
j
.
s
i
n
(
w
n
)
e^{jwn}=cos(wn)+j.sin(wn)
e
j
w
n
=
c
o
s
(
w
n
)
+
j
.
s
i
n
(
w
n
)
,我们有
c
o
s
(
w
n
)
=
e
j
w
n
+
e
−
j
w
n
2
cos(wn)=\frac{e^{jwn}+e^{-jwn}}{2}
c
o
s
(
w
n
)
=
2
e
j
w
n
+
e
−
j
w
n
,那么,利用这样的一个关系,在双边谱中,幅度不仅扩大了N倍,同时又有了一个
1
2
\frac{1}{2}
2
1
倍的关系,那么,我们对于非零频率的矫正,就应该除以
N
2
\frac{N}{2}
2
N
,到这里,才对FFT分析实际信号有了进一步的理解。