1引言
1。1 研究背景
离散傅里叶变换(discrete Fourier transform,DFT)是信号学科中最基本的数学运算之一 [1]。在 DFT 的运算过程中,受序列长度和算法特性影响,通常存在包含大量计算的情形,在 这种情况下,如果直接进行计算则较为繁琐,研究者们便推倒较为简便的算法计算 DFT 谱。 计算 DFT 谱简洁算法的核心思想则是运用数学方法及其自身的特性,改进其计算过程,从而 推导出更为高效的快速算法。在 1965 年,Cooley 和 Tukey 两位科学家,使用数学方法推导, 提出被称之为快速傅里叶算法(fast Fourier transform,FFT)的一种计算 DFT 谱方法,这种 方法有效地简化了 DFT 谱的运算,为后来的学者们改进其算法奠定了可靠的基础。此后,FFT 算法被学者们不断改进,新的算法如基 2 算法、Winograd 算法等出现,数字信号处理理论也 随之快速发展,它们凭借计算机软件和硬件为依托,广泛应用于诸多领域[2]-[4]。论文网
离散傅里叶变换对信号与系统这一信息处理领域具有非常重要的作用,在计算离散傅里 叶变换的方法中,FFT 算法大大简化了其运算,却仍然存在一些不便捷的情形。FFT 算法的 主要问题有:控制相当复杂,需要计算的系数太多,未能充分利用信号的相位信息,而某些 工程处理又需要信号序列的相位信息[2];不能计算局部频段的频谱等。因此,研究新的算法非 常必要。新的 DFT 谱的算法需要注意的有:第一,运算量小、需要直接计算的系数少;第二, 兼顾工程分析需要,充分利用其相位信息;第三,兼顾软硬件发展,软件方面便于计算机编 程处理计算,硬件方便所需器件要相对便于设计。因此,现代学者研究了关于 DFT 的递归算 法。
本文在前人诸多研究的基础上,认真研究并学习计算 DFT 谱的算法,对递归算法进行了 深入的研究。首先,本文介绍了离散傅里叶变换(DFT)的定义,简要介绍了计算 DFT 谱的 方法;其次,详细介绍了三种递归算法,包括 Goertzel 算法、Goertzel 改进算法 1 和 Goertzel 改进算法 2,阐述了其差分方程、系统函数和单、双极点递归单元,并阐述其算法的特点;最 后,运用 Matlab 软件仿真验证其算法。
通过本文的研究,希望能够对本科阶段信号与系统的学习内容进行再学习、消化,加深 对数字信号处理专业的认识。
1。2 研究方法
本文主要采用两种方法进行课题的研究和设计:文献研究法和仿真法。 文献研究法就是搜集与课题有关的文献资料,并对文献所阐述的内容进行综合分析,选
取所需要的有效信息。在本次毕业设计过程中,笔者在老师的指导下,通过网络和现实渠道, 获得了与本设计相关的学术文献与书籍。通过阅读文献,加深对所研究的课题 DFT 谱计算方 法相关内容的认识,巩固包括傅里叶变化的性质、离散傅里叶变换的算法等所学知识。阅读 文献所获取的知识,都运用在论文理论部分撰写和仿真设计中。
实验与仿真是理工学科研究的一个重要手段,它可以运用实验器材或实验软件,来对理 论进行数学化的检验。在本次毕业设计中,运用了 Matlab 软件,对本文涉及的算法进行仿真 验证。
2 离散傅里叶变换(discrete Fourier transform,DFT)
2。1 离散傅里叶变换定义
离散傅里叶变换(discrete Fourier transform,DFT)是指在时域、频域都是有限长,且又
都是离散的一类变换[1]。对于一个 N 点的有限长序列�(�),其 DFT 变换对定义为