从二十世纪七十年代开始,关于频谱分析和校正的科学研究一直在不断开展。1994 年, 谢明、丁康提出了在信号频率处于谱线间时可通过定位主瓣中心的位置来进行频谱校正[2], 并且该方法的精确度非常的高。2001 年,朱利民、熊有伦提出了通过建立一个数学模型来反 向求解幅值的方法[3],可以在加对称窗的时候具有不错的效果。同年,丁康、朱小勇对各种 频谱分析的方式进行了比较和总结,并且探讨了在不同噪声情况下各种方式的优劣性[4]。2005 年,黄云志、徐科军提出了窗中心平移法[5],这也是一种在对称窗函数中有着不错的效果的 方法,一种基于相位差校正的方法。2009 年,张强、张频和张明童提出了通过加三角窗的方 式来进行频谱分析[6],并且根据三角窗提出了两种具体的解决方案。有关这方面的研究还有 很多,在此也不进行一一的列举。这些研究相互影响,共同促进了频谱分析的进步和发展。论文网
1。3主要内容和工作
本课题主要对基于双窗法的频谱校正进行研究和讨论,根据何岭松和熊鹰在 2001 年提出 的用双窗法来减小频谱分析中误差的方法[7]进行 MATLAB 仿真,检验其效果。主要研究工作 如下:
(1)对快速傅里叶变换的基本原理进行研究和掌握;
(2)对于信号频谱分析中出现的误差进行分析和讨论,探讨误差之间的关系以及解决方 案;
(3)对于加双窗来减小信号幅值误差的方法进行研究,编写 MATLAB 程序进行仿真;
(4)对于信号加双窗方法的结果进行分析,并且探讨该方法的优劣。 (5) 根据结果提出了插值法的方案来进行优化和改进。
本科毕业设计说明书第 3 页
2FFT 算法的基本原理
2。1离散傅里叶变换的算法和复杂性
对于一个长度为N 的离散序列x[n],n=0,1,„,N-1,它的离散傅里叶变换是称为旋转因子。直接计算式(2-1)时,对于每一个因子k,都需要做N 次的复数乘法和(N-1) 次的复数加法。那么对于所有取值范围内的k来说,完成该计算就需要N*N 次的复数乘法和 N(N-1)次的复数加法[8]。当N 增大时,完成该计算所需的次数将成倍增长,计算机的工作时 间和数据量也将大大增长,对于计算机的实时运算能力也是很大的考验。因此,找到一种更 加有效率的算法来减少计算量是一个迫在眉睫研究课题。
2。2FFT 算法的提出和 MATLAB 实现
2。2。1时域抽取(DIT)基二 FFT 算法
在计算DFT运算的过程中,我们可以发现在系数中具有很多对称的特性。通过研究这种 对称性,可以使计算量得到简化,从而减少计算DFT的运算时间。
设序列x(n)的长度为 N 2M (若不是则补零),则N 可以被2整除。将x(n)分成分别包
含奇数项和偶数项的序列 x1(r )和 x 2(r ),每个序列的长度为N/2。像这样时域信号的样本的采 样率得到了降低的方法称为时域抽取法。我们在运算中的最小DFT单元称为“基”,而这样
基于长度为 N2M 的FFT运算方法就称为时域抽取基二FFT算法。
1)]。r=0,1,„,N/2-1。设 x1(r )和 x 2(r )的N/2
点的傅里叶变换分别为 X 1(k )和 X 2(k ),则:
而X(K)是计算N 点的DFT,因此上式只包含了前N/2点的DFT。经过分析可以得到后N/2点的值 为:
根据式(2-6)进行X(k)的计算,只需要N*N/2+N/2次乘法。因为 N
因此又能将 x1(r )和 x 2(r )分成奇偶部分,按照上面的方法继续重复的进行分解运算,直到最 后只剩下一个值,即只需要做2点的DFT,便可得到信号的傅里叶变换[9]。所以式(2-5)和 式(2-6)说明只需要计算两个N/2点的DFT X 1(k )和 X 2(k ),分别进行线性组合便可以得到全 部N 点的DFT。