防脉冲干扰移动平均值法数字滤波器的C语言算法_第1页
防脉冲干扰移动平均值法数字滤波器的C语言算法_第2页
防脉冲干扰移动平均值法数字滤波器的C语言算法_第3页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

本文格式为Word版,下载可任意编辑——防脉冲干扰移动平均值法数字滤波器的C语言算法防脉冲干扰移动平均值法数字滤波器的C语言算法

程序匠人发表于2023-3-1423:16:00阅读全文(2108)|回复(1)|引用通告(21)|编辑

在大量的数据采集系统中,现场的强电设备较多,不可避免地会产生尖脉冲干扰,这种干扰一般持续时间短,峰值大,对这样的数据进行数字滤波处理时,仅仅采用算术平均或移动平均滤波时,尽管对脉冲干扰进行了1/n的处理,但,其剩余值依旧较大。这种场合最好的策略是:将被认为是受干扰的信号数据去掉,这就是防脉冲干扰平均值滤波法的原理。

防脉冲干扰平均值滤波法的算法是:对连续的n个数据进行排序,去掉其中最大和最小的2个数据,将剩余数据示平均值。

在一般8051单片机的应用中为了加快数据处理速度,n可以取值6。而对于具有较快速度的处理器,则n值可以适当取大一些。但最好是

n=2^k+2,k为整数,由于这样在求平均值average=SUM/(n-2)=SUM/2^k时,可以写成average=SUM>>k,用移位的方法,可以加快处理速度。

上述算法显然还存在一个不足之处,就是每采集一个数据就要进行一次排序,

这样会大量占用系统宝贵的时间。这可以通过存储当前数据中的最大值和最小值来改进。具体做法是:

系统中用两个变量来存储当前n个数据的最大值和最小值在这个数组中的

偏移量(也就是数组下标,存储数组下标而直接不存储数据本身是由于:在一般的系统中,n不会超无符号短整形的表示范围,因此用一个char形变量就可以存储了,而假使直接存储数据本身,则大量状况下要用int形变量,甚至更长的类型)。这样只要在当前输入的数据将要覆盖的数据正好是当前的最大值或最小值时才在下个数组中查找最大值或最小值,而其他状况下则只要将输入的数据与最大值和最小值比较就可以修改下最大值和最小值了,而且不用进行数据排序。这个算法很简单,下面是对应的C语言代码实现,可以很便利的应用的具体的51单片机,或其他处理器上,只须做少量的修改。#include\

#definedtypeunsignedint//采集数据的数据类型#defineuint8char

#defineLEN6//移动算术平均的个数+2=SHIFT=8,//因此用指针记录而不是直接记录最大值和最小值

dtypedatas[LEN];dtypeszlb(dtype_data){

/****************************//*在调用此子程序前必需对*//*pdata,datas[]数组,*//*pmax,pmin进行初始化*//****************************/uint8i;

dtypeaverage=0;//清零,用来计算平均值

pdata=(pdata+1)%LEN;//指针下标在0到LEN-1上滑动datas[pdata]=_data;//采样所得数据存入数据表中for(i=0;idatas[pmax])

pmax=pdata;//得到最大值的指针elseif(_datadatas[pmax])pmax=i;}

elseif(pdata==pmin)//假使当前输入值将存入当前最大值的位置时{//由以上方法将不可行,必需从其他位置中查找极值for(i=0;i>SHIFT);//求算术平均值}

/******以下是在VC++6.0环境下运行的测试程序**//***通过手动输入来模拟数据采集过程****/voidmain()

{uint8i;dtype_data;pdata=0;pmax

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论