论文摘要
嵌入式系统是一个集成化的复杂数字系统。随着信息技术的发展,应用领域对嵌入式系统的性能、体积和功耗等提出了更高的要求,这就促使嵌入式系统的设计(包括软件设计和硬件设计)要进一步优化。快速傅立叶变换算法是数字信号处理领域的一个基本算法,随着嵌入式系统的发展,特别是FPGA的广泛应用,我们对该算法的时间性能,空间性能和精度提出了新的要求。ECNUX是由上海嵌入式系统研究所开发的一种软硬件协同设计平台,如何在ECNUX平台上设计FFT算法,使它能够满足嵌入式系统各方面的要求,是本文的核心内容。 本文首先对傅立叶变换的性质做了详细介绍,其中包括离散傅里叶变换,快速傅立叶变换(FFT)以及基-2按时间抽取(DIT)的FFT算法;然后简单介绍了嵌入式软硬件协同设计平台ECNUX和实现语言ECNU-C,主要介绍了ECNU-C语言的特点和我们需要用到的一些语法;接着在第四章详细分析了定点FFT的溢出情况,并给出了控制FFT定点溢出的两种方式,同时给出了并行FFT的实现方案,包括蝶形运算器的并行以及蝶形运算器之间的并行;最后在VC6.0平台上模拟了前面介绍的两种并行定点FFT算法,并通过对结果的分析来比较它们的时间性能和精度,其中第一种方法在精度上有明显优势,而第二种方法在时间性能上有明显优势。 由于传统的FFT算法是用浮点数实现的,而ECNUX平台只支持定点运算,并且FPGA也更适合定点运算,因此本文解决了用定点数代替浮点数实现FFT算法的问题;其次,ECNUX平台支持并行操作,并且FPGA也具有并行能力,所以实现并行FFT算法是本文解决的另一关键问题。