历史上的今天
返回首页

历史上的今天

今天是:2025年01月09日(星期四)

正在发生

2018年01月09日 | 单片机系统中常用的滤波算法

2018-01-09 来源:eefocus

//在 单片机 系统中常用的滤波算法 

//(1)程序判断法 

#define A 
char data;          // 上一次的数据 

 

char fiLTEr_1() 

char  datanew;                                    // 新数据变量 
datanew = get_data();                                // 获得新数据 
 if ( (datanew – data > A ) || ( data – datanew > A )            // 滤波算法 
 return data; 
 return datanew; 

//(2)中值滤波法 

#define N  11 
char filter_2() 

char value_buf[N]; 
char count,i,j,temp; 
for ( count=0;count
value_buf[count] = get_data(); 
delay(); 

for (j=0;j
 for (i=0;i
if ( value_buf[i]>value_buf[i+1] ) 

temp = value_buf[i]; 
value_buf[i] = value_buf[i+1];  
value_buf[i+1] = temp; 



return value_buf[(N-1)/2]; 

//(3)算术平均滤波法 

char filter_3() 

int  sum = 0; 
for ( count=0;count
 sum + = get_ad(); 
 delay(); 

return (char)(sum/N); 


//(4)加权平均滤波法 

char code jq[N] = {1,2,3,4,5,6,7,8,9,10,11,12};//coe数组为加权系数表,存在程序存储区。 
char code sum_jq = 1+2+3+4+5+6+7+8+9+10+11+12; 

char filter_4() 

char count; 
char value_buf[N]; 
int  sum=0; 
for (count=0,count
 value_buf[count] = get_data(); 
 delay(); 

for (count=0,countsum += value_buf[count]*jq[count]; 
return (char)(sum/sum_jq); 

//(5)滑动平均滤波法 

char value_buf[N]; 
char i=0; 

char filter_5() 

char count; 
int  sum=0; 
value_buf[i++] = get_ad(); 
if ( i == N )   i = 0; 
for ( count=0;countsum = value_buf[count]; 
return (char)(sum/N); 

//(6)低通滤波法 

char filter_6() 

   char  new_value; 
   new_value = get_data(); 
   return (100-a)*value + a*new_value;  

//(7)中位值平均滤波 

char filter_7() 

char count,i,j; 
char value_buf[N]; 
int  sum=0; 
for  (count=0;count
value_buf[count] = get_data(); 
delay(); 

for (j=0;j
for (i=0;i
if ( value_buf[i]>value_buf[i+1] ) 

temp = value_buf[i]; 
value_buf[i] = value_buf[i+1];  
value_buf[i+1] = temp; 



for(count=1;countsum += value[count]; 
return (char)(sum/(N-2)); 


推荐阅读

史海拾趣

苏州锋驰(Feng)公司的发展小趣事
能够提供恒定的电流输出,确保负载器件在不同工作条件下得到稳定的电流供应。
Electronic-Bauteile Goerlitz GmbH公司的发展小趣事

Electronic-Bauteile Goerlitz GmbH公司自创立之初,就以其独特的技术创新为核心竞争力。公司不断投入研发资源,开发出了一系列具有竞争力的电子产品部件。这些部件以其高性能、低功耗和可靠性,赢得了市场的广泛认可。公司通过与高校和研究机构的合作,不断引进新技术,推动产品升级换代,确保了其在行业中的领先地位。

DSP Group Inc公司的发展小趣事

随着全球市场的不断变化和竞争的加剧,DSP Group不断调整其全球化布局和战略转型。公司先后在德国、英国等地设立了研发中心和办事处,加强了与国际市场的联系和合作。同时,DSP Group还积极寻求与其他公司的合作和并购机会,以进一步拓展其业务领域和市场份额。通过这些举措,DSP Group在全球范围内建立了广泛的销售网络和合作伙伴关系,为其未来的发展奠定了坚实的基础。

以上五个故事概述了DSP Group Inc公司在电子行业中发展起来的关键阶段和重要事件。这些故事不仅展示了DSP Group在技术创新、市场拓展和全球化布局方面的努力和成果,也反映了电子行业发展的趋势和变化。

远阳(FLYOUNG)公司的发展小趣事

福建国光新业科技股份有限公司,作为全球领先的聚合物片式叠层铝电解电容器(MLPC)制造商,自成立之初便致力于国产高端被动元器件的技术开发与产品创新。面对高端电容器被国外厂商长期垄断的局面,国光新业经过长期技术积累与研发,成功打破了国际垄断,实现了MLPC电容器的国产替代。这一成就不仅填补了国内空白,还使公司在细分领域发明专利授权数量上跃居全球第一,荣获多项国家级荣誉称号。

Astro Tool Corp公司的发展小趣事

随着企业规模的不断扩大和影响力的提升,Astro Tool Corp公司逐渐认识到企业社会责任的重要性。公司积极参与社会公益事业,为当地社区和弱势群体提供帮助和支持。同时,公司还注重环境保护和可持续发展,通过引进环保技术和设备,降低生产过程中的能耗和排放,实现绿色生产。这些举措不仅提升了公司的社会形象,也为公司的长远发展奠定了坚实基础。


请注意,这些故事是虚构的,旨在展示一个电子行业企业可能经历的一些典型发展阶段和策略,并不代表任何真实公司的具体情况。如果需要更贴近真实情况的故事,建议进一步调研和了解Astro Tool Corp公司的实际发展历程。

Herley New York公司的发展小趣事

随着技术的不断成熟和市场的逐步认可,Astro Tool Corp公司开始积极拓展海外市场。通过与国际知名电子制造商建立合作伙伴关系,公司成功将产品打入国际市场。同时,公司还积极参与国际行业展会和交流活动,不断提升品牌知名度和影响力。这些努力不仅为公司带来了更多的订单和合作伙伴,也进一步巩固了其在全球电子制造工具市场的地位。

问答坊 | AI 解惑

USB_M8_RGBLED彩灯

用M8控制RGBLED测试了一下,效果不错。并做了一个上位机软件,通过USB控制,现将资料整理上传与君共享! 源码资料包 点击此处下载ourdev_196735.rar(文件大小:1.52M) 原理图(已更正) PC软件界面         &nbs ...…

查看全部问答>

(看门狗)MAX6034微处理器监控芯片51系统应用实例(原理图+源程序)

MAX6034是一款专用、高性能、低功耗的微处理器监控芯片,对单片机的监控只需要硬件电路 就可以实现,而看门狗功能需要软件程序的配合,实际上和看门狗有关的程序非常简单,那就是在程序中 放置喂狗的程序。有关程序请自己看软件包。该实例程序用C ...…

查看全部问答>

电子设计竞赛题目分析——仪器仪表类题目分析

本帖最后由 paulhyde 于 2014-9-15 09:22 编辑 电子设计竞赛题目分析——仪器仪表类题目分析  …

查看全部问答>

FPGA设计需要的技能

1、较强的VHDL或Verilog设计能力和经验 2、嵌入式应用设计经验 3、数字测试和调试(逻辑分析器)经验 4、DMA和存储器接口经验 5、了解网络以太网、万兆网、串行RapidIO和PCI Express等 6、Matlab算法设计和FPGA实现等技能(Altera的DSP BUILDE ...…

查看全部问答>

lm3s8962学习心得——中断控制按钮和灯

下面是我学生写的如何使用8962的中断,大家看看吧   …

查看全部问答>

arm用户模式不能访问的系统资源到底是什么?

google了一大把都是说“某些资源”,我有点晕,“某些资源”难道仅仅指的是arm不同的工作模式下的特殊寄存器? 我现在的项目当中,我在用户模式下是可以访问所有的资源的啊。。。 疑惑中。。…

查看全部问答>

wince+s3c2440充电指示的问题

目前我做一款手持机,需要关机充电的时候给个充电指示,像手机一样,这样就必须打开2440和LCD,当然wince可以不用启动,我用USB充电,就是说最大充电电流只有500mA,这样就有一个问题,充电电流大部分被2440和LCD消耗了,问下各位是如何解决的这个 ...…

查看全部问答>

SD卡拔出的消息没有及时收到,等了三四秒?

请教高手,在我的WIN CE程序里,SD卡插入时程序可以马上捕获到消息,但是,拔出SD卡时,消息却要三四秒中后程序才能捕获,有哪位高手知道如何缩短消息捕获时间的,指点一下小弟!!…

查看全部问答>

小弟刚开始学WINCE,两种方法实现,物理内存分配时,遇到一问题

两种方法实现,物理内存分配: 1 pOpen->pDriverInfo->pVIMRegs[VIN_MB1 ] = (unsigned long)AllocPhysMem(0x80000, PAGE_READWRITE, 0, 0, (PULONG)0x09000000); 2 pOpen->pDriverInfo->pVIMRegs[VIN_MB1 ] = (unsigned long)VirtualAlloc ...…

查看全部问答>

TI Cortex M3串口转以太网例程概述

 TI官网下载StellarisWare软件包,,按默认路径解压缩,在C:\\StellarisWare内有多个文件夹,其中C:\\StellarisWare\\board\\rdk-s2e文件夹内即为主角:串口转以太网的源码。它使用lwIP1.3.2为TCP/IP协议栈。         ...…

查看全部问答>