ADC采样--中位值平均滤波

中位值平均滤波

1、方法

  • 采样N个值,去掉最大最小

  • 计算N-2的平均值

  • N= 3~14

2、优缺点

  1. 融合了中位值,平均值的优点

  2. 消除脉冲干扰

  3. 计算速度慢,RAM占用大

3.代码

char filter()

{

char count,i,j;

char Value_bufN;

int sum=0;

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

Value_bufcount= get_ad();

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

for(i=0;i<(N-j);i++)

if(Value_bufi>Value_bufi+1)

{

temp = Value_bufi;

Value_bufi= Value_bufi+1;

Value_bufi+1=temp;

}

for(count =1;count<N-1;count++)

sum += Value_bufcount;

return (char)(sum/(N-2));

}

4.移植代码到其他芯片

复制代码
/*******************************************************************************
* Function Name:GetAverADCValue()
* Description  :
* Arguments    : None
* Return Value : None
*******************************************************************************/
void GetAverADCValue(uint16_t *ADCValue)
{
	char count,i,j;
	char Value_buf[SampNum];
	uint16_t temp;
	int sum=0;
	for(count=0;count<SampNum;count++)
	Value_buf[count]= *ADCValue++;
	for(j=0;j<(SampNum-1);j++)
	for(i=0;i<(SampNum-j);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;count<SampNum-1;count++)
	sum += Value_buf[count];
	return sum/(SampNum-2);
}
相关推荐
比奥利奥还傲.7 分钟前
哪吒监控面板实战:部署 Dashboard、接入 Agent、钉钉告警,再配置固定公网访问
网络·人工智能·分布式·1024程序员节
FII工业富联科技服务1 小时前
从人机共舞到工业精密操作:机器人如何突破动作控制与场景适应?
人工智能·机器人·机器翻译模型
serdes211 小时前
56G PAM4 SerDes RX 32 路时间交织 SAR ADC 顶层与采样前端
人工智能
不会就选b6 小时前
算法日常・每日刷题--<贪心>14
算法
小和尚同志6 小时前
小黑插图 Skill:从 11.7k star 的 Codex 专属,到 Claude Code 能用的平替
人工智能·aigc
高洁016 小时前
孪生不止在工厂:能源、医疗与农业
人工智能·深度学习·transformer·知识图谱·tornado
外域速览7 小时前
智谱50亿美元押注AI自训练
大数据·人工智能
人工智能培训7 小时前
孪生不止在工厂:能源、医疗与农业
大数据·人工智能
米小虾7 小时前
让模型说"我不知道",比让它答对更难:放弃文本生成能换来什么
人工智能
新新学长搞科研7 小时前
【SPIE出版】2026年人工智能、新材料与新能源国际学术会议(AINMNE 2026)
人工智能·新能源·新材料