在MSP430F1611上实现周期图谱分析及校正
③为节约RAM内存空间,将旋转因子对应的正余弦表制作成表格存放在ROM空间中,而蝶形运算时可通过查表得到旋转因子后再进行FFT运算。
④由于FFT运算过程中的旋转因子是通过左移14位取整得到的,因此蝶形运算过程中需要乘法运算结果右移14位。MSP430F1611单片机乘法器的结果寄存器,由高16位乘法结果寄存器RESFII、低16位乘法结果寄存器RESLO组成,右移14位操作就是保留高位结果寄存器所有内容和低位结果寄存器中的高两位,因此RESHI、RESLO一起向左移2位,然后保留高位结果寄存器作为乘法结果就可实现右移14位过程。
5 算法测试
为了验证算法的实时性和正确性,通过信号发生器产生标准信号送入所研制的基于MSP430f1611为核心的处理系统,对算法进行了全面的测试。
(1)测试算法运行时间
测试对2 048点数据进行功率谱估计所需要的总时间。预先设置MSP430F1611单片机的P5.4引脚为普通I/O,且为输出方式,接着,循环执行FFT运算和功率谱估计程序,且每次开始FFT计算和功率谱估算前,将P5.4输出电平翻转,因此P5.4输出的相邻两次翻转电平的时间间隔就是FFT运算和功率谱估计的总时间。通过数字存储示波器观测P5.4引脚输出的信号波形,如图4所示。
每次高低电平翻转的时间间隔约为500 ms,即对2 048点数据进行功率谱估计总共需要500 ms。
(2)测试算法计算精度
由于FFT运算的最大误差发生在非整周期采样时,所以,选择这些最大误差点来进行测试。由于泄漏误差,信号基频表示为
f0=(k+d)fs/N (7)
式(7)中,k为整数,d为小数(定义d为泄漏误差系数)。由于泄漏误差不超过频率分辨率的二分之一,所以|d|≤O.5。当d=O时,即为整周期采样情况;当d=O.5时,就是最大非整周期采样的地方。因为所研制的基于FFT的频谱分析方法将应用于数字涡街流量计,在此,针对气体40口径频率范围为69~1 380 Hz,设定采样频率为3 717.472 199 Hz,数据点数为2 048,选择不同的k值得到不同的频率信号,由信号发生器产生幅值为60 mV的这些信号,送入两线制涡街流量计信号处理系统低通滤波器前端,然后经过预放大电路和低通滤波电路后,送入MSP430F1611进行频率估计。
评论