一种基于AVR单片机的工频干扰滤除快速算法

[10-10 20:38:44]   来源:http://www.88dzw.com  单片机学习   阅读:8342

文章摘要:从表3可以看出:随着α的增大,算法收敛的时间变长,同时50Hz对应的衰减幅度增加,衰减的幅度值和理论推导基本一致。另外,当a=0.95时,DA输出的均值变小。这主要是进行循环迭代运算时,需要将16位的变量转化为8位表示形式所导致的。在有用信号失真较小的情况下,为使滤波器达到降低工频干扰的最佳效果,必须恰当选择a值。经过以上的仿真试验可以发现,当a=0.9时,衰减幅度、DA输出均值和算法收敛时间表现比较均衡,可以作为一般情况下的选择值。将VMLAB中虚拟示波器的显示数据导出到一个*.cvs文件中,用matlab读出这些数据,并画出不同a值对应的输出响应,如图4。从图4可以清晰看出不同a值下算法的

一种基于AVR单片机的工频干扰滤除快速算法,标签:单片机开发,单片机原理,http://www.88dzw.com

  从表3可以看出:随着α的增大,算法收敛的时间变长,同时50Hz对应的衰减幅度增加,衰减的幅度值和理论推导基本一致。另外,当a=0.95时,DA输出的均值变小。这主要是进行循环迭代运算时,需要将16位的变量转化为8位表示形式所导致的。在有用信号失真较小的情况下,为使滤波器达到降低工频干扰的最佳效果,必须恰当选择a值。经过以上的仿真试验可以发现,当a=0.9时,衰减幅度、DA输出均值和算法收敛时间表现比较均衡,可以作为一般情况下的选择值。

种基于AVR单片机的工频干扰滤除快速算法

  将VMLAB中虚拟示波器的显示数据导出到一个*.cvs文件中,用matlab读出这些数据,并画出不同a值对应的输出响应,如图4。从图4可以清晰看出不同a值下算法的性能变化的大致走向。

  将AD的采样间隔设置为4ms,对应的采样频率Fs就变为250Hz,其它条件不变。通过VMLAB进行仿真,对比结果如表4、图5。

  表4 Fs=250Hz时不同a值仿真结果对比

aDA输出纹波峰峰值衰减幅度DA输出均值收敛时间0.80.20V-14.0dB1.98V约为220ms0.850.16V-15.9dB1.98V约为240ms0.90.14V-17.1dB1.97V约为270ms0.950.06V-24.4dB1.95V大于500ms

  对比Fs=500Hz的情况,随着采样频率Fs降低,50Hz频率的幅度衰减值会逐渐增加。这主要是因为随着采样频率降低,低通滤波器的截至频率fc也随之降低,相应的滤波器在50Hz处的衰减也就越来越低。根据奈奎斯特低通采样定理,当采样频率小于100Hz时,由于信号频谱混叠,滤波器对50Hz信号的滤波效果将会变差。如果只是对缓变信号进行采样,采样频率比100Hz稍大即可。但是随着采样频率的降低,滤波算法的收敛时间也会增加。因此必须在算法的滤波性能和收敛时间上进行折衷考虑。

  本文提出的分配系数法设计数字滤波器,算法速度快、代码效率高、滤波效果理想,是一种实用的数字滤波器设计方法,体现了将算法嵌入到具体硬件的思想。另一方面,将定点小数的表示形式进行适当扩展,这个算法还可以用于10位或16位AD转换精度的应用场合。

www.88dzw.com

  2 定点小数表达方式

  为了精确构造数字滤波器,经常要用到浮点数据和系统。在进行浮点数乘法运算时,针对AVR单片机设计的C编译器例如AVR-GCC,需要加入额外的数学库函数进行编译。而这会使编译后程序的代码量增加、处理时间加长、处理器的开销也随之增加。为了更大限度地降低系统开销,提高程序效率,采用定点小数表示形式进行乘法运算是最佳选择。

  AVR单片机是一种8位精简指令集(RISC)单片机。其中megaAVR系列内部都带有一个硬件乘法器,计算一次8位乘8位的定点乘法只需2个时钟周期。因此采用8位定点采样数据乘以8位系数的定点乘法方式完成滤波器算法是最高效的。

  低通滤波处理涉及的运算形式为一个纯小数系数和一个已知数据相乘再相加。因此将系数采用定点小数的表示形式,对于提高算法速度是至关重要的。

  可以定义一种8位定点小数表示形成——Q8,其各位权系数如下:

种基于AVR单片机的工频干扰滤除快速算法

  Q8数的表示范围从0到1-2 -8=0.99609375,每两个数之间的间隔是2 -8(0.00390625),其所能表示的纯小数共有2 8=256个。例如11011000就表示2 -1+2 -2+2 -4+2 -5=0.84375,而11011001就是表示2 -1+2 -2+2 -4+2 -5+2 -8=0.84765625,因此0.84375和0.84765625之间的纯小数只能用这两个数中的一个近似表示了。这对于乘法计算的精度有一定的影响,但是由于滤波公式(3)中的系数a和(1-a)都是常数,在整体性能稳定的情况下,系数微小的不确定性对滤波器整体性能并没有太大的影响。

  3 分配系数法原理

上一页  [1] [2] [3]  下一页


Tag:单片机学习单片机开发,单片机原理维修教程知识 - 单片机学习