当前位置: 首页 > news >正文

网站设计谈判新品怎么刷关键词

网站设计谈判,新品怎么刷关键词,asp.net做网站吗,查看一个网站的源代码做评价信号采集是非常常见的需求#xff0c;我们也总是希望采集到的数据是纯净而真实的#xff0c;但这只是我们的希望。环境中存在太多的干扰信号#xff0c;为了让我们得到的数据尽可能地接近实际值#xff0c;我们需要降低这些干扰信号的影响#xff0c;于是就有了滤波器的用…信号采集是非常常见的需求我们也总是希望采集到的数据是纯净而真实的但这只是我们的希望。环境中存在太多的干扰信号为了让我们得到的数据尽可能地接近实际值我们需要降低这些干扰信号的影响于是就有了滤波器的用武之地。这里我们讨论的主要是软件实现的数字滤波器这一篇我们就来讨论基于递推算术平均算法的阶进平滑滤波器。 1、问题的提出 前面一篇我们讨论了同时提高灵敏度和滤波效果的方法在通常情况下都能达到比较理想的效果。不过在有些情况下我们的采集对象会是处于一定的区间内并且干扰信号也主要存在于这一区间内。也就是说干扰信号的幅值并不是很大但持续存在而被测信号也基本处于一个稳定的被测区间内。在这种情况下被测信号越是处于目标范围内干扰的影响越是不可忽略。在这一篇中我们就来设计一种滤波算法实现这样的需求。 首先我们来分析一下干扰信号较小但持续不断对最终数据有较大影响。因为在有些应用中当系统稳定时采集的数据理论上来讲是不应该出现很大波动的。基于这一点我们可以考虑对比本次采集与上次输出之间的偏差值如果偏差值大于一定的限值则我们认为是数据发生了较大变化远大于干扰造成的影响干扰可以忽略所以我们直接对数据进行更新。当数据偏差处于一定的变化范围之内时但系统并未处于稳定状态但干扰信号已经不能完全忽略了我们可以进行部分滤波处理。当数据偏差小于一定的值之后我们认为是处于稳定的范围内这时干扰造成的影响于数据的变化不能忽略我们需要采用完全滤波。具体如图所示 上图中SL1和SL2是我们要设定的阶进处理区间限值。当数据偏差小于SL2时干扰信号对最终数据的影响较大我们需要进行完全滤波。当系统变化处于上图中的SL1和SL2之间时数据差异变较大干扰信号相比于数据本身的变化较小但不可忽略我们可以进行不完全滤波来增加系统的灵敏度。当系统处于大于SL1的区间时干扰信号对系统的影响很小我们可以不做滤波处理。 2、算法设计 前面描述了这种分段增加滤波作用的滤波器的特点接下来我们来设计这种阶进式滤波器的操作算法。 首先依然需要一个数据队列但在不同的情况下对数据队列的更新形式是不一样的。在前后两个数据的偏差小于SL2时这个时候我们需要对这采集数据进行完全的滤波处理。这个时候我们只需要用最新的数据替换时间最久的老数据然后取队列的算术平均值就得到输出数据。具体的队列更新如下 若是数据偏差处于SL1和SL2之间这个时候干扰信号对采集值的影响变小但并未小到可以忽略但数据的变化幅度已经很大为了提高灵敏度我们一次更新多个老数据以增加新数据的在输出值的比重。具体的队列更新如下 若是数据偏差大于SL1时数据的变化量已经远超干扰的影响我们可以忽略干扰信号为了提高系统灵敏度我们不需要在进行滤波处理。具体的队列更新如下 但是偏差落在大于SL1的范围内时并不预示着我们需要马上更新数据队列的全部数据因为可能是偶然性的脉冲干扰这时我们需要作消抖处理。我们判断如果连续多少个的采集数据均落在相应的区间我们就认为不是偶然的脉冲干扰。这是我们就更新队列的全部数据。 3、代码实现 我们已经详细描述了阶进式平滑滤波器的操作算法但具体如何实现呢我们依然将滤波器当作一个对象我们在此只考虑分成三段的阶进式滤波算法即不滤波半滤波和全滤波。 我们先来分析一下首先滤波器对象需要获取当前采集到的数据值同时我们为了实现对N个数据的递推平均就需要有一个存储这N个数的队列我们需要记录最新的数据硬件存储到哪个位置就需要一个位置指针同时我们也需要知道N的大小所以我们将它们都定义滤波器对象的属性。平滑滤波的过程必须要计算算术平均值而递推算术平均则是在每次采集一个数据之时都计算平均值可是如果N值较大时就会存在大量的重复计算。我们考虑到上一次采样的平均值已经得到我们将其记录下来的话就可以用最新采集的数据替换掉最老的数据从而得到新的平均值所以我们将上一时间的输出值记录下来作为对象的一个属性。除此之外我们还需要知道滤波器的限制区间即HL和LL所以我们将采集数据所对应的量程范围、上限HL、下限LL比例均作为对象的属性。同时为了实现消抖我们需要记录数据大幅变化的持续数及确认消抖的最大数值这两个也作为对象的属性。根据以上分析我们可定义滤波器对象类型为 /*定义平滑滤波对象类型*/ typedef struct FilterObject{float newValue;       //最新测量值float lastValue;      //上一个输出值float *buffer;        //数据缓存区int16_t position;    //写操作位置指针uint16_t bufCount;    //滤波的数量uint16_t delayCount;  //延迟计数uint16_t delayLimit;  //延迟限值float rangeLimit;     //量程范围float upperRario;     //比例下限float lowerRatio;     //比例下限 }FilterObjectType; 我们已经获得了滤波器对象接下来将基于这一对象实现相应的滤波器功能。我们要对比当前的采集值与上一个输出值的比较根据它们的偏差绝对值来决定采取怎样的处理方式。处理流程如下 在偏差值小于SL2时进行全滤波处理在偏差值大于SL2而小于SL1时进行半滤波处理而在偏差值大于SL1时不进行滤波处理。根据以上的分析及流程图我们可以设计阶进平滑滤波器的代码为 /* 阶梯平滑滤波处理函数返回滤波后的值*/ float StepSmoothingFilter(FilterObjectType *filter) {float resultfilter-lastValue;if(filter-position0){for(int i0;ifilter-bufCount;i){filter-buffer[i]filter-newValue;}filter-position0;filter-lastValuefilter-newValue;}if(filter-positionfilter-bufCount){filter-position0;}if(fabs(filter-newValue-filter-lastValue)(filter-rangeLimit*filter-upperRario/100)){filter-delayCount1;if(filter-delayCountfilter-delayLimit){for(int i0;ifilter-bufCount;i){filter-buffer[i]filter-newValue;}filter-position;resultfilter-newValue;filter-delayCount0;}}else if(fabs(filter-newValue-filter-lastValue)(filter-rangeLimit*filter-lowerRatio/100)){resultfilter-lastValue-filter-buffer[filter-position]/filter-bufCount;resultresultfilter-newValue/filter-bufCount;filter-buffer[filter-position]filter-newValue;if(filter-positionfilter-bufCount){filter-position0;}resultresult-filter-buffer[filter-position]/filter-bufCount;resultresultfilter-newValue/filter-bufCount;filter-buffer[filter-position]filter-newValue;filter-delayCount0;}else{resultfilter-lastValue-filter-buffer[filter-position]/filter-bufCount;resultresultfilter-newValue/filter-bufCount;filter-buffer[filter-position]filter-newValue;filter-delayCount0;}filter-lastValueresult;filter-newValue0.0;return result; } 4、应用总结 我们实现了基于算术平均的阶进平滑滤波器。该滤波器对周期性干扰和小幅的噪声干扰均有较好的效果。而且通过不同偏差值区间进行不同的滤波处理在数据快速变化时能很好的提高系统的灵敏度。对于系统处于平稳状态时也能收到很好的滤波效果。 这一滤波器有效的前提是基于干扰的幅度并不是很大而且系统的采集值基本能稳定在一定范围内的前提而实现的。如果系统存在较大幅度的脉冲干扰在这种脉冲干扰的出现频率较低时消抖操作能够很好的去除这种偶然性干扰。但如果出现持续性的高频大幅脉冲干扰这一滤波器将变得无能为力。 对于限值区间SL1和SL2的取值一般只能根据采集系统的特点或者工程师的经验来判断但并非是盲目的因为很多情况下我们是能够判断出干扰信号的大致判断范围的。在这些系统中绝大部分的干扰变化会落在SL2的范围内其概率可能会超过60%而落在SL1范围内的概率可能会超过90%所以选择合适的SL1和SL2值会取得良好的滤波效果。 欢迎关注
http://www.zqtcl.cn/news/572870/

相关文章:

  • 妇科医院网站优化服务商品牌型网站设计推荐
  • 西安网站制作排名网站建设对企业的帮助
  • lamp网站开发 pdf纯html5 网站
  • 白云区同和网站建设购物网站怎么建立
  • 公司制作网站需要espcms易思企业网站管理系统
  • 开发一个网站需要哪些步骤广西建设主管部门网站
  • 网站建设培训西安制作微信小程序开发
  • delphi 做直播网站wordpress 商务
  • 各大网站的软文怎么做wordpress教程菜鸟教程
  • 破解php网站后台账号密码wordpress二维码 插件下载
  • 石家庄哪里可以做网站做网站用的pm是啥
  • 租服务器网站有趣的设计网站
  • 建设部监理网站官网信阳市两学一做网站
  • 网站被攻击会影响收录么微信网站 影楼
  • 社区网站开发search搜索引擎
  • 章丘做网站哪家强原阳网站建设
  • 做网站前期构架图中国建设银行手机银行网站
  • tp5企业网站开发百度云青岛vi设计公司
  • 网站建设实验原理建站之星 discuz
  • 购物网站如何备案建设部施工合同范本
  • 网站模板安装建站之星凡客
  • 有没有电脑做兼职的网站吗网站和域名区别
  • 免费html网页模板素材网站修改wordpress后台登陆
  • 男女做啊免费视频网站网站做全景图
  • 网站域名 安全网站开发语言一般是用什么
  • 麦包包的网站建设分析网站开发一般要用到哪些软件有哪些
  • 关于内网站建设的请示天津住房与城乡建设厅网站首页
  • 企业网站免费源码装修公司需要多少钱
  • 沈阳建设网站费用群晖wordpress打不开
  • jsp网站开发 pdf建设植绒衣架网站