c语言取整+滤波方法

上传人:xh****66 文档编号:57134011 上传时间:2018-10-19 格式:DOCX 页数:5 大小:17.39KB
返回 下载 相关 举报
c语言取整+滤波方法_第1页
第1页 / 共5页
c语言取整+滤波方法_第2页
第2页 / 共5页
c语言取整+滤波方法_第3页
第3页 / 共5页
c语言取整+滤波方法_第4页
第4页 / 共5页
c语言取整+滤波方法_第5页
第5页 / 共5页
亲,该文档总共5页,全部预览完了,如果喜欢就下载吧!
资源描述

《c语言取整+滤波方法》由会员分享,可在线阅读,更多相关《c语言取整+滤波方法(5页珍藏版)》请在金锄头文库上搜索。

1、C 语言有以下几种取整方法:语言有以下几种取整方法: 1、直接赋值给整数变量。如: int i = 2.5; 或 i = (int) 2.5; 这种方法采用的是舍去小数部分,可以用于你的问题。 2、C/C+中的整数除法运算符“/”本身就有取整功能(int / int),而下面介绍的取整函数 返回值是 double。整数除法对正数的取整是舍去小数部分,可以用于你的问题。但是整数 除法对负数的取整结果和使用的 C 编译器有关。 3、使用 floor 函数。floor(x)返回的是小于或等于 x 的最大整数。如: floor(2.5) = 2 floor(-2.5) = -3 4、使用 ceil 函

2、数。ceil(x)返回的是大于 x 的最小整数。如: ceil(2.5) = 3 ceil(-2.5) = -2 floor()是向负无穷大舍入,floor(-2.5) = -3;ceil()是向正无穷大舍入,ceil(-2.5) = - 2。floor 函数可以用于你的问题。 1、限副滤波、限副滤波 A、方法:根据经验判断,确定两次采样允许的最大偏差值(设为 A) ,每次检测到新值时 判断:如果本次值与上次值之差A,则本次值 无效,放弃本次值,用上次值代替本次值 B、优点:能有效克服因偶然因素引起的脉冲干扰。 C、缺点:无法抑制那种周期性的干扰,平滑度差。 /* A 值可根据实际情况调整va

3、lue 为有效值,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、优点:能有效克服因偶然因素引起的波动干扰,对温度、液位的变化缓慢的被测参 数有良好

4、的滤波效果。 C、缺点:对流量、速度等快速变化的参数不宜。 /* N 值可根据实际情况调整排序采用冒泡法*/ #define N 11char filter() char value_bufN;char count,i,j,temp;for ( count=0;countvalue_bufi+1 )temp = value_bufi;value_bufi = value_bufi+1; value_bufi+1 = temp;return value_buf(N-1)/2; 3、算术平均滤波法、算术平均滤波法 A、方法:连续取 N 个采样值进行算术平均运算。N 值较大时:信号平滑度较高,但灵敏

5、 度较低;N 值较小时:信号平滑度较低,但灵敏度较高。N 值的选取:一般流量,N=12; 压力:N=4B、优点:适用于对一般具有随机干扰的信号进行滤波,这样信号的特点是有一个平均 值,信号在某一数值范围附近上下波动。 C、缺点:对于测量速度较慢或要求数据计算速度较快的实时控制不适用,比较浪费 RAM。 #define N 12 char filter() int sum = 0;for ( count=0;countvalue_bufi+1 )temp = value_bufi;value_bufi = value_bufi+1; value_bufi+1 = temp;for(count=1

6、;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、缺点:对于快速变化的参数不宜。

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 生活休闲 > 社会民生

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号