AD数据采集的“数字滤波”:10个“软件滤波程序”
- 格式:docx
- 大小:19.19 KB
- 文档页数:6
8路ADC常规方案引言模拟数字转换器(ADC)是现代电子系统中常用的一个关键元件。
它将连续变化的模拟信号转换为数字信号,使得数字处理器能够读取和处理这些信号。
在很多应用中,需要将多个模拟信号转换为数字信号,这就要使用多路ADC方案。
本文将介绍一种常规的8路ADC方案。
设计方案器件选择在设计8路ADC方案时,首先需要选择适当的器件。
以下是一些常见的器件选择:1.ADC芯片:需要选择支持8路输入的ADC芯片。
常见的选择有Texas Instruments的ADS1278和Analog Devices的AD7476A。
2.电压参考源:ADC的转换结果受到参考电压的影响,因此需要选择适当的电压参考源。
3.滤波器:如果输入信号存在噪声或杂散成分,需要使用滤波器进行滤波以提高转换结果的精度。
硬件连接一旦选择了合适的器件,下一步是进行硬件连接。
以下是8路ADC方案的典型硬件连接:1.连接电压参考源:将电压参考源连接到ADC的参考输入引脚上,确保参考电压稳定且与所选ADC的参考电压要求相匹配。
2.连接模拟输入信号:将8个模拟输入信号分别连接到ADC的输入引脚上。
确保信号连接正确且没有干扰。
3.连接滤波器:如果需要使用滤波器,将滤波器与ADC的输入引脚相连。
软件编程完成硬件连接后,需要进行软件编程以实现数据的采集和处理。
以下是进行软件编程的主要步骤:1.初始化ADC芯片:使用特定的命令序列初始化ADC芯片,包括设置采样率、参考电压等参数。
2.配置GPIO:配置GPIO以使其能够接收来自ADC芯片的数据。
3.数据采集:使用适当的指令从ADC芯片中读取数据,将其存储在相应的变量中。
4.数据处理:对采集到的数据进行处理,可以进行滤波、校正、单位换算等操作。
5.数据显示:将处理后的数据显示在适当的界面上,以便用户进行观察和分析。
总结本文介绍了一种常规的8路ADC方案。
通过选择合适的器件、进行正确的硬件连接和软件编程,可以实现对8个模拟输入信号的数字化采集和处理。
第一章计算机控制系统概述习题及参考答案1.计算机控制系统的控制过程是怎样的计算机控制系统的控制过程可归纳为以下三个步骤:(1)实时数据采集:对被控量的瞬时值进行检测,并输入给计算机。
(2)实时决策:对采集到的表征被控参数的状态量进行分析,并按已定的控制规律,决定下一步的控制过程。
!(3)实时控制:根据决策,适时地对执行机构发出控制信号,完成控制任务。
2.实时、在线方式和离线方式的含义是什么(1)实时:所谓“实时”,是指信号的输入、计算和输出都是在一定时间范围内完成的,即计算机对输入信息以足够快的速度进行处理,并在一定的时间内作出反应并进行控制,超出了这个时间就会失去控制时机,控制也就失去了意义。
(2)“在线”方式:在计算机控制系统中,如果生产过程设备直接与计算机连接,生产过程直接受计算机的控制,就叫做“联机”方式或“在线”方式。
(3)“离线”方式:若生产过程设备不直接与计算机相连接,其工作不直接受计算机的控制,而是通过中间记录介质,靠人进行联系并作相应操作的方式,则叫做“脱机”方式或“离线”方式。
3.微型计算机控制系统的硬件由哪几部分组成各部分的作用是什么—由四部分组成。
图微机控制系统组成框图(1)主机:这是微型计算机控制系统的核心,通过接口它可以向系统的各个部分发出各种命令,同时对被控对象的被控参数进行实时检测及处理。
主机的主要功能是控制整个生产过程,按控制规律进行各种控制运算(如调节规律运算、最优化计算等)和操作,根据运算结果作出控制决策;对生产过程进行监督,使之处于最优工作状态;对事故进行预测和报警;编制生产技术报告,打印制表等等。
(2)输入输出通道:这是微机和生产对象之间进行信息交换的桥梁和纽带。
过程输入通道把生产对象的被控参数转换成微机可以接收的数字代码。
过程输出通道把微机输出的控制命令和数据,转换成可以对生产对象进行控制的信号。
过程输入输出通道包括模拟量输入输出通道和数字量输入输出通道。
第二章6 采样-保持器有什么作用?说明保持电容大小对数据采集系统的影响。
答:为了提高模拟量输入信号的频率范围,以适应某些随时间变化较快的信号的要求,可采用带有保持电路的采样器,即采样保持器。
保持电容对数据采集系统采样保持的精度有很大影响。
保持电容值小,则采样状态时充电时间常数小,即保持电容充电快,输出对输入信号的跟随特性好,但在保持状态时放电时间常数也小,即保持电容放电快,故保持性能差;反之,保持电容值大,保持性能好,但跟随特性差。
7 在数据采样系统中,是不是所有的输入通道都需要加采样-保持器,为什么?答:并不是所有的模拟量输入通道都需要采样保持器的,因为采样保持器是为了防止在A/D转换之前信号就发生了变化,致使A/D转换的结果出错,所以只要A/D转换的时间比信号变化的时间短就不需要。
8 采样频率的高低对数字控制系统有什么影响?举出工业控制实例加以说明?9 A/D和D/A转换器在微型计算机控制系统中有什么作用?答:答:A/D的作用主要是把传感器检测到的模拟电信号转换为数字电信号,方便用于单片机中进行处理。
D/A的作用,在单片机处理完毕的数字量,有时需要转换为模拟信号输出,D/A的作用正是用于把数字信号转换为模拟信号。
10 A/D转换器转换原理有几种?他们各有什么特点和用途?答:逐次逼近型,分辨率高,误差较低,转换速度快,应用十分广泛;双积分型:性能比较稳定,转换精度高,抗干扰能力强,电路较简单,工作速度低,多用于对转换精度要求较高,对转换速度要不高的场合,如数字电压表等检测仪器中,用的十分普遍。
并联比较型:转换速度快,精度高,但使用的比较器和触发器多,适用于速度高,精度要求不高的场合。
11 说明逐次逼近型A/D转换器的转换原理。
答:开始转换以后,时钟信号首先将寄存器的最高有效位置为1,使输出数字为100…0,这个数码被D/A转换器转换成相应的模拟电压U0,送到比较器中并与比较电压U1比较,若U0>U1,将高位的1清除;若U0<U1,将最高位保留。
1、遥测即远程测量: 应用远程通信技术进行信息传输,实现对远方运行设备的监视与控制。
遥信即远程指示;远程信号:对诸如告警情况、开关位置或阀门位置这样的状态信息的远程监视。
遥控即远程命令: 应用远程通信技术,使运行设备的状态产生变化。
遥调即远程调节: 对具有两个以上状态的运行设备进行控制的远程命令。
2、远动技术就是一门综合性的应用技术,它的基本原理包括数据传输原理、编码理论、信号转换技术原理、计算机原理等。
远动配置就是指主站与若干子站以及连接这些站的传输链路的组合体。
远动系统就是指对广阔地区的生产过程进行监视与控制的系统,它包括对必需的过程信息的采集、处理、传输与显示、执行等全部的设备与功能。
3、误码率:错误接收的码元数与传送的总码元数之比。
用Pe表示。
误比特率:错误接收的信息量与传送信息总量之比。
用Peb表示。
在远动系统中,为了正确的传送与接收信息,必须有一套关于信息传输顺序、信息格式与信息内容等的约定,这一套约定称为规约或协议。
4、当同步字在信道中受到干扰,使其中某些码元发生变位,致使收端检测不出同步字,称为漏同步。
当接收到的信息序列中,出现与同步字相同的码序列时,在对同步字检测时会把它误判为同步字,造成假同步。
收发两端发送时钟与接收时钟的相位差<∏时,数字锁相电路在工作过程中,通过相位调整,会使两者的相位差继续增加,直到≈2∏,造成两端时序错一位,这种情况称为反校。
5、事件指的就是运行设备状态的变化,如开关所处的闭合或断开状态的变化,保护所处的正常或告警状态的变化。
事件顺序记录就是指开关或继电保护动作时,按动作的时间先后顺序进行的记录。
事件分辨率指能正确区分事件发生顺序的最小时间间隔。
6、完成一次A/D转换所需的时间,称为转换时间,其倒数称为转换速率。
7、数字滤波就就是在计算机中用一定的计算方法对输入信号的量化数据进行数学处理,减少干扰在有用信号中的比重,提高信号的真实性。
死区计算就是对连续变化的模拟量规定一个较小的变化范围。
XXXXXX大学研究生实验报告课程名称:DSP技术应用综合设计名称:电量参数计算和发送学生姓名:班级学号:学科名称:2012年5月25日一、综合实验题目和要求1、实验设计要求要求1:对给定的波形信号,采用TMS320F28335的浮点功能计算该信号的以下时域参数:信号的周期T(频率f也需要计算),信号的均方根大小V rms、平均值V avg (即直流量)、峰峰值V pp。
其中,均方根V rms的计算公式(数字量的离散公式)如下:rmsV=式中,N为采样点数,u(i)为采样序列中的第i个采样点。
要求2:所设计的软件需要计算采样的波形周期个数,并控制采样点数大于1个波形周期,小于3个波形周期大小。
要求3:对采样的数据通过串口发送至PC界面。
2、实验目的主要考核学生对TMS320F28335浮点处理器、A/D模块、SCI模块和信号时域分析等知识的掌握。
产生的波形可选择正弦波,也可以是其它任意波形。
如果波形中添加了随机噪声,则建议采用软件设计中加入数字滤波算法,否则可能计算中产生较大的误差。
实验所需的频率不能太大,(建议范围:10Hz~100kHz),采样点建议在256点左右(自己任意设定也可,不少于32点)。
二、硬件框图图1 系统硬件框图图1 给出了该综合实验的硬件框图,首先通过小键盘设置波形的参数,包括频率、幅值以及波形等。
然后通过信号发生器产生模拟信号,由DSP28335的AD通道6进行采样处理。
DSP与PC机之间通过串口进行通信,由DSP28335的SCIb通道处理。
ADC模块有16个转换通道,可配置成两个独立的8通道转换模块,分别对应于管理器A和B,根据用户需求,两个独立的8通道转换模块可以级联成一个8通道模块,在ADC模块中尽管可以多通道输入和有两个排序器,但只有一个A/D转换器可以。
两个8通道模块可以自动对一系列转换进行排序,而且每个模块都可以通过多路复用开关选择任何一个通道。
在级联模式下,自动排序器将作为一个单一的8通道排序器。
第二阶段练习题考试科目:《机电一体化系统设计》第三章至第四章(总分100分)学习中心(教学点)批次:层次:专业:学号:身份证号:姓名:得分:一、单项选择题(本题共10小题,每小题1分,共10分。
)1、直线光栅传感器属于()数字信号传感器。
A、增量码B、绝对码C、BCD码D、格雷码2、在控制感性负载器件的直流功率接口中,为了保护功率管需要接入保护()。
A、电感B、电阻C、二极管D、电容3、为了消除A/D转换期间由于信号变化产生误差,需要采用()电路。
A、放大B、采样保持C、模拟开关D、分压4、晶体管作为无触点开关,其导通电阻和开路电阻,依次应该()。
A、前大后小B、前大后大C、前小后小D、前小后大5、设计键盘程序时要考虑()。
A、消抖功能和延时功能B、单次响应和延时功能C、单次响应功能和消抖功能D、延时功能和批处理功能6、过零比较器常用于对信号的()。
A、电平转换B、整形C、放大D、阻抗匹配7、有源滤波器比起无源滤波器,带负载能力依次()。
A、前强后弱B、前弱后强C、前弱后弱D、前强后强8、按信息传递方向分有两种接口,它们是()。
A、机械接口和物理接口B、人机接口和机电接口C、无源接口和有源接口D、输入接口和输出接口9、A/D转换器的转换速度依据对信号的()频率确定。
A、传送B、变换C、采样D、放大10、在计测系统中如果需要滤除信号中的高频干扰应该使用()。
A、低通滤波器B、比较电路C、微分电路D、高通滤波器二、多项选择题(本题共5小题,每小题2分,共10分。
多选、少选、错选均不得分。
)1、在机电接口的功率接口中常用的驱动元件有()。
A、功率晶体管B、晶闸管C、功率场效应管D、固态继电器2、以下哪些是数字滤波算法()。
A、算术平均滤波B、RC高通滤波C、RC低通滤波D、滑动平均滤波3、传感器的非线性补偿采用的软件方式包括()。
A、定时法B、计数法C、计算法D、查表法4、光电编码盘在系统中一般用于测量()。
10种简单的数字滤波C语言源程序算法(2009-11-09 10:25:08)假定从8位AD中读取数据(如果是更高位的AD可定义数据类型为int),子程序为get_ad();1、限幅滤波法(又称程序判断滤波法)A、方法:根据经验判断,确定两次采样允许的最大偏差值(设为A)每次检测到新值时判断:如果本次值与上次值之差<=A,则本次值有效如果本次值与上次值之差>A,则本次值无效,放弃本次值,用上次值代替本次值B、优点:能有效克服因偶然因素引起的脉冲干扰C、缺点无法抑制那种周期性的干扰平滑度差2、中位值滤波法A、方法:连续采样N次(N取奇数)把N次采样值按大小排列取中间值为本次有效值B、优点:能有效克服因偶然因素引起的波动干扰对温度、液位的变化缓慢的被测参数有良好的滤波效果C、缺点:对流量、速度等快速变化的参数不宜3、算术平均滤波法A、方法:连续取N个采样值进行算术平均运算N值较大时:信号平滑度较高,但灵敏度较低N值较小时:信号平滑度较低,但灵敏度较高N值的选取:一般流量,N=12;压力:N=4B、优点:适用于对一般具有随机干扰的信号进行滤波这样信号的特点是有一个平均值,信号在某一数值范围附近上下波动C、缺点:对于测量速度较慢或要求数据计算速度较快的实时控制不适用比较浪费RAM4、递推平均滤波法(又称滑动平均滤波法)A、方法:把连续取N个采样值看成一个队列队列的长度固定为N每次采样到一个新数据放入队尾,并扔掉原来队首的一次数据.(先进先出原则) 把队列中的N个数据进行算术平均运算,就可获得新的滤波结果N值的选取:流量,N=12;压力:N=4;液面,N=4~12;温度,N=1~4 B、优点:对周期性干扰有良好的抑制作用,平滑度高适用于高频振荡的系统C、缺点:灵敏度低对偶然出现的脉冲性干扰的抑制作用较差不易消除由于脉冲干扰所引起的采样值偏差不适用于脉冲干扰比较严重的场合比较浪费RAM5、中位值平均滤波法(又称防脉冲干扰平均滤波法)A、方法:相当于“中位值滤波法”+“算术平均滤波法”连续采样N个数据,去掉一个最大值和一个最小值然后计算N-2个数据的算术平均值N值的选取:3~14B、优点:融合了两种滤波法的优点对于偶然出现的脉冲性干扰,可消除由于脉冲干扰所引起的采样值偏差C、缺点:测量速度较慢,和算术平均滤波法一样比较浪费RAM6、限幅平均滤波法A、方法:相当于“限幅滤波法”+“递推平均滤波法”每次采样到的新数据先进行限幅处理,再送入队列进行递推平均滤波处理B、优点:融合了两种滤波法的优点对于偶然出现的脉冲性干扰,可消除由于脉冲干扰所引起的采样值偏差C、缺点:比较浪费RAM7、一阶滞后滤波法A、方法:取a=0~1本次滤波结果=(1-a)*本次采样值+a*上次滤波结果B、优点:对周期性干扰具有良好的抑制作用适用于波动频率较高的场合C、缺点:相位滞后,灵敏度低滞后程度取决于a值大小不能消除滤波频率高于采样频率的1/2的干扰信号8、加权递推平均滤波法A、方法:是对递推平均滤波法的改进,即不同时刻的数据加以不同的权通常是,越接近现时刻的数据,权取得越大。
AD精度与分辨率最近做了一块板子,当然考虑到元器件的选型了,由于指标中要求精度比较高,所以对于AD的选型很慎重。
重。
很多人对于精度和分辨率的概念不清楚,这里我做一下总结,希望大家不要混淆。
我们搞电子开发的,经常跟“精度”与“分辨率”打交道,这个问题不是三言两语能搞得清楚的,在这里只作抛砖引玉了。
抛砖引玉了。
简单点说,“精度”是用来描述物理量的准确程度的,而“分辨率”是用来描述刻度划分的。
从定义上看,这两个量应该是风马牛不相及的。
(是不是有朋友感到愕然^_^)。
很多卖传感器的JS就是利用这一点来糊弄人的了。
简单做个比喻:有这么一把常见的塑料尺(中学生用的那种),它的量程是10厘米,上面有100个刻度,最小能读出1毫米的有效值。
那么我们就说这把尺子的分辨率是1毫米,或者量程的1%;而它的实际精度就不得而知了(算是0.1毫米吧)。
当我们用火来烤一下它,并且把它拉长一段,然后再考察一下它。
我们不难发现,它还有有100个刻度,它的“分辨率”还是1毫米,跟原来一样!然而,您还会认为它的精度还是原来的0.1毫米么?(这个例子是引用网上的,个人觉得比喻的很形象!)回到电子技术上,我们考察一个常用的数字温度传感器:AD7416。
供应商只是大肆宣扬它有10位的AD,分辨率是1/1024。
那么,很多人就会这么欣喜:哇塞,如果测量温度0-100摄氏度,100/1024……约等于0.098摄氏度!这么高的精度,足够用了。
但是我们去浏览一下AD7416的数据手册,居然发现里面赫然写着:测量精度0.25摄氏度!所以说分辨率跟精度完全是两回事,在这个温度传感器里,只要你愿意,你甚至可以用一个14位的AD,获得1/16384的分辨率,但是测量值的精度还是0.25摄氏度^_^ 所以很多朋友一谈到精度,马上就和分辨率联系起来了,包括有些项目负责人,只会在那里说:这个系统精度要求很高啊,你们AD的位数至少要多少多少啊……其实,仔细浏览一下AD的数据手册,会发现跟精度有关的有两个很重要的指标:DNL和INL。
数字滤波汇总在AD采集中经常要用到数字滤波,而不同情况下又有不同的滤波需求,下面是10种经典的软件滤波方法的程序和优缺点分析:1、限幅滤波法(又称程序判断滤波法)2、中位值滤波法3、算术平均滤波法4、递推平均滤波法(又称滑动平均滤波法)5、中位值平均滤波法(又称防脉冲干扰平均滤波法)6、限幅平均滤波法7、一阶滞后滤波法8、加权递推平均滤波法9、消抖滤波法10、限幅消抖滤波法1.限副滤波1.1.方法:根据经验判断,确定两次采样允许的最大偏差值(设为A)每次检测到新值时判断:如果本次值与上次值之差<=A,则本次值有效如果本次值与上次值之差>A,则本次值无效,放弃本次值,用上次值代替本次值1.2.优点:能有效克服因偶然因素引起的脉冲干扰1.3.缺点:无法抑制那种周期性的干扰平滑度差1.4.程序:/* A值可根据实际情况调整value为有效值,new_value为当前采样值滤波程序返回有效的实际值*/#define A 10char value;char filter(){char new_value;new_value = get_ad();if ( ( new_value - value > A ) || ( value - new_value > A ) )return value;elsereturn new_value;}2.中位值滤波法2.1.方法:连续采样N次(N取奇数),把N次采样值按大小排列,取中间值为本次有效值2.2.优点:能有效克服因偶然因素引起的波动干扰,对温度、液位的变化缓慢的被测参数有良好的滤波效果2.3.缺点:对流量、速度等快速变化的参数不宜2.4.程序:/* N值可根据实际情况调整排序采用冒泡法*/#define N 11char filter(){char value_buf[N];char count,i,j,temp;for ( count=0;count<N;count++){value_buf[count] = get_ad();delay();}for (j=0;j<N-1;j++){for (i=0;i<N-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[(N-1)/2];}3.算术平均滤波法3.1.方法:连续取N个采样值进行算术平均运算N值较大时:信号平滑度较高,但灵敏度较低N值较小时:信号平滑度较低,但灵敏度较高N值的选取:一般流量,N=12;压力:N=43.2.优点:适用于对一般具有随机干扰的信号进行滤波这样信号的特点是有一个平均值,信号在某一数值范围附近上下波动3.3.缺点:对于测量速度较慢或要求数据计算速度较快的实时控制不适用比较浪费RAM3.4.程序:#define N 12char filter(){int sum = 0;for ( count=0;count<N;count++){sum + = get_ad();delay();}return (char)(sum/N);}4.递推平均滤波法(又称滑动平均滤波法)(FIR前身)4.1.方法:把连续取N个采样值看成一个队列队列的长度固定为N每次采样到一个新数据放入队尾,并扔掉原来队首的一次数据.(先进先出原则)把队列中的N个数据进行算术平均运算,就可获得新的滤波结果N值的选取:流量,N=12;压力:N=4;液面,N=4~12;温度,N=1~44.2.优点:对周期性干扰有良好的抑制作用,平滑度高适用于高频振荡的系统4.3.缺点:灵敏度低对偶然出现的脉冲性干扰的抑制作用较差不易消除由于脉冲干扰所引起的采样值偏差不适用于脉冲干扰比较严重的场合比较浪费RAM4.4.程序:#define N 12char value_buf[N];char i=0;char filter(){char count;int sum=0;value_buf[i++] = get_ad();if ( i == N ) i = 0;for ( count=0;count<N,count++)sum+ = value_buf[count];return (char)(sum/N);}5.中位值平均滤波法(又称防脉冲干扰平均滤波法)5.1.方法:相当于“中位值滤波法”+“算术平均滤波法”连续采样N个数据,去掉一个最大值和一个最小值然后计算N-2个数据的算术平均值N值的选取:3~145.2.优点:融合了两种滤波法的优点对于偶然出现的脉冲性干扰,可消除由于脉冲干扰所引起的采样值偏差5.3.缺点:测量速度较慢,和算术平均滤波法一样比较浪费RAM5.4.程序:#define N 12char filter(){char count,i,j;char value_buf[N];int sum=0;for (count=0;count<N;count++){value_buf[count] = get_ad();delay();}for (j=0;j<N-1;j++){for (i=0;i<N-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;}}}for(count=1;count<N-1;count++)sum += value[count];return (char)(sum/(N-2));}6.限幅平均滤波法6.1.方法:相当于“限幅滤波法”+“递推平均滤波法” 每次采样到的新数据先进行限幅处理,再送入队列进行递推平均滤波处理6.2.优点:融合了两种滤波法的优点对于偶然出现的脉冲性干扰,可消除由于脉冲干扰所引起的采样值偏差6.3.缺点:比较浪费RAM程序略参考子程序1、37.一阶滞后滤波法7.1.方法:取a=0~1本次滤波结果=(1-a)*本次采样值+a*上次滤波结果7.2.优点:对周期性干扰具有良好的抑制作用适用于波动频率较高的场合7.3.缺点:相位滞后,灵敏度低滞后程度取决于a值大小不能消除滤波频率高于采样频率的1/2的干扰信号7.4.程序:/* 为加快程序处理速度假定基数为100,a=0~100 */#define a 50char value;char filter(){char new_value;new_value = get_ad();return ((100-a)*value + a*new_value);}8.加权递推平均滤波法8.1.方法:是对递推平均滤波法的改进,即不同时刻的数据加以不同的权通常是,越接近现时刻的数据,权取得越大。
滤波算法在单片机系统中常用的滤波算法有限幅滤波法、中值滤波法、算术平均滤波法、加权平均滤波法、滑动平均滤波等。
1.限幅滤波算法该运算的过程中将两次相邻的采样相减,求出其增量,然后将增量的绝对值,与两次采样允许的最大差值A进行比较。
A的大小由被测对象的具体情况而定,如果小于或等于允许的最大差值,则本次采样有效;否则取上次采样值作为本次数据的样本。
算法的程序代码如下:#defineA //允许的最大差值char data;//上一次的数据char filter(){chardata_new; //新数据变量data_new=get_data(); //获得新数据变量if((data_new-data)>A||(data-data_new>A))return data;elsereturndata_new;}说明:限幅滤波法主要用于处理变化较为缓慢的数据,如温度、物体的位置等。
使用时,关键要选取合适的门限制A。
通常这可由经验数据获得,必要时可通过实验得到。
2.中值滤波算法该运算的过程是对某一参数连续采样N次(N一般为奇数),然后把N次采样的值按从小到大排列,再取中间值作为本次采样值,整个过程实际上是一个序列排序的过程。
算法的程序代码如下:#define N11 //定义获得的数据个数char filter(){charvalue_buff[N]; //定义存储数据的数组char count,i,j,temp;for(count=0;count<N;count++){value_buf[count]=get_data();delay(); //如果采集数据比较慢,那么就需要延时或中断}for(j=0;j<N-1;j++){for(value_buff[i]>value_buff[i+1]{temp=value_buff[i];value_buff[i]=value_buff[i+1];value_buff[i+1]=temp;}}returnvalue_buff[(N-1)/2];}说明:中值滤波比较适用于去掉由偶然因素引起的波动和采样器不稳定而引起的脉动干扰。
在进行振动和声学及各种物理量测试时,首先要对信号进行采集,这就要用到AD 数采系统。
如何选择合适的数采系统,既能满足自己的使用要求,又要避免指标过高而用不上,造成经济上的浪费,是很有学问的。
AD 卡的各项指标包括和主机的连接方式,最高和最低采样频率,采样通道数,动态范围,通道的一致性,量程的档位,本底噪声的量级,幅值满刻度的精度,线性一致性,支持输入方式,输入阻抗,有无程控滤波等,下面按其重要程度大致做一介绍,有些指标是相互关联的。
一.动态范围和量程的档位:一般来说,动态范围是由AD 的位数决定的,12bit 的卡理论指标为72dB,但由于2~3bit 噪声位的影响,实际能达到的动态为54~60dB。
6dB 代表可测量的动态范围为2 倍,20dB 代表可测量动态范围为10 倍。
60dB 的动态测量范围1000 倍,如这时的量程范围为±1000mV,则最小可测量级为±1mV。
常见采集卡的动态范围列表如下:动态范围也受卡本身本底噪声和不同量程的影响。
举例如下,如果一块12 位卡在量程为-1000mV~1000mV 时,本底噪声为12dB,动态范围为60dB。
经过程控放大100 倍,量程变为-10mV~10mV,本底噪声变为18dB,这时动态范围为54dB。
在工程中,目前16 位和24 位的卡是发展的主流方向,但位数越小,对量程的选择越严格,需要的量程档位也越多。
量程选择过小会造成过荷,过大会造成信噪比偏小。
当前主流产品已是24 位卡。
国际上的最高水准为24 位双核,目前国内只有东方所首创研发出此种产品。
因传感器本身的动态范围一般不会超过160dB,因此用24 位双核的采集卡一档量程就可进行测量,在测试过程中不用考虑量程问题。
二、最高采样频率和最低采样频率:最高采样频率一般由AD 芯片决定,在其它条件同等的情况下,最高采样频率越高,价钱越贵。
如果采集卡每路采用独立的AD,一般来说,一道或多道同时采样时最高采样频率SF 相等。
毕业设计设计烟雾报警器摘要随着“信息时代”的到来,作为获取信息的手段——传感器技术得到了显著的进步,其应用领域越来越广泛,对其要求越来越高,需求越来越迫切。
传感器技术已成为衡量一个国家科学技术发展水平的重要标志之一。
因此,了解并掌握各类传感器的基本结构、工作原理及特性是非常重要的。
为了提高对传感器的认识和了解,尤其是对烟雾传感器的深入研究以及其用法与用途,基于实用、广泛和典型的原则而设计了本系统。
本文利用单片机结合传感器技术而开发设计了这一烟雾监控系统。
本论文以电阻式烟雾传感器和单片机技术为核心并与其他电子技术相结合,设计出一种技术水平较好的烟雾报警器。
其中选用MQ-2型半导体可燃气体敏感元件烟雾传感器实现烟雾的检测,具有灵敏度高、响应快、抗干扰能力强等优点,而且价格低廉,使用寿命长。
选用的STC12C5410AD单片机,其整合了A/D转换、硬件乘法器、硬件脉宽调制器等资源,具有高速、低功耗、超强抗干扰等优点,是目前同类技术中性价比较高的产品。
以STC12C5410AD单片机和MQ-2型半导体电阻式烟雾传感器为核心设计的烟雾报警器可实现声光报警、故障自诊断、浓度显示、报警限设置、延时报警及与上位机串口通信等功能。
是一种结构简单、性能稳定、使用方便、价格低廉、智能化的烟雾报警器。
具有一定的实用价值。
关键词:烟雾,报警器,STC12C5410,传感器AbstractWhile “information age” the arrival, obtained the remarkable progress as the gain information method - - sensor technology, its application domain is more and more widespread, is more and more high to its request, the demand is more and more urgent.The sensor technology has become weighs one of national science and technology level of development important symbols.Therefore, understood and grasps each kind of sensor the basic structure, the principle of work and the characteristic is extremely important.In order to enhance to the sensor understanding and the understanding, in particular to the smog sensor thorough research as well as its usage and the use, based on practical, widespread and the model principle has designed this system.This article used the monolithic integrated circuit union sensor technology to develop has designed this smog supervisory system.。
AD数据采集的“数字滤波”:10个“软
件滤波程序”
在AD采集中经常要用到数字滤波,而不同情况下又有不同的滤波需求,下面是10种经典的软件滤波方法的程序和优缺点分析:
1、限幅滤波法(又称程序判断滤波法)
2、中位值滤波法
3、算术平均滤波法
4、递推平均滤波法(又称滑动平均滤波法)
5、中位值平均滤波法(又称防脉冲干扰平均滤波法)
6、限幅平均滤波法
7、一阶滞后滤波法
8、加权递推平均滤波法
9、消抖滤波法
10、限幅消抖滤波法
1、限副滤波
A、方法:根据经验判断,确定两次采样允许的最大偏差值(设为A),每次检测到新值时判断:
如果本次值与上次值之差;A,则本次值无效,放弃本次值,用上次值代替本次值
B、优点:能有效克服因偶然因素引起的脉冲干扰
C、缺点:无法抑制那种周期性的干扰,平滑度差
程序:
/* A值可根据实际情况调整,value为有效值,new_value为当前采样值,滤波程序返回有效的实际值*/
#define A 10
char value;
char filter()
{
char new_value;
new_value = get_ad();
if ( ( new_value - value >; A ) || ( value - new_value >; A )
return value;
return new_value;
}
2、中位值滤波法
A、方法:连续采样N次(N取奇数),把N次采样值按大小排列,取中间值为本次有效值
B、优点:能有效克服因偶然因素引起的波动干扰,对温度、液位的变化缓慢的被测参数有良好的滤波效果
C、缺点:对流量、速度等快速变化的参数不宜
程序:
/* N值可根据实际情况调整
排序采用冒泡法*/
#define N 11
char filter()
{
char value_buf[N];
char count,i,j,temp;
for ( count=0;count;value_buf[i+1] )
{
temp = value_buf[i];
value_buf[i] = value_buf[i+1];
value_buf[i+1] = temp;
}
}
}
return value_buf[(N-1)/2];
}
3、算术平均滤波法
A、方法:连续取N个采样值进行算术平均运算
N值较大时:信号平滑度较高,但灵敏度较低
N值较小时:信号平滑度较低,但灵敏度较高
N值的选取:一般流量,N=12;压力:N=4
B、优点:适用于对一般具有随机干扰的信号进行滤波这样信号的特点是有一个平均值,信号在某一数值范围附近上下波动
C、缺点:对于测量速度较慢或要求数据计算速度较快的实时控制不适用比较浪费RAM
程序:
#define N 12
char filter()
{
int sum = 0;
for ( count=0;count;value_buf[i+1] )
{
temp = value_buf[i];
value_buf[i] = value_buf[i+1];
value_buf[i+1] = temp;
}
}
}
for(count=1;count;当前有效值,则计数器+1,并判断计数器是否>;=上限N(溢出)
如果计数器溢出,则将本次值替换当前有效值,并清计数器
B、优点:对于变化缓慢的被测参数有较好的滤波效果,可避免在临界值附近控制器的反复开/关跳动或显示器上数值抖动
C、缺点:对于快速变化的参数不宜,如果在计数器溢出的那一次采样到的值恰好是干扰值,则会将干扰值当作有效值导入系统
程序:
#define N 12
char filter()
{
char count=0;
char new_value;
new_value = get_ad();
while (value !=new_value);
{
count++;
if (count>;=N) return new_value;
delay();
new_value = get_ad();
}
return value;
}
10、限幅消抖滤波法
A、方法:相当于“限幅滤波法”+“消抖滤波法”,先限幅,后消抖
B、优点:继承了“限幅”和“消抖
”的优点,改进了“消抖滤波法”中的某些缺陷,避免将干扰值导入系统
C、缺点:对于快速变化的参数不宜
程序略参考子程序1、9。