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

中位值平均滤波

1、方法

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

  • 计算N-2的平均值

  • N= 3~14

2、优缺点

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

  2. 消除脉冲干扰

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

3.代码

char filter()

{

char count,i,j;

char Value_buf[N];

int sum=0;

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

Value_buf[count]= get_ad();

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

for(i=0;i<(N-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<N-1;count++)

sum += Value_buf[count];

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);
}
相关推荐
蹦蹦跳跳真可爱5891 小时前
Python----神经网络发(神经网络发展历程)
人工智能·python·深度学习·神经网络·计算机视觉
学步_技术1 小时前
增强现实—Flame: Learning to navigate with multimodal llm in urban environments
人工智能·机器学习·计算机视觉·语言模型·自然语言处理·ar
GEEK零零七1 小时前
Leetcode 3299. 连续子序列的和
算法·leetcode·动态规划
飞飞是甜咖啡2 小时前
【机器学习】Teacher-Student框架
人工智能·算法·机器学习
愿所愿皆可成2 小时前
机器学习之集成学习
人工智能·随机森林·机器学习·集成学习
广州正荣2 小时前
成绩管理革新者:C++驱动的智能数据处理平台
c++·人工智能·科技
Prokint.2 小时前
GPU算力租用平台推荐(AI/游戏串流/渲染/办公)
人工智能·游戏·云计算·gpu算力
蒟蒻小袁2 小时前
力扣面试150题--单词接龙
算法·leetcode·面试
ghie90902 小时前
LMD分解通过局部均值分解重构信号实现对信号的降噪
算法·均值算法·重构
king of code porter2 小时前
深度学习之模型压缩三驾马车:基于ResNet18的模型剪枝实战(3)
人工智能·深度学习·剪枝