C语言_用于ADC数据的均值滤波算法

news2025/2/24 8:29:52

C语言_用于ADC数据的均值滤波算法

说明:
在采集ADC值的时候一般都是多次采集然后,然后取平均值,改进型做法就是去掉最大最小值剩下的再取平均值

unsigned short average(unsigned short arr[], unsigned char size)
{
	unsigned int sum = 0;

	for (unsigned int i = 0; i < size - 1; i++) {
		for (unsigned int j = 0; j < size - i - 1; j++) {
			if (arr[j] > arr[j + 1]) {
				int temp = arr[j];
				arr[j] = arr[j + 1];
				arr[j + 1] = temp;
			}
		}
	}
	for(unsigned int i = 1; i < size - 1; i++)
	{
		sum += arr[i];
		//SENSOR_printf("%d ",arr[i]);
	}
	//SENSOR_printf("\r\n");

	//SENSOR_debug("sum:%d,count:%d,average:%d\r\n",sum,size-2,sum /(size-2));
	return sum /(size-2);
}

应用实例:

#include <stdlib.h>

unsigned short average(unsigned short arr[], unsigned char size)
{
	unsigned int sum = 0;

	for (unsigned int i = 0; i < size - 1; i++) {
		for (unsigned int j = 0; j < size - i - 1; j++) {
			if (arr[j] > arr[j + 1]) {
				int temp = arr[j];
				arr[j] = arr[j + 1];
				arr[j + 1] = temp;
			}
		}
	}
	for(unsigned int i = 1; i < size - 1; i++)
	{
		sum += arr[i];
		printf("%d ",arr[i]);
	}
	printf("sum:%d,count:%d,average:%d\r\n",sum,size-2,sum /(size-2));
	return sum /(size-2);
}
 
int main()
{
    unsigned short data[10] = {0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09};
    printf("Hello, World\r\n");
    printf("average:%d",average(data, 10));
    return(0);
}

输出:
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1088139.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

CVE-2020-36189 jackson-databind java反序列化漏洞

漏洞原理 jackson-databind是一套开源的java序列化与反序列化工具框架&#xff0c;可将java对象序列化为xml和json格式的字符串及提供对应的反序列化过程。由于其解析效率较高&#xff0c;目前是Spring MVC中内置使用的解析方式&#xff0c;该漏洞的触发条件是ObjectMapper反序…

JUC第二十八讲:JUC工具类: Semaphore详解

JUC工具类: Semaphore详解 本文是JUC第二十八讲&#xff0c;JUC工具类: Semaphore详解。Semaphore底层是基于AbstractQueuedSynchronizer来实现的。Semaphore称为计数信号量&#xff0c;它允许n个任务同时访问某个资源&#xff0c;可以将信号量看做是在向外分发使用资源的许可证…

智源发布最强开源可商用中英文语义向量模型 BGE,超越同类模型,解决大模型制约问题

0.介绍 语义向量模型(Embedding Model)已经被广泛应用于搜索、推荐、数据挖掘等重要领域。 在大模型时代,它更是用于解决幻觉问题、知识时效问题、超长文本问题等各种大模型本身制约或不足的必要技术。然而,当前中文世界的高质量语义向量模型仍比较稀缺,且很少开源。 为…

数字化教育的未来:数字孪生技术助力校园创新

随着科技的飞速发展&#xff0c;智慧校园成为教育领域的新宠。数字孪生技术&#xff0c;作为一项新兴技术&#xff0c;正日益深刻地影响着校园的运营和管理。它为学校提供了前所未有的工具和资源&#xff0c;使校园管理更加高效、智能化。本文将探讨数字孪生技术如何助力智慧校…

LeetCode 1488. 避免洪水泛滥【贪心,二分,有序集合】1973

本文属于「征服LeetCode」系列文章之一&#xff0c;这一系列正式开始于2021/08/12。由于LeetCode上部分题目有锁&#xff0c;本系列将至少持续到刷完所有无锁题之日为止&#xff1b;由于LeetCode还在不断地创建新题&#xff0c;本系列的终止日期可能是永远。在这一系列刷题文章…

nginx的重定向

nginx重定向--rewrite重写功能介绍 rewrite 的功能介绍 rewrite功能就是&#xff0c;使用nginx提供的全局变量或自己设置的变量&#xff0c;结合正则表达式和标记位实现URL重写以及重定向。 比如&#xff1a;更换域名后需要保持旧的域名能跳转到新的域名上、某网页发生改变需…

pytest中fixture的使用方法

一、pytest中的fixture是什么 为可靠的和可重复执行的测试提供固定的基线&#xff08;可以理解为测试的固定配置&#xff0c;使不同范围的测试都能够获得统一的配置&#xff09;&#xff0c;fixture提供了区别于传统单元测试&#xff08;setup/teardown&#xff09;风格的令人…

来自云仓酒庄品牌雷盛红酒分享为什么高海拔的酒价格更高?

为高海拔地区的葡萄园提供资源的成本也是一个需要考虑的关键因素&#xff0c;并且肯定会影响最终葡萄酒的价格。来自云仓酒庄品牌雷盛红酒分享虽然融雪在没有降雨的月份为自然灌溉系统提供水&#xff0c;但在世界上许多受保护的优质葡萄园地区&#xff0c;灌溉葡萄树通常是不允…

【Spring源码分析】Bean的元数据和一些Spring的工具

Bean的元数据和一些Spring工具 一、BeanDefinition1、认识 BeanDifinition2、AbstractBeanDefinition3、GenericBeanDefinition测试 二、BeanDefinition 注册器三、加载BeanDefinition四、包扫描过程分析包扫描过程总结 五、内省 API六、反射工具Bean 的创建批量构造Resolvable…

怎样理解伦敦金交易的点差

不管大家做的是什么投资品种&#xff0c;只要过程中有中间商提供了一定的服务&#xff0c;那么就需要支付一定的费用&#xff0c;这也是十分合理的事情。在伦敦金的市场上&#xff0c;交易平台主要通过点差的形式&#xff0c;向客户征收一定的投资服务费用。 伦敦金买卖过程中的…

.net wpf程序 移花接木

最近在研究C# .net桌面程序。非常有趣 软件是国外作者写的 公司要求修改翻译 从最初的开源变成闭源再到加壳. 一路让我这个小小的职员好蛋疼. 软件是VS2015 C# WPF 程序 在不脱壳的情况下 实现挂钩类托管函数 遍历WPF控件汉化 首先通过各种手段脱壳目标程序&#xff0c;哪怕是不…

搭建 Hadoop 生态集群大数据监控告警平台

目录 一、部署 prometheus 环境 1.1 下载安装包 1.2 解压安装 1.3 修改配置文件 1.3.1 hadoop-env.sh 1.3.2 prometheus_config.yml 1.3.3 zkServer.sh 1.3.4 prometheus_zookeeper.yaml 1.3.5 alertmanager.yml 1.3.6 prometheus.yml 1.3.7 config.yml 1.3.8 t…

群峰系统是什么,群峰系统源码,群峰系统2.0

群峰体系是什么&#xff1f;它与第三方的团购软件有何不同&#xff1f; 近来有不少做生活团购服务商&#xff0c;餐饮商家&#xff0c;团购合作伙伴的朋友&#xff0c;时常听到群丰体系&#xff0c;了解到这是一个官方平台。其实&#xff0c;群峰系统已经成为了群峰的一大助力&…

鲲山科技:引入和鲸 ModelWhale,实现量化策略的高效迭代

量化投资是数据科学在金融行业的应用。 2023 年&#xff0c;量化行业的超额收益开始收敛&#xff0c;量化私募如何形成自身核心竞争力&#xff1f; 和鲸拜访客户鲲山科技&#xff08;深圳&#xff09;&#xff0c;揭示其“弯道超车”的独家秘诀。 群体作战 年初至今&#xff…

【备忘录】小技巧,使用IDEA的模板功能快速开发新项目

很多时候我们为了测试某个功能&#xff0c;经常需要创建新的项目&#xff0c;使用spring.io或者阿里的start创建很方便&#xff0c;但是步骤还是相对繁琐的&#xff0c;IDEA提供了一个非常好用且强大的模板功能&#xff0c;让我们能快速创建项目 一、项目模板操作 IDEA版本202…

flutter 开发中的问题与技巧

一、概述 刚开始上手 flutter 开发的时候&#xff0c;总会遇到这样那样的小问题&#xff0c;而官方文档又没有明确说明不能这样使用&#xff0c;本文总结了一些开发中经常会遇到的一些问题和一些开发小技巧。 二、常见问题 1、Expanded 组件只能在 Row、Column、Flex 中使用 C…

修改http_charfinder.py使能在python311环境中运行

需要修改两个函数&#xff0c;第一个是init函数&#xff0c;修改如下&#xff1a; async def init(loop, address, port): # <1> # app web.Application(looploop) # <2> # app.router.add_route(GET, /, home) # <3> app web.Application(…

AVPro Movie Capture☀️三、Unity录屏:录制摄像机指定区域

文章目录 🟥 录屏效果展示🟨 插件使用方法1️⃣ 导入插件2️⃣ 测试3️⃣ 移植到你的项目🟥 录屏效果展示 本插件是博主基于 “AVPro Movie Capture” 自制插件,该插件实现了: 录制摄像机指定区域画面的功能只有开始录制和停止录制两个API,简单不复杂其余功能完全基于…

【交付高质量,用户高增长】-用户增长质量保证方法论 | 京东云技术团队

前言 俗话说&#xff0c;“测试是质量的守护者”&#xff0c;但单凭测试本身却远远不够。大多数情况下&#xff0c;测试像“一面镜子”&#xff0c;照出系统的面貌&#xff0c;给开发者提供修改代码的依据&#xff0c;这个“照镜子”的过程&#xff0c;就是质量评估的过程&…

架构案例2017(五十二)

第5题 阅读以下关于Web系统架构设计的叙述&#xff0c;在答题纸上回答问题1至问题3.【说明】某电子商务企业因发展良好&#xff0c;客户量逐步增大&#xff0c;企业业务不断扩充&#xff0c;导致其原有的B2C商品交易平台己不能满足现有业务需求。因此&#xff0c;该企业委托某…