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

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

文章摘要: 内容摘要:提出了一种利用数字滤波器滤除工频干扰的快速算法。这种算法从AVR单片机内部硬件乘法器的特点出发,采用分配系统数法进行低通数字滤波器设计。经过VMLAB集成开发环境的仿真验证,算法速度快、代码效率高、滤波效果理想。 工频干扰广泛存在各种工业现场中,其产生的途径主要包括输电馈线、照明设备、发动机以及各种电子仪器设备等。一般可以通过滤波电路消除工频干扰,但这必将增加硬件结构的复杂程度。实际上,还可以采用数字信号处理的相关算法,通过软件滤波器滤除工频干扰。软件滤波算法的采用,无疑会在简化电路结构的同时,使系统的硬件资源得到更加充分的利用,并达到降低产品成本的要求。AV

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

      内容摘要:提出了一种利用数字滤波器滤除工频干扰的快速算法。这种算法从AVR单片机内部硬件乘法器的特点出发,采用分配系统数法进行低通数字滤波器设计。经过VMLAB集成开发环境的仿真验证,算法速度快、代码效率高、滤波效果理想。

      工频干扰广泛存在各种工业现场中,其产生的途径主要包括输电馈线、照明设备、发动机以及各种电子仪器设备等。一般可以通过滤波电路消除工频干扰,但这必将增加硬件结构的复杂程度。实际上,还可以采用数字信号处理的相关算法,通过软件滤波器滤除工频干扰。软件滤波算法的采用,无疑会在简化电路结构的同时,使系统的硬件资源得到更加充分的利用,并达到降低产品成本的要求。

  AVR单片机是Atmel公司生产的8位精简指令集(RISC)单片机。与同类单片机相比,在运算速度、外设资源、灵活性等方面性能均衡,性价比较高。AVR单片机适合C语言开发,Mega系列AVR单片机还有一个内部硬件乘法器单元。这些特点都为软件滤波器的实现提供了极大的便利。

  1 滤波算法

  常用的单片机滤波算法包括中值滤波、增色值滤波、滑动平均以及复合滤波算法等。工频干扰的频率范围在50Hz附近,可以采用一个截止频率远低于50Hz的低通滤波器来滤除工频干扰。

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

  假设输入信号x(t),输出信号y(t),则一个RC低通滤波器表达式为:τ[dy(t)]/dt+y(t)=x(t),其中τ为时间常数。

  连续时间信号经过采样后成为离散时间信号,低通滤波器的表达式也变为:

  τ[y(t)-y(k-1)]/ Δt+y(k)=x(t)   (1)

  Δt为采样时间间隔,k为归一化时间。

  由(1)式可得:

  y(k)=[1/(1+τ/Δt)]x(k)+(τ/Δt)/(1+τ/Δt)[y(k-1)  (2)

  令a=(τ/Δt)(1+τ/Δt),代入(2)式,

  y(k)=(1-a)·x(k)+a·y(k-1)   (3)

  对(3)式进行z变换,可得:

  Y(z)=(1-a) ·X(z)+a·z-1·Y(z)

  所以系统的传递函数为:

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

  假设采样频率Fs=500Hz,a分别取0.8、0.85、0.9、0.95,代入(4)式,利用matlab画出频率响应曲线,如图1。其中50Hz频率对应的幅度衰减见表1。

  表1 50Hz幅度衰减

a衰减0.8-9.4dB0.85-11.9dB0.9-15.5dB0.95-21.6dB

www.88dzw.com

  6 基于VMLAB的滤波系统仿真实现

  VMLAB的全称为:Visual Micro Lab。它针对AVR系列单片机和ST62系列单片机设计,是一个单片机的虚拟原型框架,可以提供给用户一个真正意义上的虚拟微控制器(MCU)设计实验室。它具有强大的多窗口、多文件的编辑器,微控制器的集成开发环境,拥有一系列的集成开发工具,图形界面的调试器,混合模式的模拟-数字电路仿真器,代码质量检测器等。基于MCU,它可以仿真出包括模拟元器件在内的更多外围设备,并具有交互式器件模拟仿真功能。

  假设有用信号2V大小的直流信号,工频干扰是峰峰值为1V,频率为50Hz的正弦波,建立单片机AD的输入信号表示形式如下:

  2+0.5 sin(2π×50×t)

  VMLAB通过工程文件来管理和控制各种仿真信息、硬件连接以及显示I/O电压波形等。根据本算法的特点,采用Atmega16作为目标单片机,时钟选为8MHz,建立工程文件。恰当设置OCR0等存储,使计数器比较匹配中断的时间间隔约为2ms,这样AD的采样频率Fs近似认为等于500Hz。经过仿真,对比结果如表3。

  表3 Fs=500Hz时仿真结果对比

aDA输出纹波峰峰值衰减幅度DA输出均值收敛时间0.80.36V-8.8dB1.99V约为100ms0.850.28V-11.1dB1.99V约为120ms0.90.2V-14dB1.98V约为145ms0.950.1V-20dB1.95V约为210ms

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


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