十大滤波算法Word下载.docx

上传人:b****3 文档编号:17673869 上传时间:2022-12-08 格式:DOCX 页数:20 大小:21.54KB
下载 相关 举报
十大滤波算法Word下载.docx_第1页
第1页 / 共20页
十大滤波算法Word下载.docx_第2页
第2页 / 共20页
十大滤波算法Word下载.docx_第3页
第3页 / 共20页
十大滤波算法Word下载.docx_第4页
第4页 / 共20页
十大滤波算法Word下载.docx_第5页
第5页 / 共20页
点击查看更多>>
下载资源
资源描述

十大滤波算法Word下载.docx

《十大滤波算法Word下载.docx》由会员分享,可在线阅读,更多相关《十大滤波算法Word下载.docx(20页珍藏版)》请在冰豆网上搜索。

十大滤波算法Word下载.docx

20. 

Serial.begin(9600);

//初始化串口通信

21. 

randomSeed(analogRead(0));

//产生随机种子

22. 

Value=300;

23.}

24. 

25.voidloop(){

26. 

Filter_Value=Filter();

//获得滤波器输出值

27. 

Value=Filter_Value;

//最近一次有效采样的值,该变量为全局变量

28. 

Serial.println(Filter_Value);

//串口输出

29. 

delay(50);

30.}

31. 

32.//用于随机产生一个300左右的当前值

33.intGet_AD(){

34. 

returnrandom(295,305);

35.}

36. 

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

38.#defineFILTER_A1

39.intFilter(){

40. 

intNewValue;

41. 

NewValue=Get_AD();

42. 

if(((NewValue-Value)>

FILTER_A)||((Value-NewValue)>

FILTER_A))

43. 

returnValue;

44. 

else

45. 

returnNewValue;

46.}

2、中位值滤波法

中位值滤波法

连续采样N次(N取奇数),把N次采样值按大小排列,

取中间值为本次有效值。

6.C、优点:

能有效克服因偶然因素引起的波动干扰;

8. 

对温度、液位的变化缓慢的被测参数有良好的滤波效果。

9.D、缺点:

10. 

对流量、速度等快速变化的参数不宜。

11.E、整理:

12.*/

13. 

14.intFilter_Value;

16.voidsetup(){

17. 

19.}

21.voidloop(){

23. 

25.}

27.//用于随机产生一个300左右的当前值

28.intGet_AD(){

32.//中位值滤波法

33.#defineFILTER_N101

34.intFilter(){

35. 

intfilter_buf[FILTER_N];

inti,j;

37. 

intfilter_temp;

38. 

for(i=0;

i<

FILTER_N;

i++){

39. 

filter_buf[i]=Get_AD();

delay

(1);

}

//采样值从小到大排列(冒泡法)

for(j=0;

j<

FILTER_N-1;

j++){

for(i=0;

FILTER_N-1-j;

if(filter_buf[i]>

filter_buf[i+1]){

46. 

filter_temp=filter_buf[i];

47. 

filter_buf[i]=filter_buf[i+1];

48. 

filter_buf[i+1]=filter_temp;

49. 

50. 

}

51. 

52. 

returnfilter_buf[(FILTER_N-1)/2];

53.}

3、算术平均滤波法

算术平均滤波法

连续取N个采样值进行算术平均运算:

N值较大时:

信号平滑度较高,但灵敏度较低;

N值较小时:

信号平滑度较低,但灵敏度较高;

N值的选取:

一般流量,N=12;

压力:

N=4。

适用于对一般具有随机干扰的信号进行滤波;

这种信号的特点是有一个平均值,信号在某一数值范围附近上下波动。

11.D、缺点:

对于测量速度较慢或要求数据计算速度较快的实时控制不适用;

比较浪费RAM。

14.E、整理:

15.*/

16. 

17.intFilter_Value;

22.}

24.voidloop(){

25. 

28.}

30.//用于随机产生一个300左右的当前值

31.intGet_AD(){

32. 

33.}

35.//算术平均滤波法

36.#defineFILTER_N12

37.intFilter(){

inti;

intfilter_sum=0;

filter_sum+=Get_AD();

return(int)(filter_sum/FILTER_N);

45.}

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

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

把连续取得的N个采样值看成一个队列,队列的长度固定为N,

每次采样到一个新数据放入队尾,并扔掉原来队首的一次数据(先进先出原则),

把队列中的N个数据进行算术平均运算,获得新的滤波结果。

流量,N=12;

压力,N=4;

液面,N=4-12;

温度,N=1-4。

对周期性干扰有良好的抑制作用,平滑度高;

适用于高频振荡的系统。

灵敏度低,对偶然出现的脉冲性干扰的抑制作用较差;

不易消除由于脉冲干扰所引起的采样值偏差;

14. 

不适用于脉冲干扰比较严重的场合;

16.E、整理:

17.*/

19.intFilter_Value;

21.voidsetup(){

24.}

26.voidloop(){

37.//递推平均滤波法(又称滑动平均滤波法)

38.#defineFILTER_N12

39.intfilter_buf[FILTER_N+1];

40.intFilter(){

filter_buf[FILTER_N]=Get_AD();

filter_buf[i]=filter_buf[i+1];

//所有数据左移,低位仍掉

filter_sum+=filter_buf[i];

49.}

5、中位值平均滤波法(又称防脉冲干扰平均滤波法)

中位值平均滤波法(又称防脉冲干扰平均滤波法)

采一组队列去掉最大值和最小值后取平均值,

相当于“中位值滤波法”+“算术平均滤波法”。

连续采样N个数据,去掉一个最大值和一个最小值,

然后计算N-2个数据的算术平均值。

3-14。

9.C、优点:

融合了“中位值滤波法”+“算术平均滤波法”两种滤波法的优点。

对于偶然出现的脉冲性干扰,可消除由其所引起的采样值偏差。

对周期干扰有良好的抑制作用。

平滑度高,适于高频振荡的系统。

14.D、缺点:

计算速度较慢,和算术平均滤波法一样。

17.E、整理:

18.*/

19. 

20.intFilter_Value;

22.voidsetup(){

27.voidloop(){

30. 

31.}

33.//用于随机产生一个300左右的当前值

34.intGet_AD(){

36.}

38.//中位值平均滤波法(又称防脉冲干扰平均滤波法)(算法1)

39.#defineFILTER_N100

intfilter_temp,filter_sum=0;

53. 

54. 

55. 

56. 

57. 

58. 

//去除最大最小极值后求平均

59. 

for(i=1;

i++)filter_sum+=filter_buf[i];

60. 

returnfilter_sum/(FILTER_N-2);

61.}

62. 

63. 

64.// 

中位值平均滤波法(又称防脉冲干扰平均滤波法)(算法2)

65./*

66.#defineFILTER_N100

67.intFilter(){

68. 

inti;

69. 

intfilter_sum=0;

70. 

intfilter_max,filter_min;

71. 

intfilter_buf[FILTER_N];

72. 

73. 

filter_buf[i]=Get_AD();

74. 

delay

(1);

75. 

76. 

filter_max=filter_buf[0];

77. 

filter_min=filter_buf[0];

78. 

filter_sum=filter_buf[0];

79. 

for(i=FILTER_N-1;

i>

0;

i--){

80. 

filter_max)

81. 

filter_max=filter_buf[i];

82. 

elseif(filter_buf[i]<

filter_min)

83. 

filter_min=filter_buf[i];

84. 

filter_sum=filter_sum+filter_buf[i];

85. 

filter_buf[i]=filter_buf[i-1];

86. 

87. 

i=FILTER_N-2;

88. 

filter_sum=filter_sum-filter_max-filter_min+i/2;

//+i/2的目的是为了四舍五入

89. 

filter_sum=filter_sum/i;

90. 

returnfilter_sum;

91.}*/

6、限幅平均滤波法

限幅平均滤波法

相当于“限幅滤波法”+“递推平均滤波法”;

每次采样到的新数据先进行限幅处理,

再送入队列进行递推平均滤波处理。

7.C、优点:

融合了两种滤波法的优点;

对于偶然出现的脉冲性干扰,可消除由于脉冲干扰所引起的采样值偏差。

12.E、整理:

13.*/

15.#defineFILTER_N12

17.intfilter_buf[FILTER_N];

filter_buf[FILTER_N-2]=300;

29.}

31.//用于随机产生一个300左右的当前值

32.intGet_AD(){

33. 

34.}

36.//限幅平均滤波法

37.#defineFILTER_A1

38.intFilter(){

filter_buf[FILTER_N-1]=Get_AD();

if(((filter_buf[FILTER_N-1]-filter_buf[FILTER_N-2])>

FILTER_A)||((filter_buf[FILTER_N-2]-filter_buf[FILTER_N-1])>

filter_buf[FILTER_N-1]=filter_buf[FILTER_N-2];

return(int)filter_sum/(FILTER_N-1);

7、一阶滞后滤波法

一阶滞后滤波法

取a=0-1,本次滤波结果=(1-a)*本次采样值+a*上次滤波结果。

5.C、优点:

对周期性干扰具有良好的抑制作用;

适用于波动频率较高的场合。

8.D、缺点:

相位滞后,灵敏度低;

滞后程度取决于a值大小;

不能消除滤波频率高于采样频率1/2的干扰信号。

15.intFilter_Value;

16.intValue;

18.voidsetup(){

35.//一阶滞后滤波法

36.#defineFILTER_A0.01

Value=(int)((float)NewValue*FILTER_A+(1.0-FILTER_A)*(float)Value);

returnValue;

42.}

8、加权递推平均滤波法

加权递推平均滤波法

是对递推平均滤波法的改进,即不同时刻的数据加以不同的权;

通常是,越接近现时刻的数据,权取得越大。

给予新采样值的权系数越大,则灵敏度越高,但信号平滑度越低。

适用于有较大纯滞后时间常数的对象,和采样周期较短的系统。

对于纯滞后时间常数较小、采样周期较长、变化缓慢的信号;

不能迅速反应系统当前所受干扰的严重程度,滤波效果差。

17.voidsetup(){

20.}

22.voidloop(){

24

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 法律文书 > 调解书

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1