The Realization of FFT Based on UART and CCS
摘要:FFT是对实时采集的动态数据进行频域分析、处理的基本算法,本文针对DSP系统特点设计了一种高效的FFT的实现方法,以完成对动态信号的实时分析、处理。使用串口将DSP评估板与PC机相连,利用CCS作为开发平台来进行调试,分析了调试过程中遇到的问题给出了解决的方法,并利用MATLAB验证了该方法的正确性与可行性。
关键词:动态信号分析;数字信号处理器;代码调试器;快速傅立叶变换;串口
Abstract: FFT is the fundamental algorithm of frequency-domain analysis and processing of the real-time dynamic data acquisition. Directing at DSP system’s characteristic, the present paper designs an efficient realization of FFT in order to realize real-time analysis and processing of dynamic signal. Through connecting DSP evaluation board with PC by UART and debugging them based on CCS, this paper analyzes the problems happened in the process of debugging and provides the solution to these problems,and use MATLAB to prove the correctness and feasibility of the method.
Key word: Dynamic Signal Analysis; DSPs; CCS;FFT; UART
1. 引言
动态信号分析是现代机械系统、控制系统、电力系统等多领域的一种快速测试分析方法,它在设定的时间范围内,对被测信号采样、变换、数据处理,通过实时获取系统的动态参数,并利用DSP对参数进行实时处理,然后将处理结果以波形等形式显示出来,从而可以直观的反映系统的运行状态,方便故障的诊断处理。
针对上述的应用,设计了一种A/D+FPGA+DSPs的系统方案。在该方案中,A/D实现高速数据采集,FPGA实现对采集数据的缓冲、传输控制以及数据的预处理,DSPs实现对高速数据的处理,包括:谐波分析,相位分析等。而这些处理大多都是在频域进行的,需要把时域数据转换成频域数据,而FFT算法正是实现这一变换的快速算法。
TMS320C6416是高性能的32-位定点DSP,主频可达1GHz,处理性能高达8000MIPS,它采用多级流水结构,可以满足对实时数据的高速处理的要求 。本文使用UART接口实现TMS320C6416与PC的相连,通过PC机输入DSPs实时数据,DSPs对数据进行处理后再通过串口传送到PC机,实现DSP算法的调试。
2.FFT的原理及其在DSPs上的实现
傅立叶变换是一种将时域信号转变为频域信号的变换形式,是数字信号处理中对信号进行分析时经常采用的一种方法。但是如果采用常规的傅立叶变换,则该算法的运算量会特别大,不适于需要高速运行的嵌入式控制系统中采用,而通常方法是采用快速傅立叶变换( FFT) ,实现FFT 通常有两种方法:第一,按时间抽取(DIT) 的FFT 算法;第二,按频率抽取(DIF) 的FFT 算法。
2. 1 FFT 的原理[2]
对N 点序列x ( n) ,其DFT 变换定义为: