5 过采样的软件实现
实现过采样的DSP软件包括以下6个主要模块。
5.1 外设初始化
采用EVA模块的TIMER1来启动ADC转换并且提供PWM输出,TIMER1工作于连续增计数模式,周期寄存器的值等于AD转换速率,由周期匹配事件来启动AD转换。
5.2 三角波信号产生
由前面论述可知,三角波信号由PWM信号产生,PWM信号的占空比由编程TIMER1的比较寄存器(T1CMPR)决定。为了得到三角波信号,T1CMPR中的值需要由某一步长(STEP)来不断地增加和减少,而这一步长由定时器周期寄存器(T1PR)和过采样因子(K)决定,其计算公式如下:
用一标志(FLAG)表示三角波的上升或下降,它用来决定比较寄存器中的值被STEP增加还是减少了。CURRENT代表当前定时器比较寄存器中的值。用软件改变PWM占空比的流程如图5所示。
5.3 数据采集
AD转换完成后产生中断,在中断服务子程序中读出每次转换的结果,作为数字低通滤波的输入。
5.4 数字滤波
采用FIR结构的滑动平均滤波器(MovingAverage FiLTEr),滑动平均滤波器的Z变换为:
从输入xi计算输出yi的表达式为:
5.5 抽取
抽取过程将以K倍来降低最后的数据率。一般来说,抽取操作是和数字滤波结合在一起的,即,只需在数字滤波中计算每K个输出值。
5.6 中断服务程序
在中断服务程序中执行以下几个操作:调整PWM占空比、读出AD转换值、数字滤波(其中包括抽取)。
6 结语
随着DSP在各种信号处理领域中的广泛应用,过采样技术在其中的应用也将日益广泛,因此,如何进一步发展利用过采样技术,也将值得观望。