第23卷 2009正 第4期 11月
山东轻工业学院学报
JOURNAL OF SHANDONG INSTITUTE OF LIGHT INDUSTRY V01.23No.4 NOV. 2009
文章编号:1004—4280(200904—0086—03
基于定点DSP芯片的数据采集和快速傅里叶变换 孙良友1,孙玉玺2,岳斌2,隋士龙3
(1.济南海尔绿城置业有限责任公司,山东济南250100;2.山东建筑大学,山东济南250100;
3.济南建设设备安装有限责任公司,山东济南250002;
摘要:本文主要阐述了基于定点数字信号处理(DSP芯片TMS320LF2407的数据采集和实速傅里叶变换(F丌'。 利用TMS320LF2407的内置A/D模块进行64点数据采集,然后做32次谐波分析,计算结果表明用TMS320LF2407做数据采集和FFT的系统可以实现谐波检测,可以用于电网谐波的测量和控制。
关键词:TMS320LF2407;谐波检测;FFT;C语言 中图分类号:TP391.41文献标识码:A
Data acquisition and fast Fourier transform based on fixed-point DSP SUN Liang—youl,SUN Yu—xi2,YUE Bin92,SUI Shi.10n93
(1.Jinan Haler Greentown Home Co.Ltd.,Jinan 250100,China;2.Shandong Jianzhu Universtity,Jinan 250100,China; 3.Jinan—building Equipment Installation Co.Ltd.,Jinan 250002,China
Abstract:This paper mainly elaborates digital acquisition and fast Fourier transform based on fixed—point digital signal prolessir(DSPchip TMS 320CF2407.The built—in TMS320LF2407A/D module is used for 64points collecting and then 32times harmonic analysis is carried out.The result shows that the fixed— point DSP chip can be used on the power grid system
harmonic detection and contr01. Key
words:TMS320LF2407;harmonic analysis;FFT;C Language 0引言
随着各种非线性用电设备的广泛应用,电网的 谐波污染问题越发明显和严重,并已成为影响电能 质量的公害,谐波对电网系统的安全、经济运行造成 极大的危害。本文利用定点DSP芯片TMS320LF2407在处理速度上和计算精度上的优势进行64点FFr变 换,完成1~32次电网谐波含量的分析。
1TMS320LF2407A/D采集模块
TMS320LF2407本身有16路10bitA/D转换模 块,A/D转换模块进行一次转换的时间为500HS[1I。 电压、电流信号通过电压、电流互感器采集进来,经 信号处理模块转换为一1.65V~+1.65V的电压 信号,通过A/D同步采样模块转换成数字信号送人7 DSP,DSP对采样值进行数据处理和谐波分析。由 于TMS320LF2407芯片内部A/D转换模块其工作 电压为0~3.3V,所以交流输入电压需要增加一个 直流上台电压,从而将电压上抬到0—3.3V,以保 证TMS320LF2407的A/D采集模块可以正常 T作。2o。
考虑到谐波分析的实时性要求,数据采集前需 要实时采集电网频率。通过EVA模块的捕获功能 来采集交流信号频率,将IOPA5引脚复用为捕获功 能。当完成2次比较中断时候读取CAPFIF01二级 栈的值,通过一系列计算求的实时频率,达到实时测 量频率的目的。本系统的FFll变换需进行64点采
收稿日期:2009—10~16
作者简介:孙良友,(1972一,男,山东省嘉祥县人,济南海尔绿城规划部总]二,研究方向:智能建筑 万方数据
第4期 孙良友,等:基于定点DSP芯片的数据采集和快速傅里叶变换 87 集,就是说需要将一个周期进行64次采样,经过计算 每次采集数据的时间间隔是20ms/64=0.3125ms, 远大于A/D处理时间500ns,因为TMS320LF2407内 置的A/D采集模块可以完全达到要求‘3I。
2快速傅里叶变换原理‘41
快速傅里叶变换(F n1是离散傅里叶变换 (DFT的快速算法。F F11是数字信号处理中最为重 要的算法之一,在声学、语音、电信和信号处理等各 个领域都有广泛的应用。离散傅里叶变换的目的是 把信号由时域变换到频域,从而可以在频域分析处 理信息,得到的结果再由傅里叶逆变换到时域。 FFT算法有很多形式,不同的形式是根据输入数据 处理所决定的,其最常见的是基2一F F1rI’时间抽取 算法,本文也也采用此种算法,其基本原理是:如果 序列戈(n的长度N=2肘,其中M是整数(如果不满 足此条件,可以人为地增补零值点,在时域上按奇 偶抽取分解成短序列,使最小运算单元为点。通常 将运算中最小运算单元称为基,因而把这种算法称 为基于2时问抽取FFTr(DIT—FFTF运算,把Ⅳ点 DFT分成两组N/2点运算,然后取和。假定Ⅳ为2的整数次方,把戈(n的傅里叶变换按照n为偶数和 13,为奇数分解为两部分:
Ⅳ一1
x(k=DFT[戈(凡]=∑石(n噼=
fj
∑z(n噼+∑石(凡噼
以2r表示偶数n,以2r一1表示奇数n,r的范 围是0,1,2……N/2—1,公式可变形为:
N/2—1
X(k=∑戈(2r(W:吨+ 置 N/2—1
蝶∑石(2r一1(峨^=G(K+噼H(南 j
AV2-l N/2—1
其中G(K=∑x(2r畹:,H(后=∑x(2r-1畹:因此,Ⅳ点的离散傅里叶变换可以由分解为两 个N/2的离散傅里叶变换,同样每个N/2的离散傅 里叶变换都可以分解成两个N/4的离散傅里叶变 换,以此类推便形成了基于2时间抽取FFT算法, 该算法通过减少乘法次数以提高计算速度,使运算 效率提高1—2个数量级,逻辑关系较为简单。 3C语言实现FFT变换
3.1旋转因子的生成
在F丌运算中,旋转因子WN=COS(2盯k/N一 sin(2wk/N为旋转因子的计算公式,由于正弦和余 弦函数的计算量很大,所以编程时,获得旋转因子的 方法直接影响运算速度本系统是在FFT程序开始 前预先计算出旋转因子,将结果存放在数组中,作为 旋转因子表,在程序执行过程中,直接查表得到所需 的旋转因子值,这样使运算速度大大提高,其不足之 处是占用内存较多。