一种基于AVR单片机的工频干扰滤除快速算法
消除工频干扰的自适应滤波器

很好 的消 除这类 干 扰通 常 采 用带 阻滤 波 器 ( 波 陷
滤波器 ) 这类 滤波 器 可 以有 效 地消 减 5 H , O z的 工
频 干扰 , 这种 设 计 方法 的 缺 点 在 于 在 抑 制输 入 但 干 扰信 号的 同 时也 衰 减 了信 号 中 5 H 0 z的 有效 成 份, 同时 滤波器会 缓慢 的衰减 有用 的信 号 , 且在 并 干 扰信 号幅频 特性 有所改 变时 将会 降 低 滤波 器 的 性能 。典 型 的陷波 滤波器 幅相频 率 特性 如 图 1所
个参 考 的干 扰 信 号 R1 t , R1 t 参 数 和 n () 当 () o
其 中 V [ n+1 T]=x ( d( ) [ n+1 T ) ]一R [ n 1 ( +1 T] )
( ) 参数 非 常 接 近 时 ( R ( )一n ( ) 我 们 t的 即 1t ot) 可 以有效 的 去 消 除 信 号 中 的 干扰 部 分 n ( ) 如 o t,
.
w y mpo e oei n t t hsp p r ic se ef—a a tbeftrn p ra hw ihpo e ob e f e a se lyd t l miaei.T i a e su sssl d d pa l l iga po c hc rvst ev r e e . ie y
-
波的方法 , 以取得较好的效果 。 可
关键 词 : 陷波滤波; 适应滤波; 自 工频干扰
中图分类 号 :N 1. T 9 17
文献 标识 码 : B
Th ef- a a t b e Fi e fEl i a i g e S l - d p a l l r o i n tn - t m
AVR单片机SPI通信的一种抗干扰方法

#mkfs.jffs2 /dev/mtd3
就是地址偏移量;Physical length of flash mapping是MTD 现在 m t d 3 被格式化为 J F F S 2 文件系统了。
从机方在开始一个数据组的传输前,需要查询 S S 引 脚的电位。 在该脉冲前沿出现之后,主机开始新的传输 之前,重新设置控制寄存器 S P C R ,并给 S P D R 写好准备 在传输开始时传给主机的数据。
3 实例程序
本例是一个工控设备中的两个模块:主控模块和监 视模块。二者的 C P U 都采用 A V R 的 A T 9 0 S 8 5 1 5 单片机。
SEI
;为更高优先的操作而开中断
IN T E M P 0 , S P D R ;接收数据
ST Y+,TEMP0
CPI YL,REPORT+8 ;一组完了吗?
BRCS TRNSX
……
;处理 REPORT 中收到的数据组
CLI
;(& & &)
TRNS1: SBIC PINB,4
;查询联络信号
RJMP TRNSY
复位。 此复位动作不仅会清除控制寄存器 S P C R ,同时 也会清除位计数。
干扰去除算法

干扰去除算法干扰去除算法是一种用于消除信号中的干扰成分,提取出感兴趣信号的方法。
在实际应用中,我们经常会遇到信号受到噪声、干扰或其他非期望成分的影响,这将严重干扰我们对有用信号的分析和处理。
因此,干扰去除算法的研究和应用具有重要的意义。
1. 引言干扰指的是在信号中存在的非期望成分。
干扰可以来自多种来源,例如电源线上的交流电信号、电磁辐射、电子器件之间的相互干扰等。
干扰信号的存在会导致信号失真、降低信号质量、加大信号处理难度等问题。
为了排除干扰信号对有用信号的影响,需要使用干扰去除算法对信号进行处理,提取出我们感兴趣的成分。
干扰去除算法的设计目标是尽可能减少或消除干扰成分,同时保留原始信号的有效信息。
2. 常用的干扰去除算法2.1 滤波器法滤波器法是最常见的干扰去除方法之一。
该方法通过设计滤波器来抑制干扰信号。
滤波器可以分为时域滤波器和频域滤波器两种。
时域滤波器是基于信号在时间域的特性进行处理的。
常见的时域滤波器包括移动平均滤波器、中值滤波器等。
移动平均滤波器通过计算信号的移动平均值来消除高频成分,从而降低干扰信号的影响。
中值滤波器则通过计算信号的中值来抑制异常值,减少干扰。
频域滤波器是基于信号在频域的特性进行处理的。
常见的频域滤波器包括低通滤波器、高通滤波器、带通滤波器等。
低通滤波器通过保留低频成分,抑制高频成分,从而实现干扰去除的目的。
高通滤波器则相反,通过保留高频成分,抑制低频成分。
带通滤波器可以选择性地保留一定频段的信号。
2.2 自适应滤波法自适应滤波法是一种根据信号的统计特性来调整滤波器参数的方法。
自适应滤波法根据输入信号的特点,在滤波器中动态地调整权值或滤波系数,以尽可能减少干扰的影响。
自适应滤波法通常需要根据信号的特点进行模型建立和参数估计。
常见的自适应滤波算法包括最小均方差滤波器(LMS)和最小二乘法滤波器(RLS)等。
这些算法通过不断更新滤波器的参数,使其能够适应信号的变化,从而实现干扰去除的效果。
工频干扰简单消除方法

工频干扰简单消除方法摘要: 1、应该说数字滤波器可以有效减小50Hz 工频的干扰,完全消除是不可能的。
2、以20ms 为最小单位的整倍数周期滤波,可以有效减少工频的干扰。
我们知道,设计数字滤波器,和模拟滤波器的实质,其实就是求一组系数,逼近要求的频率响应。
模拟滤波器已经很成熟,因此,数字滤波器的设计,将S 平面映射到Z 平面就型。
采用双线性变化法映射,可以避免...1、应该说数字滤波器可以有效减小50Hz 工频的干扰,完全消除是不可能的。
2、以20ms 为最小单位的整倍数周期滤波,可以有效减少工频的干扰。
我们知道,设计数字滤波器,和模拟滤波器的实质,其实就是求一组系数,逼近要求的频率响应。
模拟滤波器已经很成熟,因此,数字滤波器的设计,将S 平面映射到Z 平面就型。
采用双线性变化法映射,可以避免多值映射产生的混叠现象。
但这有个问题就,模拟域和数字域两者的角频率是非线性的。
1.平滑滤波器是数字滤波中较早使用的方法,该算法简单,处理速度快,滤波效果较好,但存在明显不足,通带较窄,影响有用信号的分析,有严重削峰,设计方法略。
然后,我们根据IIR 和FIR 分两大类。
FIR 滤波器,可以得到严格的线性相位,但它的转移函数的极点固定在原点,只能通过改变零点位置来改变性能。
为了达到高的选择性,必须使用高阶。
相同设计指标下,FIR 滤波器的阶数是IIR 滤波器的5~10 倍。
而IIR 滤波器可以根据模拟滤波器的设计公式,数据和表格,计算量小。
首先介绍IIR 类,即两种形式的notch 滤波器。
2.陷波器notch 滤波器陷波器,是IIR 数字滤波器,有signal notch 滤波器,即单一频率陷波器,以及comb notch 滤波器,即梳妆滤波器。
陷波器是无限冲击响应(IIR)数字滤波器,该滤波器可以用以下常系数线性差分方程表示:式中:x(n)和y(n)分别为输人和输出信号序列;ai 和bi 为滤波器系数。
对式(1)两边进行z 变换,得到数字滤波器的传递函数为:式中:zi 和pi 分别为传递函数的零点和极点。
一种基于AVR单片机的空气净化器控制系统

路 。 红 外 信 号 经 过 滤 波 和 放 大 处 理 后 仍 为 不 规 则
的带 尖 峰 的脉 冲 信 号 。要 想 单 片机 能 得 到可 靠 稳
ቤተ መጻሕፍቲ ባይዱ定 的 信 号 ,还 需 要 对 Da O t进 行 整 形 处 理 。 t u1 a
考 虑 到设 计 的 便 利 与节 约 性 , 在程 序 的 处理 中 ,不再 对 信 号 进行 采 样 ,而是 直 接 采用 单 片机 的查 询 进 行处 理 , 当单 片机 P 端 口检 测 到脉 冲 D2 信 号 的时 候 ,通 过 查 询程 序 ,直 接调 整 交 流 电机
来 采集 数 据 ;而 当单 片机 发 出断开 指 令 的 时候 , T S 0  ̄ 不被加 热 ,传 感器处 于等待状 态 。 G 80 I ]
图2 控 制 系 统硬 件 模 块 总 体结 构 图
单 片机 端 口为ADC的模 拟 输入 引脚 ,在 这里 被 用 作传 感器 采集 信号 的输 出端 口,根据 T 8 ( GS 】 0 传 感 器 的特 性 知 道 ,其 输 出端 口的 电压 值 将 随着 检 测 的 空气 质 量 不 同而 发 生变 化 ,单 片机 首 先进 行 采 样 ,并 将根 据 电压 的变 化 范 围 与幅 度 来判 断
的促 进意义 。
丙 烷 等 可 燃性 气体 、一 氧 化 碳 、硫 化 氢 等 有毒 气
体 , 以及 酒 精 等 各种 气 体 浓 度 。电 源 电路 模 块 是
滤除50Hz工频干扰的滤波电路设计

带阻 滤波器是 指在某 一频 带 M giu e a n d t 内信 号受 到很大 衰减或抑 制 导制 几乎 不能通 过 ,而在其余 频率 范 围信 号 则 能 顺 利 通 过 的 电 路 结 构 ,主要 用 于 消 除 某 些 无 用 信 号 ,以 减 小 对 有 用 信 号 的 干 扰 _ .在 电阻 、电容构成 的双 T 2 ] 滤 波 网络 后添加 一级 同相 比例运 图1 有源带阻滤波电路 图2 有源带阻滤波电路幅频特性 算 电路 ,即构成 基本 的二 阶有源带 阻滤 波 电路 ,如 图 1所 示. 其 中 R 、R 、c 。 z s和 C 、C 、R z s构成 双 T 选频 网络 ,运算 放大器 U。 有放大 和反馈 作用 .在双 T选频 网络 中,电阻 R 、R 具 的阻值相 同 ,均 为 R, 电容 c 、C 。的容 量相 同 ,均为 C,二者之 间 的电阻 R 的阻 值为 R/ ,电阻 R 、R 。 Z 之间 的电容 c 的容量 a
滤 除 5 工 频干 扰 的滤 波 电路设 计 Hz 0
鲁 连钢
( 岭 师 专 ,辽 宁 铁 岭 1 2 0 ) 铁 1 0 0
摘 要 :结 合 目前低 频 电 子设 备 普 遍 存 在 受 5 工 频 干 扰 的 现状 ,通 过 对 滤 波 电路 的深 入 研 究 ,借 助 电 0Hz 路仿 真 工具 ,研 究 并设 计 一 种 能够 有 效 滤 除 5 0Hz工频 及 其 二次 谐 波 的 可 调 Q 值 双 T 有 源 带 阻 滤 波 电路 . 该 电路具 有 良好 的滤 波 、 放 大 、 反馈 、调 节功 能 ,在低 频信 号信 息 处 理 、 数据 传 输 、抑 制干 扰 等 方 面 都 可 以得 到
抑制心电信号中工频干扰的滤波采样系统设计

传感 器与微 系统 (Transducer and Microsystem Technologies)
‘ 2018年 第 37卷 第 4期
DOI:10.13873/J.1000-0787(2018)04-0094--04
抑 制心 电信 号 中工 频 干扰 的 滤 波 采 样 系统 设 计
0 引 言 对 心 电 图 (electrocardiogram,ECG)的 分 析 是 研 究 心 脑
血 管 疾 病 的 主 要 手 段 ,在 医 学 领 域 具 有 较 为 广 泛 的 应 用 ,但心 电信号是 由心肌收缩产 生 的弱电信 号 ,其 振 幅 区间为 1O V-4mV,频率为 0.05—100 Hz ,且取 自人体 表 面 ,很 容 易 受 到 周 围 环 境 噪 声 的 干 扰 。 工 频 噪 声 是 主 要 的噪声 来源 ,由市 电环境 中的 50Hz交流 信号组 成 ,其 与心 电信 号频带重叠 ,严重影响对心 电信号 的分析。因此 , 滤 除工频干扰成为心 电图研 究中一项必要 的工作 。
郝 东昊 ,鲁 华祥 。,陈 刚 ,陈 旭 ,龚 国 良 ,毛 文 宇
(1.中 国 科 学 院 半 导 体 研 究所 ,北 京 100083;2.中 国科 学 院 脑 科 学 与 智 能 技 术 卓 越 创 新 中 心 ,上 海 200031)
摘 要 :针对心 电信 号采集过程 中易受工频信 号干 扰 的问题 ,设计 了一种 高衰 减倍 数 的滤波 采样 系统 。 以 XC3SD3400A芯片为主控单元 ,陷波模块和滤波模 块依 次对心 电信号滤波 ,采用 16位 AD7656采样滤波 , 并将数据缓 存后通过通用串 口总线 (USB)传输至上位机处理 。定性和定量分 析结果表 明:系统能够将 工频 噪声衰减 300倍 ,且输出信噪比有较大 的提升 ,具有噪声 高衰减 、有用信息低损失 、高精度采样等优点 。 关键词 :心 电信 号 ;工频 干扰 ;滤波 ;数据采样 中 图 分 类 号 :TN710 文 献 标 识 码 :A 文章 编 号 :1000-9787(2018)04- 0 094- 04
一种基于AVR单片机的工频干扰滤除快速算法

一种基于AVR单片机的工频干扰滤除快速算法摘要:提出了一种利用数字滤波器滤除工频干扰的快速算法。
这种算法从AVR单片机内部硬件乘法器的特点出发,采用分配系统数法进行低通数字滤波器设计。
经过VMLAB集成开发环境的仿真验证,算法速度快、代码效率高、滤波效果理想。
关键词:单片机定点小数 FIR 工频干扰分配系数法 VMLAB工频干扰广泛存在各种工业现场中,其产生的途径主要包括输电馈线、照明设备、发动机以及各种电子仪器设备等。
一般可以通过滤波电路消除工频干扰,但这必将增加硬件结构的复杂程度。
实际上,还可以采用数字信号处理的相关算法,通过软件滤波器滤除工频干扰。
软件滤波算法的采用,无疑会在简化电路结构的同时,使系统的硬件资源得到更加充分的利用,并达到降低产品成本的要求。
AVR单片机是Atmel公司生产的8位精简指令集(RISC)单片机。
与同类单片机相比,在运算速度、外设资源、灵活性等方面性能均衡,性价比较高。
AVR单片机适合C语言开发,Mega系列AVR单片机还有一个内部硬件乘法器单元。
这些特点都为软件滤波器的实现提供了极大的便利。
1 滤波算法常用的单片机滤波算法包括中值滤波、增色值滤波、滑动平均以及复合滤波算法等。
工频干扰的频率范围在50Hz附近,可以采用一个截止频率远低于50Hz的低通滤波器来滤除工频干扰。
假设输入信号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)所以系统的传递函数为:假设采样频率Fs=500Hz,a分别取0.8、0.85、0.9、0.95,代入(4)式,利用matlab画出频率响应曲线,如图1。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
一种基于AVR单片机的工频干扰滤除快速算法摘要:提出了一种利用数字滤波器滤除工频干扰的快速算法。
这种算法从AVR单片机内部硬件乘法器的特点出发,采用分配系统数法进行低通数字滤波器设计。
经过VMLAB集成开发环境的仿真验证,算法速度快、代码效率高、滤波效果理想。
关键词:单片机定点小数 FIR 工频干扰分配系数法 VMLAB工频干扰广泛存在各种工业现场中,其产生的途径主要包括输电馈线、照明设备、发动机以及各种电子仪器设备等。
一般可以通过滤波电路消除工频干扰,但这必将增加硬件结构的复杂程度。
实际上,还可以采用数字信号处理的相关算法,通过软件滤波器滤除工频干扰。
软件滤波算法的采用,无疑会在简化电路结构的同时,使系统的硬件资源得到更加充分的利用,并达到降低产品成本的要求。
AVR单片机是Atmel公司生产的8位精简指令集(RISC)单片机。
与同类单片机相比,在运算速度、外设资源、灵活性等方面性能均衡,性价比较高。
AVR单片机适合C语言开发,Mega系列AVR单片机还有一个内部硬件乘法器单元。
这些特点都为软件滤波器的实现提供了极大的便利。
1 滤波算法常用的单片机滤波算法包括中值滤波、增色值滤波、滑动平均以及复合滤波算法等。
工频干扰的频率范围在50Hz附近,可以采用一个截止频率远低于50Hz的低通滤波器来滤除工频干扰。
假设输入信号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)所以系统的传递函数为:假设采样频率Fs=500Hz,a分别取0.8、0.85、0.9、0.95,代入(4)式,利用matlab画出频率响应曲线,如图1。
其中50Hz频率对应的幅度衰减见表1。
表1 50Hz幅度衰减2 定点小数表达方式为了精确构造数字滤波器,经常要用到浮点数据和系统。
在进行浮点数乘法运算时,针对AVR单片机设计的C编译器例如AVR-GCC,需要加入额外的数学库函数进行编译。
而这会使编译后程序的代码量增加、处理时间加长、处理器的开销也随之增加。
为了更大限度地降低系统开销,提高程序效率,采用定点小数表示形式进行乘法运算是最佳选择。
AVR单片机是一种8位精简指令集(RISC)单片机。
其中megaAVR系列内部都带有一个硬件乘法器,计算一次8位乘8位的定点乘法只需2个时钟周期。
因此采用8位定点采样数据乘以8位系数的定点乘法方式完成滤波器算法是最高效的。
低通滤波处理涉及的运算形式为一个纯小数系数和一个已知数据相乘再相加。
因此将系数采用定点小数的表示形式,对于提高算法速度是至关重要的。
可以定义一种8位定点小数表示形成——Q8,其各位权系数如下: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 分配系数法原理从(3)式可知,滤波算法可以用迭代计算实现,为保证每个新的输出值都可以作为下次计算的输入值,必须使输出值和输入值的位宽度一致。
必须使输出值和输入值的位宽度一致。
AVR单片机内部硬件乘法器的输出结果为16位,两次乘法运算的结果还要进行加法运算,其结果很有可能超过16位宽度。
如果要进行迭代计算,就要将乘加运算的结果转化成8位表示方式。
一种解决方法是用查表法实现乘法计算,这样运算结果就直接表达成8位定点数形式,不用进行表示方式的转化,但是这种方案要占用额外的硬件在座空间构造一张查找表。
可以从逆向进行思考:由(3)式可知,每个新的输出值y(k)都与上一次的输出值y(k-1) 和新的输入值x(k)有关。
y(k-1)和x(k)都是8位的,因此最大值为0xFF。
为了使a×y(k-1)+(1-a) ×x(k)不超过0xFFFF,两个系统a和(1-a)的和不能超过0xFFFF/0xFF=0x101。
实际上,a+(1-a)等于"1",因此这里的0x101就可以看作“1”。
如果取a=0.9,那么对应地将0x101平均分成10份,取其中的9份,即0x101×0.9近似等于0xE7,相应地0.1就等于0x101-0xE7=0x1A。
这里的0xE7可以近似被认为是0.9的一种定点Q8数表示形式,而0.1的定点Q8数表示形式就是0x1A。
由于滤波器系数a和(1-a)采用了Q8数的表示形式这种将16位乘加运算结果转化为8定点数表示形式的工作就变得各简单了,只需通过移位运算,取y(k)的高8位即可,对应的C语言代码为:y(k)=(char)(y(k)>>8)在C语言编程处理中,并不需要建立一个数组来存储y(k)的值,而只需定义两个unsigned char型的变量分别存储y(k-1)和x(k)。
当乘加计算a×y(k-1)+(1-a)×x(k)完成后,将结果转化为8位定点数形式,再将其赋值给y(k-1)所对应的变量即可。
因此采用迭代方式进行乘加运算后,整个运算过程只需要两个变量和两个常数参加即可。
通过这种处理,y(k)就可以作为计算下一次输出值y(k+1)的一个已知量,并继续与Q8数形式的滤波器系数相乘,得到新的输出值。
这种处理方式简化了乘加运算的完成过程,节省了系统硬件资源,并降低了处理器开销。
4 采样时间的控制采用单片机进行数字信号处理,一种有效而准确的数据采集方式就是通过计数器中断服务程序(ISR)控制AD对输入信号进行精确采样。
但是(图2)中断服务程序(ISR)的开销影响了AD采样时间间隔的精确度,同时如果中断服务程序(ISR)的开销过大,必然导致AD的最高采样频率的降低。
因此,要想获得精确的采样频率,就必须在尽量减少中断服务程序开销的前提下,适当调整计数器中断的时间间隔。
这可以通过调整OCR0的预置数来完成。
5 算法流程图滤波算法是通过中断服务程序(ISR)来完成的,整个应用程序的主函数main()主要负责初始化计数器中断,并处理其它应用。
整个程序的流程图如图3所示。
本算法的C语言代码(附录A)经过AVR-GCC编译器的编译后,“.text”段只有310个字节,大大节省了单片机的flash空间。
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时仿真结果对比从表3可以看出:随着α的增大,算法收敛的时间变长,同时50Hz对应的衰减幅度增加,衰减的幅度值和理论推导基本一致。
另外,当a=0.95时,DA输出的均值变小。
这主要是进行循环迭代运算时,需要将16位的变量转化为8位表示形式所导致的。
在有用信号失真较小的情况下,为使滤波器达到降低工频干扰的最佳效果,必须恰当选择a值。
经过以上的仿真试验可以发现,当a=0.9时,衰减幅度、DA 输出均值和算法收敛时间表现比较均衡,可以作为一般情况下的选择值。
将VMLAB中虚拟示波器的显示数据导出到一个*.cvs文件中,用matlab读出这些数据,并画出不同a 值对应的输出响应,如图4。
从图4可以清晰看出不同a值下算法的性能变化的大致走向。
将AD的采样间隔设置为4ms,对应的采样频率Fs就变为250Hz,其它条件不变。
通过VMLAB进行仿真,对比结果如表4、图5。
表4 Fs=250Hz时不同a值仿真结果对比对比Fs=500Hz的情况,随着采样频率Fs降低,50Hz频率的幅度衰减值会逐渐增加。
这主要是因为随着采样频率降低,低通滤波器的截至频率fc也随之降低,相应的滤波器在50Hz处的衰减也就越来越低。
根据奈奎斯特低通采样定理,当采样频率小于100Hz时,由于信号频谱混叠,滤波器对50Hz信号的滤波效果将会变差。
如果只是对缓变信号进行采样,采样频率比100Hz稍大即可。
但是随着采样频率的降低,滤波算法的收敛时间也会增加。
因此必须在算法的滤波性能和收敛时间上进行折衷考虑。
本文提出的分配系数法设计数字滤波器,算法速度快、代码效率高、滤波效果理想,是一种实用的数字滤波器设计方法,体现了将算法嵌入到具体硬件的思想。
另一方面,将定点小数的表示形式进行适当扩展,这个算法还可以用于10位或16位AD转换精度的应用场合。