历史上的今天
返回首页

历史上的今天

今天是:2025年03月30日(星期日)

正在发生

2020年03月30日 | 单片机ADC采样算法----中位值滤波法

2020-03-30 来源:eefocus

中位值滤波法就是通过连续采样奇数个数据,然后对数据从小到大排序,取中间的值做为本次采样值。


下面看C代码的实现


#define M  11

 

unsigned int filter2( void )

{

    unsigned int value_buf[M];

    unsigned int count, i, j, temp;

    for( count = 0; count < M; count++ )

    {

        value_buf[count] = ReadVol_CH2();

    }

    for( j = 0; j < M - 1; j++ )

    {

        for( i = 0; i < M - j - 1; 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[( M - 1 ) / 2];

}

M为每次采样的数据个数,M要为奇数。


void main( void )

{

    while( 1 )

    {

        val = ReadVol_CH2();            //读取AD采样值

        val1 =  filte2();

        printf( "A%drn", val );

        printf( "B%drn", val1 );

    }

}

主程序中循环读取AD口的采样值,并将采样值通过中位值滤波算法进行滤波,通过串口分别打印原始采样值和滤波后的值,并通过串口将数据打印来,并在串口波形软件上显示。

蓝色曲线为采样的原始数据波形图,橙色曲线为经过中位值滤波算法滤波后的波形图。通过两组曲线可以看出,经过中位值滤波算法后,将原始曲线中的毛刺都滤除掉了,使采样数据更加平滑。


中位值滤波法可以滤除偶然因素引起的脉冲干扰,适用于变化缓慢的采样系统,如温度、液位、流量等系统的测量。

推荐阅读

史海拾趣

DeLorme公司的发展小趣事

近年来,随着智能手机和移动互联网技术的快速发展,传统的GPS导航设备市场受到了巨大冲击。面对这一行业变革,DeLorme公司及时调整战略方向,将重心转向智能导航应用软件的开发和推广。他们通过与智能手机厂商的合作,将自己的导航软件集成到手机系统中,为用户提供更加便捷、高效的导航服务。同时,他们还积极探索新的商业模式和市场机会,为公司的未来发展奠定了坚实基础。

Hitachi (Renesas )公司的发展小趣事

随着公司业务的不断发展,DeLorme公司开始积极寻求市场扩张的机会。他们通过与国外知名品牌的合作,将自己的产品推向了国际市场。同时,他们还积极参与国际性的户外活动和赛事,通过这些活动提高品牌知名度和影响力。在国际市场的竞争中,DeLorme公司凭借其独特的技术优势和优质的产品质量逐渐获得了认可。

Andersen Laboratories Inc公司的发展小趣事

自1997年成立以来,AnalogicTech便致力于技术创新,不断推动电子行业的发展。公司总部位于硅谷,设计中心则分布在圣塔克拉拉和上海,汇聚了全球顶尖的研发人才。凭借深厚的技术底蕴和创新能力,AnalogicTech成功研发出一系列具有颠覆性的产品,为当今最具创造性的消费品提供了强大的技术支持。

Ho Chien Electronics Group Inc公司的发展小趣事

为了满足客户对高效物流配送的需求,AnalogicTech建立了完善的物流配送体系。公司通过与快递公司或邮政EMS合作,实现了全国范围内的快速配送,并确保产品的及时送达。此外,AnalogicTech还为客户提供增值税专用发票和一系列优惠政策,进一步提升了客户满意度。

ALD [Advanced Linear Devices]公司的发展小趣事

自1997年成立以来,AnalogicTech便致力于技术创新,不断推动电子行业的发展。公司总部位于硅谷,设计中心则分布在圣塔克拉拉和上海,汇聚了全球顶尖的研发人才。凭借深厚的技术底蕴和创新能力,AnalogicTech成功研发出一系列具有颠覆性的产品,为当今最具创造性的消费品提供了强大的技术支持。

B&K Precision公司的发展小趣事

为了进一步拓展国际市场,B&K Precision在全球范围内设立了多个分公司和办事处。其中,2012年在中国设立的分公司百科中国仪器有限公司是一个重要的战略布局。这一举措不仅加强了公司在亚洲市场的地位,也为各地客户提供了更为迅速和便捷的售后服务保障。同时,通过与国际知名企业的合作与交流,B&K Precision不断吸收先进的技术和管理经验,为公司的持续发展注入了新的动力。

以上五个故事,展现了B&K Precision公司从车库起步到成为全球电子测量领域领导者的发展历程。通过不断创新和拓展业务,公司成功应对了市场变化和挑战,成为了电子行业中的佼佼者。

问答坊 | AI 解惑

音乐彩灯控制器设计

好心的大哥大姐帮帮小弟吧 马上就要答辩了 谢谢大家 可以发到我的邮箱里wen3634111@sina.com…

查看全部问答>

关于逻辑中断

在CE5 中,比如现在BSP中的 keypb 已经对 EINT0中断 进行了处理。 那么可不可以 再写个驱动 对于EINT0 进行处理。调用KernelIoControl 老是失败。 static UINT32 g_EINTIrq = INTSRC_EINT0; static UINT32 g_EINTSysIntr = SYSINTR_UNDEFINED; Ke ...…

查看全部问答>

有做ARM-Linux下AD模数转换驱动的吗?

有做ARM-Linux下AD模数转换驱动的吗?遇到一些问题,想众位大侠请教!!!…

查看全部问答>

多台主机共用一台显示器 有什么好招吗

市场上卖的那个切换的叫什么东西来着?呵,第一次碰到这种问题哈,以前都是见到一台主机用多个显示器来着的。 比较急,哪位大哥可以详细的说明一下。以及设备的价格?感激不尽…

查看全部问答>

以下代码为2410 BOOTLODER中的一段,请解释一下

        IMPORT  |Image$$RO$$Base|        ; Base of ROM code         IMPORT  |Image$$RO$$Limit|  ; End of ROM code (=start of ROM data) & ...…

查看全部问答>

请热心的坛友们多多帮助新手

感觉新手发布的帖子很少被关注,新手的求助很少有人提供帮助。知道大家都很忙,但是还是请高手们挤出点时间,多帮助帮助我们这些新手。在这个充满爱心的论坛,让不管是新手还是高手,都感觉到家一样的温暖!谢谢大家!…

查看全部问答>

2812读cpld出现数据不稳定,请教

请教达人: 我设计的设备采用总线插槽的方式,除电源板、DSP板卡外还有5个扩展板卡,其中2个输出3个输入,每个板卡上均有cpld,cpld实现简单的译码功能。DSP读输入板卡时发现: 1、3块输入cpld板卡都插上时,dsp循环读各输入板卡数据,从ccs窗口 ...…

查看全部问答>

【我给XILINX资源中心做贡献】Xilinx FPGA EDK开发实例

【我给XILINX资源中心做贡献】Xilinx FPGA EDK开发实例…

查看全部问答>