天,看着公式也晕,下面圈圈以一个实际的信号来做说明。假设我们有一个信号,它含有2V的直流分量,频率为50Hz、相位为30度、幅度为3V的交流信号,以及一个频率为75Hz、相位为90度、幅度为15V的交流信号。用数学表达式就是如下:S23cos2pi50tpi3018015cos2pi75tpi90180式中cos参数为弧度,所以30度和90度要分别换算成弧度。我们以256Hz的采样率对这个信号进行采样,总共采样256点。按照我们上面的分析,F
1FsN,我们可以知道,每两个点之间的间距就是1Hz,第
个点的频率就是
1。我们的信号有3个频率:0Hz、50Hz、75Hz,应该分别在第1个点、第51个点、第76个点上出现峰值,其它各点应该接近0。实际情况如何呢?我们来看看FFT的结果的模值如图所示。
图1FFT结果从图中我们可以看到,在第1点、第51点、和第76点附近有比较大的值。我们分别将这三个点附近的数据拿上来细看:1点:5120i2点:26195E1414162E13i3点:28586E1411898E13i50点:62076E1321713E12i51点:33255192i52点:16707E1215241E12i75点:22199E1310076E12i76点:34315E12192i77点:30263E1475609E13i
f很明显,1点、51点、76点的值都比较大,它附近的点值都很小,可以认为是0,即在那些频率点上的信号幅度为0。接着,我们来计算各点的幅度值。分别计算这三个点的模值,结果如下:1点:51251点:38476点:192按照公式,可以计算出直流分量为:512N5122562;50Hz信号的幅度为:384N238425623;75Hz信号的幅度为192N2192256215。可见,从频谱分析出来的幅度是正确的。然后再来计算相位信息。直流信号没有相位可言,不用管它。先计算50Hz信号的相位,ata
21923325505236结果是弧度,换算为角度就是18005236pi300001。再计算75Hz信号的相位,ata
219234315E1215708弧度,换算成角度就是18015708pi900002。可见,相位也是对的。根据FFT结果以及上面的分析计算,我们就可以写出信号的表达式了,它就是我们开始提供的信号。总结:假设采样频率为Fs,采样点数为N,做FFT之后,某一点
(
从1开始)表示的频率为:F
1FsN;该点的模值除以N2就是对应该频率下的信号的幅度(对于直流信号是除以N);该点的相位即是对应该频率下的信号的相位。相位的计算可用函数ata
2ba计算。ata
2ba是求坐标为ab点的角度值,范围从pi到pi。要精确到xHz,则需要采样长度为1x秒的信号,并做FFT。要提高频率分辨率,就需要增加采样点数,这在一些实际的应用中是不现r