算法验证原理:为了验证该FFT的频谱分析能力,故对一段合成信号进行FFT。方波的傅里叶级数展开公式如下:根据以上公式各次谐波与基波之间的谐波频率与谐波幅度的关系,我们可以使用sin函数合成任意次的方波。这里,我们选取三次谐波合成方波。以下是例程中的合成三次谐波信号:Input[i]=sin(2*pi*5*i/(NL-1+sin(2*pi*i*5*3/(NL-1/3+sin(2*pi*i*5*5/(NL-1/5;基波角频率=2*pi*5,NL为将连续信号离散化的点数,在2π的周期上均匀分割为NL个离散点。这一步代替了AD采样的功能。离散点存放在数组Input[i]里面,长度为NL。例程里面NL=256。加载程序并运行,点击view->Graph->Time/Frequency,设置如下:点击OK,出现如下图所示的波形:这是合成信号的时域波形,根据吉布斯效应,如果谐次增加,高电平两个尖峰之间的震荡幅度将会减小变密,但是两边的尖峰不会削减。接着我们设置如下:点击OK,我们将看到如下波形:上图为对该合成信号的256点FFT频谱图,在三个频率分量处有幅度分布。由于FFT是在2π上的分析,而且将复数进行了取模运算,所以频谱图是关于π(采样值为点127的对称图形。将鼠标点击到尖峰处,分别得到点数与幅度的值为:第一尖峰:(5,0.99第二尖峰:(15,0.32,第三尖峰:(25,0.19。采样点数关系为5,15,25,满足1:3:5的频率关系;量化的幅度关系为0.99:0.32:0.19,满足1:1/3:1/5的谐波幅度关系。因此,该FFT算法能够准确的对信号进行频谱计算。