常见传感器的原理 和 常见滤波算法实现

阅读引言: 分析常见的传感器的电路原理、向大家提供一些ADC常见的滤波算法的实现, 介绍声、光、热、电、力、气和磁传感器的大致工作原理。

目录

一、常见传感器工作原理

1.声音传感器-动圈&电容咪头

2.光传感器-光敏电阻

3.热传感器-热电偶

4.电传感器-电压互感器

5.力传感器-电阻薄膜压力传感器

6.气体传感器

7.磁传感器

二、常见的滤波算法

​编辑

1.限幅滤波法(又称程序判断滤波法)

2、算术平均滤波法

3、递推平均滤波法(又称滑动平均滤波法)

4、中位值滤波法

6、加权递推平均滤波法

7. 一阶滞后滤波

8、消抖滤波法


一、常见传感器工作原理


1.声音传感器-动圈&电容咪头

参数:

1、灵敏度 : 单位应变所引起相应值的变化

2、频率响应

3、指向性

4、输出阻抗

5、动态范围

6、瞬态响应

动圈式传声器:
动圈式传声器和动圈扬声器类似,优点是使用简单,可靠,不需要前置放大器和极化电压,但瞬态响应特性和高频特性不如电容式传声器。声波驱动振膜振动,从而切割磁感线,在振
膜两侧产生感生电动势,进而产生电流,将声音转换为对应的电信号。效率一般较低。

大致工作原理总结如下: 声波驱动振膜, 导致振膜发生震动,在震动的同时切割磁感线,产生感应电动势, 接着产生电流, 声音越大, 所产生的电流越大。

电容式传声器/静电传声器:
其拾音头(极头)是一个平板电容器。声波驱动振膜振动,改变两极板之间的距离,使得电容量发生变化,导致电回路中的电流 变化,从而产生一个交流变化的输出电压。 极头的电容C很小,输出阻抗很高,所以一般需要前置放大器电路,形成阻抗转换器,将高阻抗转变为低阻抗输出。
 

题外话: 什么是阻抗匹配

图片来源: 【什么是阻抗匹配?这样理解真的太简单了!】https://www.bilibili.com/video/BV1Um4y1J7QGvd_source=c32ad168c898f4f780941817d2987885

阻抗匹配的概念: 阻抗匹配是指信号源, 传输线, 负载之间的一种搭配方式。

在低频电路中, 如图所示: 

假如电源和内阻的大小是固定的, 当RL变大的时候, RL上的电压会增大, 电路上的整体电流就会减小,反之, 当RL变小的时候, 负载上的电压会减小, 电路中的电流会增大,聪明的伙伴会发现当负载和电源的内阻相等的时候, 负载可以会的最大的功率, 此时就是一种阻抗匹配。

而在高频电路中, 由于存在传输线效应, 当信号的频率很高的时候, 信号的波长就会很短, 波长 = 光速 / 频率。当信号的波长和信号线的长度可以比拟的时候, 就会存在信号的失真。

就是两个反射信号和电源信号二者叠加在一起, 就引起了信号的失真。在实际的电路中我们总是希望信号在传输的过程中阻抗处处相等, 这样就会让传输到负载的信号和反射的信号相互抵消。

反射系数为0, 消除干扰。

典型的声音传感器的测量电路

2.光传感器-光敏电阻

光敏电阻或光导管,常用的制作材料为硫化镉,另外还有硒、硫化铝、硫化铅和硫化铋等材料。这些制作材料具有在特定波长的光照射下,其阻值迅速减小的特性。这是由于光照产生的载流子都参与导电,在外加电场的作用下作漂移运动,电子奔向电源的正极,空穴奔向电源的负极,从而使光敏电阻器的阻值迅速下降
 

总结: 因为光敏电阻的材料特性, 当光强发生变化的时候, 其电阻值会发生变化。

题外话: 什么是零点漂移

对一个放大电路, 不叫信号输入的时候, 让其工作在静态工作点, 也就是只加直流电压, 输出端也就是Uce的电压会随着电源的波动、以及温度的影响而改变, 如果是直接耦合的多级放大电路,这种现象会被逐级放大, 导致得到的结果逐渐偏离预期。最简单的抑制方法就是使用差分电路抑制, 使用差分电路之后, 结果等于两个管子的输出电压相减, 因为两个管子都会受到温度的影响,二者相减消除掉不正确的结果。

光照强度的典型测量电路:

3.热传感器-热电偶

热电偶是一种测量温度的传感器。热电偶是温度测量仪表中常用的测温元件,它直接测量温度,并把温度信号转换成热电动势信号,通过电气仪表(二次仪表)转换成被测介质的温度。热电偶有很多型号和分度号,每个都有自己独特的特点、温度范围、耐久性、抗振性、耐化学性和应用程序的兼容性。分度号有K、T、J、N、E是基本金属热电偶,热电偶的好常见的类型。
 

4.电传感器-电压互感器

电压互感器又称仪用变压器,是一种电压变换装置。电压互感器一种电压变换装置它将高电压变换为低电压,以便用低压量值反映高压量值的变化。因此,通过电压互感器可以直接用普通电气仪表进行电压测量。

描述:匝数比:1:1 额定输入电流:2mA频率范围:0.02kHz~10kHz -
 

测量电路:

题外话: 为什么这些测量电路中经常出现电压跟随器

电压跟随器是一种电路或设备,用于将输入信号的电压以相同的幅度和形状输出,但输出信号的电流能够适应和跟随输入信号的变化。其主要作用包括:

1. 输出阻抗匹配:当输入信号源的输出电阻与负载的输入阻抗不匹配时,电压跟随器可以提供低输出阻抗,以确保信号能够有效传输到负载,保持信号的稳定性和准确性。

2. 缓冲放大:电压跟随器可以提供高输入阻抗和低输出阻抗,使得能够将低输入阻抗的信号源连接到高负载阻抗的设备或电路中,保持信号传输的准确性和功率传递的有效性。

3. 信号隔离:电压跟随器可以将输入信号和输出信号电路隔离,避免负载对信号源的影响,保持信号传输的稳定性,防止电路或设备之间的相互干扰。

4. 电平转换:电压跟随器可以将输入信号的电平转换成适合负载的电平,例如将低电平驱动的信号转换成高电平输出,以满足负载的工作要求。

总的来说,电压跟随器主要用于信号放大、阻抗匹配和信号隔离等应用,可以提高信号传输的质量和性能。

5.力传感器-电阻薄膜压力传感器

电阻薄膜压力传感器模块是基于新型纳米压敏材  料辅以舒适杨式模量的超薄薄膜衬底一次性贴片而成,兼具防水和压敏双重功能。当传感器感知到外界压力 时,传感器电阻值发生变化,我们采用电路将传感器 感知压力变化的压力信号转换成相应变化强度的电信号输出。这样我们就可以通过检测电信号变化就可以 得到压力变化情况。

典型测量电路:

题外话: 分析运算放大器的时候, 虚短和虚断的条件

运算放大器(Operational Amplifier,简称Op-Amp)的虚短和虚断是基于理想运算放大器的假设条件得出的。

虚短的成立条件是:

1. 输入电阻(Rin)无限大:假设运算放大器的输入电阻趋近于无限大,那么输入端的电压可以被视为相等,从而使得输入电流几乎为零。

2. 输出电阻(Rout)趋近于零:假设运算放大器的输出电阻趋近于零,那么输出电压可以直接反映输入信号的变化,而不受负载影响。

虚断的成立条件是:

1. 输入电流(Iin)无限小:假设运算放大器的输入电流趋近于零,那么输入端的电位可以被视为相等,从而输入电压被视为相等。

2. 输出电压(Vout)趋近于零:假设运算放大器的输出电压趋近于零,那么输出端的电位被视为相等。

需要注意的是,虚短和虚断的成立只是在理想运算放大器的假设条件下成立。在实际应用中,由于运算放大器的内部结构和外部影响因素的存在,虚短和虚断并不完全成立,但在一些特定条件下,可以近似地使用这些条件进行分析和设计。

6.气体传感器

MP-2 烟雾检测气体传感器采用多层厚膜制造工艺,在微型 Al2O3陶瓷基片的两面分别制作加热器和金属氧化物半导体气敏层,封装在金属壳体内。当环境空气中有被检测气体存在时传感器电导率发生变化,该气体的浓度越高,传感器的电导率就越高。采用简单的电路即可将这种电导率的变化转换为与气体浓度对应的输出信号。

典型测量电路: 

7.磁传感器

霍尔效应是指在导体中通过的电流受到磁场影响时,电子受到洛伦兹力的作用,导致电子在导体中沿着一定方向运动。这种运动引起了电子的累积,从而在导体的两侧产生了电势差。这个现象被称为霍尔效应


ES3144 是基于双极半导体(Bipolar)工艺设计和生产的霍尔器件,器件内部集成了霍尔效应片、电压调节器、反向电压保护器、信号放大处理电路、施密特触发器和一个开集电极输出驱动三极管。

典型测量电路: 

二、常见的滤波算法


1.限幅滤波法(又称程序判断滤波法)

A、方法:根据经验判断,确定两次采样允许的最大偏差值(设为A)。每次检测到新值时判断:如果本次值与上次值之差<=A,则本次值有效。如果本次值与上次值之差>A,则本次值无效,放弃本次值,用上次值代替本次值。
B、优点:能有效克服因偶然因素引起的脉冲干扰

C、缺点:无法抑制那种周期性的干扰、平滑度差

#define EXPERIENCE_VALUE 10


int limits_range_fliter()
{
	static int oldvalue;
	int newvalue;

	newvalue = GetAdc();        /* GetAdc模拟读取adc的值 */
	if(newvalue - oldvalue > EXPERIENCE_VALUE || 
			oldvalue - newvalue > EXPERIENCE_VALUE)
		return oldvalue;
	return newvalue;
}

2、算术平均滤波法

A、方法:连续取N个采样值进行算术平均运算, N值较大时:信号平滑度较高,但灵敏度较低,N值较小时:信号平滑度较低,但灵敏度较高 N值的选取:一般流量,N=12;压力N=4
B、优点:适用于对一般具有随机干扰的信号进行滤波,这样信号的特点是有一个平均值,信号在某一数值范围附近上下波动。
C、缺点:对于测量速度较慢或要求数据计算速度较快的实时控制不适用,比较浪费RAM。

#define N 12             /* N = 12, 4, 5看选择 */

int average_fliter()
{
	int i, sum = 0;

	for(i = 0; i < N; i++) {
		sum += Getadc();            /* Getadc为伪函数 */
		delay(10);             /* for hardware prepare time */
	}
	return (sum / N);
}

3、递推平均滤波法(又称滑动平均滤波法)

A、方法:把连续取N个采样值看成一个队列、队列的长度固定为N、每次采样到一个新数据放入队尾,并扔掉原来队首的一次数据.(先进先出原则)。
把队列中的N个数据进行算术平均运算,可获得新的滤波结果;流量,N=12;压力:N=4;液面,N=4~12;温度,N=1~4
B、优点:对周期性干扰有良好的抑制作用,平滑度高、适用于高频振荡的系统
C、缺点:灵敏度低、对偶然出现的脉冲性干扰的抑制作用较差、不易消除由于脉冲干扰所引起的采样值偏差、不适用于脉冲干扰比较严重的场合、比较

#define N 10

int recursion_average()
{
	static int index;
	int count;
	int squence_queue[N] = 0;

	squence_queue[index++] = Getadc();

	if(index == N) {
		index = 0;
	}
	for(count = 0; count < N; count++) {
		sum += squence_queue[count];
	}

	return (sum / N);
}

4、中位值滤波法

A、方法:
连续采样N次(N取奇数)把N次采样值按大小排列取中间值为本次有效值
B、优点:
能有效克服因偶然因素引起的波动干扰
对温度、液位的变化缓慢的被测参数有良好的滤波效果
C、缺点:
对流量、速度等快速变化的参数不宜

#define N 5

/* 冒泡排序, 嫌弃慢的也可以换成快速排序 */
void bubling_sort(int *arr, int len)
{
	int i, j;
	for(i = 0; i < len; i++) {
		for(j = 0; j < len - 1 - i; j++) {
			if(arr[j] > arr[j + 1]) {
				arr[j] ^= arr[j + 1];
				arr[j + 1] ^= arr[j];
				arr[j] ^= arr[j + 1];
			}
		}
	}
}

int middle_fliter()
{
	int sum[N] = {0}, i;
	for(i = 0; i < N; i++) {
		sum[i] = GetAdc();
		delay(10);
	}
	bubling_sort(sum, N);

	return sum[N / 2];
}

6、加权递推平均滤波法

A、方法:是对递推平均滤波法的改进,即不同时刻的数据加以不同的权,通常是,越接近现时刻的数据,权取得越大。给予新采样值的权系数越大,则灵敏度越高,但信号平滑度越低。
B、优点:适用于有较大纯滞后时间常数的对象,和采样周期较短的系统。
C、缺点:对于纯滞后时间常数较小,采样周期较长,变化缓慢的信号,不能迅速反应系统当前所受干扰的严重程度,滤波效果差

int weighting_filter()
{
	static int weigh[] = {1, 2, 3, 4};
	static int weigh_sum = 1 + 2 + 3 + 4;
	int count, sum;

	for(count = 0; count < 4; count++) {
		sum += Getadc() * weigh[count];
		delay(10);
	}

	return (sum / weigh_sum);
}

7. 一阶滞后滤波

A、方法:取a=0~1,本次滤波结果=(1-a)*本次采样值+a*上次滤波结果
B、优点:对周期性干扰具有良好的抑制作用,适用于波动频率较高的场合
C、缺点:相位滞后,灵敏度低,滞后程度取决于a值大小.

实际上可以看作是对本次的滤波结果进行了一个加权和,如果是滤波的系数越大,对本次采集的结果加权越重,上次的滤波结果加权也就没有那么重了。


例:
假设上次的滤波结果是10,这次的采集结果是20,产生了一个10的突变,如果使用一阶滞后滤波后,假设滤波系数是a = 0.7,本次的滤波值= 0.7*20 + 0.3

#define A (0.7)

int fisrt_oder_filter()
{
	static int newValue = 10;
	
	newValue = GetAdc();
	
	return A * newValue + (1 - A)newValue;
}

8、消抖滤波法

A、方法:
设置一个滤波计数器,将每次采样值与当前有效值比较:如果采样值=当前有效值,则计数器清零
如果采样值<>当前有效值,则计数器+1,并判断计数器是否
>=上限N(溢出)
如果计数器溢出,则将本次值替换当前有效值,并清计数器

B、优点:对于变化缓慢的被测参数有较好的滤波效果,可避免在临界值附近控制器的反复开/关跳动或显示器上数值抖动
C、缺点:对于快速变化的参数不宜,如果在计数器溢出的那一次采样到的值恰好是干扰值,则会将干扰值当作有效值导入系统.

#define F_NUM 12
#define VALID 10


int del_shake_filter()
{
	static int ValidValue = VALID;
	static int i = 0;
	int newValue;

	newValue = Getadc();
	if(newValue != ValidValue) {
		i++;
		if(i == F_NUM) {
			ValidValue = newValue;
			i = 0;
		}
	} else {
		i = 0;
	}

	return ValidValue;
}

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

开源模型应用落地-安全合规篇-模型输出合规性检测(三)

一、前言 为什么我们需要花大力气对用户输入的内容和模型生成的输出进行合规性检测,一方面是严格遵守各项法规要求,具体如下:互联网信息服务深度合成管理规定https://www.gov.cn/zhengce/zhengceku/2022-12/12/content_5731431.htm ​ 其次,受限于模型本身的一些缺陷,…

Bert的一些理解

Bert的一些理解 Masked Language Model (MLM)Next Sentence Prediction (NSP)总结 参考链接1 参考链接2 BERT 模型的训练数据集通常是以预训练任务的形式来构建的&#xff0c;其中包括两个主要任务&#xff1a;Masked Language Model (MLM) 和 Next Sentence Prediction (NSP)。…

(简单成功)Mac:命令设置别名

案例&#xff1a;给"ls -l"命令&#xff0c;设置别名通过”ll“快速访问 1、在项目根目录底下查看有无.bash_profile文件&#xff0c;注意这个是个隐藏文件&#xff0c;需要使用ls -a命令查看&#xff1a; 没有.bash_profile新建一个文件&#xff0c; 在最后添加一行…

原生html vue3使用element plus 的树tree上移下移案例源码

上效果 html源码 <!DOCTYPE html> <html lang"en"> <!-- * Name: mallSalesReports.html * Description: * Author Lani * date 2024-02-28 18:32:36 --> <head><meta charset"UTF-8"><meta name"viewport" …

轻松解锁微博视频:基于Perl的下载解决方案

引言 随着微博成为中国最受欢迎的社交平台之一&#xff0c;其内容已经变得丰富多彩&#xff0c;特别是视频内容吸引了大量用户的关注。然而&#xff0c;尽管用户对微博上的视频内容感兴趣&#xff0c;但却面临着无法直接下载这些视频的难题。本文旨在介绍一个基于Perl的解决方…

java算法题每日多道

274. H 指数 题目 给你一个整数数组 citations &#xff0c;其中 citations[i] 表示研究者的第 i 篇论文被引用的次数。计算并返回该研究者的 h 指数。 根据维基百科上 h 指数的定义&#xff1a;h 代表“高引用次数” &#xff0c;一名科研人员的 h 指数 是指他&#xff08;…

行业模板|DataEase制造行业大屏模板推荐

DataEase开源数据可视化分析平台于2022年6月发布模板市场&#xff08;https://templates-de.fit2cloud.com&#xff09;&#xff0c;并于2024年1月新增适用于DataEase v2版本的模板分类。模板市场旨在为DataEase用户提供专业、美观、拿来即用的大屏模板&#xff0c;方便用户根据…

Angular进阶之八: Angular Animation在项目中的实践经验

使用 Angular 进行项目开发的程序员应该都很熟悉 Angular Animation。这是一个 Angular 原生的动画库&#xff0c;它可以替代或者辅助完成原本需要使用 css 的动画功能。 Angular 在国内的运用是很有限的&#xff0c;可借鉴的文档并不很丰富。尤其对于 Angular 动画模块的应用…

【leetcode热题】二叉搜索树迭代器

实现一个二叉搜索树迭代器类BSTIterator &#xff0c;表示一个按中序遍历二叉搜索树&#xff08;BST&#xff09;的迭代器&#xff1a; BSTIterator(TreeNode root) 初始化 BSTIterator 类的一个对象。BST 的根节点 root 会作为构造函数的一部分给出。指针应初始化为一个不存在…

微信小程序 canvas层级过高覆盖原生组件

一、背景 微信小程序中使用signature第三方插件完成签名效果&#xff0c;但真机调试时发现canvas层级过高遮挡了按钮 二、具体问题 问题原因&#xff1a;签名后点击按钮无法生效 问题代码&#xff1a; <template><view class"sign_page" v-cloak>&l…

Linux 服务升级:MySQL 主从(半同步复制) 平滑升级

目录 一、实验 1.环境 2.Mysql-shell 检查工具兼容性 3.逻辑备份MySQL数据 4.备份MySQL 数据目录、安装目录、配置文件 5.MySQL 升级 6.master节点 使用systemd管理mysql8 7. slave1 节点升级 8. slave2 节点升级 9.半同步设置 二、问题 1.mysqldump备份报错 2.Inn…

【linux】Debian访问Debian上的共享目录

要在Debian系统上访问共享目录&#xff0c;通常意味着要访问通过网络共享的文件夹&#xff0c;比如通过SMB/CIFS&#xff08;Server Message Block/Common Internet File System&#xff09;协议共享的Windows共享文件夹。以下是访问共享目录的步骤&#xff1a; 1. 安装必要的…

kafka2.x版本配置SSL进行加密和身份验证

背景&#xff1a;找了一圈资料&#xff0c;都是东讲讲西讲讲&#xff0c;最后我还没搞好&#xff0c;最终决定参考官网说明。 官网指导手册地址&#xff1a;Apache Kafka 需要预备的知识&#xff0c;keytool和openssl 关于keytool的参考&#xff1a;keytool的使用-CSDN博客 …

MacOS Xcode 使用LLDB调试Qt的 QString

环境&#xff1a; MacOS&#xff1a; 14.3Xcode&#xff1a; Version 15.0Qt&#xff1a;Qt 6.5.3 前言 Xcode 中显示 预览 QString 特别不方便, 而Qt官方的 lldb 脚本debugger/lldbbridge.py一直加载失败&#xff0c;其他第三方的脚本都 不兼容当前的 环境。所以自己研究写…

使用华为云HECS服务器+nodejs开启web服务

简介: 在华为云HECS服务器上使用nodejs开启一个web服务。 目录 1.开通华为云服务器 2.远程登录 2.1 使用华为官方的网页工具登录 ​编辑 2.2 使用MobaXterm登录 3 安装node 3.1 下载 2. 配置环境变量 4. 安装express模块 5.开启外网访问 1.开通华为云服务器 这…

Flutter-底部弹出框(Widget层级)

需求 支持底部弹出对话框。支持手势滑动关闭。支持在widget中嵌入引用。支持底部弹出框弹出后不影响其他操作。支持弹出框中内容固定头部和下面列表时&#xff0c;支持触摸头部并在列表不在头部的时候支持滑动关闭 简述 通过上面的需求可知&#xff0c;就是在界面中可以支持…

20240319在WIN10下给K6000按照驱动程序

20240319在WIN10下给K6000按照驱动程序 2024/3/19 18:12 http://nvidia.cn/ Skip to main content 驱动程序下载 NVIDIA>驱动下载> NVIDIA RTX / Quadro Desktop and Notebook Driver Release 470 Registration Keynote GTC ˆ›šš‰ˆš Portal Prelude DOCA Early Ac…

MySQL 搭建双主复制服务 并 通过 HAProxy 负载均衡

一、MySQL 搭建双主复制高可用服务 在数据库管理中&#xff0c;数据的备份和同步是至关重要的环节&#xff0c;而双主复制&#xff08;Dual Master Replication&#xff09;作为一种高可用性和数据同步的解决方案&#xff0c;通过让两个数据库实例同时充当主服务器和从服务器&…

Java 设计模式系列:行为型-状态模式

简介 状态模式&#xff08;State Pattern&#xff09;是一种行为型设计模式&#xff0c;允许一个对象在其内部状态改变时改变其行为。状态模式中类的行为是由状态决定的&#xff0c;在不同的状态下有不同的行为。 状态模式主要解决的是当控制一个对象状态的条件表达式过于复杂…

智能合约语言(eDSL)—— 使用rust实现eDSL的原理

为理解rust变成eDSL的实现原理&#xff0c;我们需要简单了解元编程与宏的概念,元编程被描述成一种计算机程序可以将代码看待成数据的能力&#xff0c;使用元编程技术编写的程序能够像普通程序在运行时更新、替换变量那样操作更新、替换代码。宏在 Rust 语言中是一种功能&#x…
最新文章