当前位置:文档之家› 滤波方法

滤波方法

滤波方法
滤波方法

在进行图像目标识别与跟踪时,摄像机所采集的图像,在成像、数字化以及传输过程中,难免会受到各种各样噪声的干扰,图像的质量往往会出现不尽人意的退化,影响了图像的视觉效果。通常这些噪声干扰使得图像退化,表现为图像模糊,特征淹没,这会对图像分析产生不利,使所获得的图像质量较低。对这样的图像直接进行目标的识别与跟踪是比较困难的。抑制使图像退化的各种干扰信号、增强图像中的有用信号,以及将观测到的不同图像在同一约束条件下进行校正处理就显得非常重要。本文主要对图像预处理过程中的滤波方法进行总结,阐述滤波原理,在VC下基于OpenCV实现各种算法,并给出各种滤波的效果。

1、高斯滤波

高斯滤波是一种线性平滑滤波,适用于滤除高斯白噪声,已广泛应用于图像处理的预处理阶段。按照本人的理解,对图像进行高斯滤波就是对图像中的每个点的像素值计算,计算的准则是,由该点本身灰度值以及其邻域内的其他像素灰度值加权平均所得,而加权平均的权系数由二维离散高斯函数采样并归一化后所得。具体的高斯函数及其离散化参考《高斯图像滤波原理及其编程离散化实现方法》一文。以下给出图像高斯滤波的实现代码。

1.void GuassFilter(CvMat *pGrayMat, CvMat* pFilterMat, int nWidth, int nHeight, doubl

e dSigma)

2.{

3.////////////////////////参数说明///////////////////////////////////

4.//pGrayMat:待处理图像数组

5.//pFilterMat:保存高斯滤波结果

6.//nWidth:图像宽度

7.//nHeight:图像高度

8.//dSigma:高斯滤波参数,方差

9.int nWidowSize = (int)(1+2*ceil(3*dSigma)); //定义滤波窗口的大小

10.int nCenter = (nWidowSize)/2; //定义滤波窗口中心的索引

11.//生成二维的高斯滤波系数

12.double* pdKernal = new double[nWidowSize*nWidowSize]; //定义一维高斯核数组

13.double dSum = 0.0; //求和,进行归一化

14./////////////二维高斯函数公式//////////////////////

15.// x*x+y*y ///////

16.// -1*-------------- ///////

17.// 1 2*Sigma*Sigma ///////

18.// ---------------- e ///////

19.// 2*pi*Sigma*Sigma ///////

20.///////////////////////////////////////////////////

21.for(int i=0; i

22. {

23.for(int j=0; j

24. {

25.int nDis_x = i-nCenter;

26.int nDis_y = j-nCenter;

27. pdKernal[i+j*nWidowSize]=exp(-(1/2)*(nDis_x*nDis_x+nDis_y*nDis_y)

28. /(dSigma*dSigma))/(2*3.1415926*dSigma*dSigma);

29. dSum += pdKernal[i+j*nWidowSize];

30. }

31. }

32.//进行归一化

33.for(i=0; i

34. {

35.for(int j=0; j

36. {

37. pdKernal[i+j*nWidowSize] /= dSum;

38. }

39. }

40.for(i=0; i

41. {

42.for(int j=0; j

43. {

44.double dFilter=0.0;

45.double dSum = 0.0;

46.for(int x=(-nCenter); x<=nCenter; x++) //行

47. {

48.for(int y=(-nCenter); y<=nCenter; y++) //列

49. {

50.if( (j+x)>=0 && (j+x)=0 && (i+y)

断边缘

51. {

52.double ImageData = cvmGet(pGrayMat ,i+y, j+x);

53. dFilter += ImageData * pdKernal[(y+nCenter)*nWidowSize+(x+n

Center)];

54. dSum += pdKernal[(y+nCenter)*nWidowSize+(x+nCenter)];

55. }

56. }

57. }

58. cvmSet(pFilterMat, i, j, dFilter/dSum);

59. }

60. }

61.delete[]pdKernal;

62.}

2、均值滤波

均值滤波也称为线性滤波,其采用的主要方法为邻域平均法。线性滤波的基本原理是用均值代替原图像中的各个像素值,即对待处理的当前像素点(x,y),选择一个模板,该模板由其近邻的若干像素组成,求模板中所有像素的均值,再把该均值赋予当前像素点(x,y),作为处理后图像在该点上的灰度值g(x,y),即g(x,y)=1/m ∑f(x,y),m为该模板中包含当前像素在内的像素总个数。这样的方法可以平滑图像,速度快,算法简单。但是无法去掉噪声,这能微弱的减弱它。其实现代码如下。

1.void MeanFilter(CvMat *pGrayMat, CvMat *pFilterMat, int nWidth, int nHeight, int nW

indows)

2.{

3.////////////////////////参数说明///////////////////////////////////

4.//pGrayMat:待处理图像数组

5.//pFilterMat:保存高斯滤波结果

6.//nWidth:图像宽度

7.//nHeight:图像高度

8.//nWindows:滤波窗口大小

9.if((nWindows%2) == 0)

10. {

11. MessageBox("此函数必须设置邻域为奇数矩阵");

12.return;

13. }

14.int nNumData = nWindows/2;

15.if((nWindows>nHeight) && (nWindows>nWidth))

16. {

17. MessageBox("滤波窗口超出许可范围,请检查!");

18.return;

19. }

20.for(int i=nNumData; i<(nHeight-nNumData); i++)

21. {

22.for(int j=nNumData; j<(nWidth-nNumData); j++)

23. {

24.double dData = 0.0;

25.int nNum = 0;

26.for(int m=-nNumData; m<=nNumData; m++)

27. {

28.for(int n=-nNumData; n<=nNumData; n++)

29. {

30.if((m!=0) && (n!=0))

31. {

32. dData += cvmGet(pGrayMat ,i+m, j+n);

33. nNum++;

34. }

35. }

36. }

37. dData /= nNum;

38. cvmSet(pFilterMat, i, j, dData);

39. }

40. }

41.}

3、中值滤波

中值滤波法是一种非线性平滑技术,它将每一像素点的灰度值设置为该点某邻域窗口内的所有像素点灰度值的中值。其实现过程为: 1)通过从图像中的某个采样窗口取出奇数个数据进行排序

2)用排序后的中值作为当前像素点的灰度值

在图像处理中,中值滤波常用来保护边缘信息,是经典的平滑噪声的方法,该方法法对消除椒盐噪音非常有效,在光学测量条纹图象的相位分析处理方法中有特殊作用,但在条纹中心分析方法中作用不大。其实现代码如下:

1.Void MedianFilter(CvMat *pGrayMat, CvMat *pFilterMat, int nWidth, int nHeight, int

nWindows)

2.{

3.////////////////////////参数说明///////////////////////////////////

4.//pGrayMat:待处理图像数组

5.//pFilterMat:保存高斯滤波结果

6.//nWidth:图像宽度

7.//nHeight:图像高度

8.//nWindows:滤波窗口大小

9.if((nWindows%2) == 0)

10. {

11. MessageBox("此函数必须设置邻域为奇数矩阵");

12.return;

13. }

14.int nNumData = nWindows/2;

15. unsigned char* nData = new unsigned char[nWindows*nWindows-1]; //保存邻域中的数

16.if((nWindows>nHeight) && (nWindows>nWidth))

17. {

18. MessageBox("滤波窗口超出许可范围,请检查!");

19.return;

20. }

21.for(int i=nNumData; i<(nHeight-nNumData); i++)

22. {

23.for(int j=nNumData; j<(nWidth-nNumData); j++)

24. {

25.int nIndex = 0;

26.for(int m=-nNumData; m<=nNumData; m++)

27. {

28.for(int n=-nNumData; n<=nNumData; n++)

29. {

30.if((m!=0) && (n!=0))

31. nData[nIndex++] = (unsigned char)cvmGet(pGrayMat, i+m, j+n)

;

32. }

33. }

34. InsertSort(nData, nIndex); //排序

35. unsigned char nMedium = 0;

36.if(nIndex%2==0)

37. nMedium = (unsigned char)((nData[(nIndex-1)/2] + nData[(nIndex+1)/2

])/2);

38.else

39. nMedium = nData[nIndex/2];

40. cvmSet(pFilterMat, i, j, nMedium);

41. }

42. }

43.delete[]nData;

44.}

以上代码中用到了排序函数InsertSort(unsigned char a[], int

4、双边滤波(Bilateral filter)

双边滤波是一种可以保边去噪的滤波器。之所以可以达到这样的效果,是因为该滤波器是由两个函数构成,一个函数是由几何空间距离决定滤波器系数,另外一个由像素差决定滤波器系数。

在前面几种讲述的滤波方法中,像素点的灰度值均是由该点邻域内其他点的灰度值决定的,比如高斯滤波和均值滤波都可看作是加权平均,中值滤波取的是邻域灰度中值。双边滤波则不但考虑邻域范围内点的灰度值,同样考虑这些点距离中心点的几何距离,这样可以得到滤波后的点的灰度值表达公式为:

其中k为归一化系数,其表达式为:

h和x分别为滤波后和滤波前对应点的灰度值;

c表示中心点与其邻域内点的空间相似度;

s表示中心点与其邻域内点的灰度相似度。

在实现过程中,c和s函数均可用高斯函数实现,即其定义如下:

可根据以上原理实现双边滤波如下。

1.Void BilateralFilter(CvMat *pGrayMat, CvMat *pFilterMat, int nWidth, int nHeight, d

ouble dSigma1, double dSigma2, int nWindows)

2.{

3.////////////////////////参数说明///////////////////////////////////

4.//pGrayMat:待处理图像数组

5.//pFilterMat:保存高斯滤波结果

6.//nWidth:图像宽度

7.//nHeight:图像高度

8.//dSigma1、dSigma2:分别为几何与灰度相关高斯函数的方差

9.double* dDistance = new double[nWindows*nWindows]; //计算距离中间点的几何距离

10.double* dGrayDiff = new double[nWindows*nWindows]; //定义中心点到当前点的灰度差

11.for(int i=0; i

12. {

13.int nNumX = i/nWindows;

14.int nNumY = i%nWindows;

15. dDistance[i] = ((nWindows-1)/2-nNumX)*((nWindows-1)/2-nNumX)+((nWindows-1)/

2-nNumY)*((nWindows-1)/2-nNumY);

16. dDistance[i] = exp(-0.5*dDistance[i]/dSigma1/dSigma1); //C参数

17. }

18.//以下求解灰度值的差

19.for(i=0; i

20. {

21.for(int j=0; j

22. {

23.double dGray = cvmGet(pGrayMat, i, j); //当前点的灰度值

24.double dData = 0.0;

25.double dTotal = 0.0; //用于进行归一化

26.for(int m=0; m

27. {

28.int nNumX = m/nWindows; //行索引

29.int nNumY = m%nWindows; //列索引

30.int nX = i-(nWindows-1)/2+nNumX;

31.int nY = j-(nWindows-1)/2+nNumY;

32.if( (nY>=0) && (nY=0) && (nX

33. {

34.double dGray1 = cvmGet(pGrayMat, nX, nY);

35. dGrayDiff[m] = fabs(dGray-dGray1);

36. dGrayDiff[m] = exp(-0.5*dGrayDiff[m]*dGrayDiff[m]/dSigma2/dSigm

a2); //S参数

37.if(m!=4)

38. {

39. dData += dGray1 * dGrayDiff[m] * dDistance[m]; //C和S参数综

40. dTotal += dGrayDiff[m]*dDistance[m]; //加权系数求和,进行归

一化

41. }

42. }

43. }

44. dData /=dTotal;

45. cvmSet(pFilterMat, i, j, dData);

46. }

47. }

48.delete[]dDistance;

49.delete[]dGrayDiff;

50.}

5、结果对比

以下对几种滤波方法的结果进行展示对比。

1)待处理的彩色图片

2)灰度化后的图像(灰度化实现详见《图像灰度化方法总结及其VC实现》)

3)高斯滤波(Sigma=0.4)

4)均值滤波(滤波窗口=3)

5)中值滤波结果(滤波窗口=3)

6)双边滤波结果(滤波窗口=3,距离Sigma=10,灰度Sigma=300)

根据以上几幅图,可以看出高斯滤波和均值滤波模糊了边界,而中值滤波和双边滤波则能够较好的保存图像的边界信息。

另外,作者最近正在思考每种方法中所对应参数的设置策略,能否有根据图像某种特性而变化的自适应的参数,目前所有的参数都是根据经验进行设置的,因为整个过程并没有反馈信息。因此,后续还需要研究各种不同参数的设置方法,以最大限度的增大信噪比,同时还能够为目标识别提供良好的边缘信息。

本文所有代码,可以在作者的下载资源中找到,点击这里下载。(需要安装OpenCv1.0)

数字滤波算法

几种简单的数字滤波 假定从8位AD中读取数据(如果是更高位的AD可定义数据类型为int),子程序为get_ad(); 1、限副滤波 /* 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、中位值滤波法 /* N值可根据实际情况调整 排序采用冒泡法*/ #define N 11 char filter() { char value_buf[N]; char count,i,j,temp; for ( count=0;countvalue_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、算术平均滤波法 /* */ #define N 12 char filter() { int sum = 0; for ( count=0;count

常用的8种数字滤波算法

常用的8种数字滤波算法 摘要:分析了采用数字滤波消除随机干扰的优点,详细论述了微机控制系统中常用的8种数字滤波算法,并讨论了各种数字滤波算法的适用范围。 关键词:数字滤波;控制系统;随机干扰;数字滤波算法 1 引言 在微机控制系统的模拟输入信号中,一般均含有各种噪声和干扰,他们来自被测信号源本身、传感器、外界干扰等。为了进行准确测量和控制,必须消除被测信号中的噪声和干扰。噪声有2大类:一类为周期性的,其典型代表为50 Hz 的工频干扰,对于这类信号,采用积分时间等于20 ms整倍数的双积分A/D转换器,可有效地消除其影响;另一类为非周期的不规则随机信号,对于随机干扰,可以用数字滤波方法予以削弱或滤除。所谓数字滤波,就是通过一定的计算或判断程序减少干扰信号在有用信号中的比重,因此他实际上是一个程序滤波。 数字滤波器克服了模拟滤波器的许多不足,他与模拟滤波器相比有以下优点: (1)数字滤波器是用软件实现的,不需要增加硬设备,因而可靠性高、稳定性好,不存在阻抗匹配问题。 (2)模拟滤波器通常是各通道专用,而数字滤波器则可多通道共享,从而降低了成本。 (3)数字滤波器可以对频率很低(如0.01 Hz)的信号进行滤波,而模拟滤波器由于受电容容量的限制,频率不可能太低。 (4)数字滤波器可以根据信号的不同,采用不同的滤波方法或滤波参数,具有灵活、方便、功能强的特点。 2 常用数字滤波算法 数字滤波器是将一组输入数字序列进行一定的运算而转换成另一组输出数字序列的装置。设数字滤波器的输入为X(n),输出为Y(n),则输入序列和输出序列之间的关系可用差分方程式表示为: 其中:输入信号X(n)可以是模拟信号经采样和A/D变换后得到的数字序列,也

10种常用滤波方法

1、限幅滤波法(又称程序判断滤波法) A、方法: 根据经验判断,确定两次采样允许的最大偏差值(设为A) 每次检测到新值时判断: 如果本次值与上次值之差<=A,则本次值有效 如果本次值与上次值之差>A,则本次值无效,放弃本次值,用上次值代替本次值B、优点: 能有效克服因偶然因素引起的脉冲干扰 C、缺点 无法抑制那种周期性的干扰 平滑度差 2、中位值滤波法 A、方法: 连续采样N次(N取奇数) 把N次采样值按大小排列 取中间值为本次有效值 B、优点: 能有效克服因偶然因素引起的波动干扰 对温度、液位的变化缓慢的被测参数有良好的滤波效果 C、缺点: 对流量、速度等快速变化的参数不宜 3、算术平均滤波法 A、方法: 连续取N个采样值进行算术平均运算 N值较大时:信号平滑度较高,但灵敏度较低 N值较小时:信号平滑度较低,但灵敏度较高 N值的选取:一般流量,N=12;压力:N=4 B、优点: 适用于对一般具有随机干扰的信号进行滤波 这样信号的特点是有一个平均值,信号在某一数值范围附近上下波动 C、缺点: 对于测量速度较慢或要求数据计算速度较快的实时控制不适用 比较浪费RAM 4、递推平均滤波法(又称滑动平均滤波法) A、方法: 把连续取N个采样值看成一个队列 队列的长度固定为N 每次采样到一个新数据放入队尾,并扔掉原来队首的一次数据.(先进先出原则) 把队列中的N个数据进行算术平均运算,就可获得新的滤波结果 N值的选取:流量,N=12;压力:N=4;液面,N=4~12;温度,N=1~4 B、优点:

对周期性干扰有良好的抑制作用,平滑度高 适用于高频振荡的系统 C、缺点: 灵敏度低 对偶然出现的脉冲性干扰的抑制作用较差 不易消除由于脉冲干扰所引起的采样值偏差 不适用于脉冲干扰比较严重的场合 比较浪费RAM 5、中位值平均滤波法(又称防脉冲干扰平均滤波法) A、方法: 相当于“中位值滤波法”+“算术平均滤波法” 连续采样N个数据,去掉一个最大值和一个最小值 然后计算N-2个数据的算术平均值 N值的选取:3~14 B、优点: 融合了两种滤波法的优点 对于偶然出现的脉冲性干扰,可消除由于脉冲干扰所引起的采样值偏差C、缺点: 测量速度较慢,和算术平均滤波法一样 比较浪费RAM 6、限幅平均滤波法 A、方法: 相当于“限幅滤波法”+“递推平均滤波法” 每次采样到的新数据先进行限幅处理, 再送入队列进行递推平均滤波处理 B、优点: 融合了两种滤波法的优点 对于偶然出现的脉冲性干扰,可消除由于脉冲干扰所引起的采样值偏差C、缺点: 比较浪费RAM 7、一阶滞后滤波法 A、方法: 取a=0~1 本次滤波结果=(1-a)*本次采样值+a*上次滤波结果 B、优点: 对周期性干扰具有良好的抑制作用 适用于波动频率较高的场合 C、缺点: 相位滞后,灵敏度低 滞后程度取决于a值大小

10种简单的数值滤波方法

单片机利用软件抗干扰的几种滤波方法 1、限幅滤波法(又称程序判断滤波法) A、方法: 根据经验判断,确定两次采样允许的最大偏差值(设为A),每次检测到新值时判断: 如果本次值与上次值之差<=A,则本次值有效; 如果本次值与上次值之差>A,则本次值无效,放弃本次值,用上次值代替本次值。 B、优点: 能有效克服因偶然因素引起的脉冲干扰。 C、缺点 无法抑制那种周期性的干扰,平滑度差。 2、中位值滤波法 A、方法: 连续采样N次(N取奇数),把N次采样值按大小排列,取中间值为本次有效值。 B、优点: 能有效克服因偶然因素引起的波动干扰,对温度、液位的变化缓慢的被测参数有良好的滤波效果。 C、缺点: 对流量、速度等快速变化的参数不宜。 3、算术平均滤波法 A、方法: 连续取N个采样值进行算术平均运算,N值较大时:信号平滑度较高,但灵敏度较低;N值较小时:信号平滑度较低,但灵敏度较高;N值的选取:一般流量,N=12;压力:N=4。 B、优点: 适用于对一般具有随机干扰的信号进行滤波,这样信号的特点是有一个平均值,信号在某一数值范围附近上下波动。 C、缺点: 对于测量速度较慢或要求数据计算速度较快的实时控制不适用,比较浪费RAM。 4、递推平均滤波法(又称滑动平均滤波法)。 A、方法: 把连续取N个采样值看成一个队列,队列的长度固定为N,每次采样到一个新数据放入队尾,并扔掉原来队首的一次数据.(先进先出原则),把队列中的N个数据进行算术平均运算,就可获得新的滤波结果。N值的选取:流量,N=12;压力:N=4;液面,N=4~12;温度,N=1~4。 B、优点: 对周期性干扰有良好的抑制作用,平滑度高,适用于高频振荡的系统 C、缺点: 灵敏度低,对偶然出现的脉冲性干扰的抑制作用较差,不易消除由于脉冲干扰所引起的采样值偏差,不适用于脉冲干扰比较严重的场合,比较浪费RAM。 5、中位值平均滤波法(又称防脉冲干扰平均滤波法) A、方法: 相当于“中位值滤波法”+“算术平均滤波法”,连续采样N个数据,去掉一个最大值和一个最小值,然后计算N-2个数据的算术平均值,N值的选取:3~14, B、优点: 融合了两种滤波法的优点,对于偶然出现的脉冲性干扰,可消除由于脉冲干扰所引起的采样值偏差。 C、缺点: 测量速度较慢,和算术平均滤波法一样,比较浪费RAM。 6、限幅平均滤波法

单片机数字滤波算法

单片机主要作用是控制外围的器件,并实现一定的通信和数据处理。 但在某些特定场合,不可避免地要用到数学运算,尽管单片机并不擅长实现算法和进行复杂的运算。下面主要是介绍如何用单片机实现数字滤波。 在单片机进行数据采集时,会遇到数据的随机误差,随机误差是由随机干扰引起的,其特点是在相同条件下测量同一量时,其大小和符号会现无规则的变化而无法预测,但多次测量的结果符合统计规律。为克服随机干扰引起的误差,硬件上可采用滤波技术,软件上可采用软件算法实现数字滤波。滤波算法往往是系统测控算法的一个重要组成部分,实时性很强。 1采用数字滤波算法克服随机干扰的误差具有以下优点: 1.数字滤波无需其他的硬件成本,只用一个计算过程,可靠性高,不存在阻 抗匹配问题。尤其是数字滤波可以对频率很低的信号进行滤波,这是模拟滤波器做不到的。 2.数字滤波使用软件算法实现,多输入通道可共用一个滤波程序,降低系统 开支。 3.只要适当改变滤波器的滤波程序或运算,就能方便地改变其滤波特性,这 对于滤除低频干扰和随机信号会有较大的效果。 4.在单片机系统中常用的滤波算法有限幅滤波法、中值滤波法、算术平均滤 波法、加权平均滤波法、滑动平均滤波等。 2限幅滤波算法 该运算的过程中将两次相邻的采样相减,求出其增量,然后将增量的绝对值,与两次采样允许的最大差值A进行比较。A的大小由被测对象的具体情况而定,如果小于或等于允许的最大差值,则本次采样有效;否则取上次采样值作为本次数据的样本。 算法的程序代码如下: #define A //允许的最大差值 char data; //上一次的数据 char filter() { char datanew; //新数据变量 datanew=get_data(); //获得新数据变量 if((datanew-data)>A||(data-datanew>A)) return data; else return datanew; }

自适应滤波器介绍及原理

关于自适应滤波的问题: 自适应滤波器有4种基本应用类型: 1) 系统辨识:这时参考信号就是未知系统的输出,当误差最小时,此时自适应滤波器就与未知系统具有相近的特性,自适应滤波器用来提供一个在某种意义上能够最好拟合未知装置的线性模型 2) 逆模型:在这类应用中,自适应滤波器的作用是提供一个逆模型,该模型可在某种意义上最好拟合未知噪声装置。理想地,在线性系统的情况下,该逆模型具有等于未知装置转移函数倒数的转移函数,使得二者的组合构成一个理想的传输媒介。该系统输入的延迟构成自适应滤波器的期望响应。在某些应用中,该系统输入不加延迟地用做期望响应。 3) 预测:在这类应用中,自适应滤波器的作用是对随机信号的当前值提供某种意义上的一个最好预测。于是,信号的当前值用作自适应滤波器的期望响应。信号的过去值加到滤波器的输入端。取决于感兴趣的应用,自适应滤波器的输出或估计误差均可作为系统的输出。在第一种情况下,系统作为一个预测器;而在后一种情况下,系统作为预测误差滤波器。 4) 干扰消除:在一类应用中,自适应滤波器以某种意义上的最优化方式消除包含在基本信号中的未知干扰。基本信号用作自适应滤波器的期望响应,参考信号用作滤波器的输入。参考信号来自定位的某一传感器或一组传感器,并以承载新息的信号是微弱的或基本不可预测的方式,供给基本信号上。 这也就是说,得到期望输出往往不是引入自适应滤波器的目的,引入它的目的是得到未知系统模型、得到未知信道的传递函数的倒数、得到未来信号或误差和得到消除干扰的原信号。 1 关于SANC (自适应消噪)技术的问题 自适应噪声消除是利用winer 自适应滤波器,以输入信号的时延信号作为参考信号来进行滤波的,其自适应消噪的原理说明如下: 信号()x n 可分解为确定性信号分量()D x n 和随机信号分量()R x n ,即: ()()()D R x n x n x n =+ (1.1) 对于旋转机械而言,确定性信号分量()D x n 通常可表示为周期或准周期信号分量()P x n ,即: ()()()P R x n x n x n =+ 1.2 对信号()x n 两个分量()P x n 和()R x n ,有两个基本假设: (1) ()P x n 和()R x n 互不相关; (2) ()P x n 和()R x n 的自相关函数具有下述特性:()0P P x x R m ≈, N m M ≥;()0R R x x R m ≈,B m M ≥;

十种数字滤波方法

1、限幅滤波法(又称程序判断滤波法) A、方法: 根据经验判断,确定两次采样允许的最大偏差值(设为A) 每次检测到新值时判断: 如果本次值与上次值之差<=A,则本次值有效 如果本次值与上次值之差>A,则本次值无效,放弃本次值,用上次值代替本次值 B、优点: 能有效克服因偶然因素引起的脉冲干扰 C、缺点 无法抑制那种周期性的干扰 平滑度差 2、中位值滤波法 A、方法: 连续采样N次(N取奇数) 把N次采样值按大小排列 取中间值为本次有效值 B、优点: 能有效克服因偶然因素引起的波动干扰 对温度、液位的变化缓慢的被测参数有良好的滤波效果 自动化科协 C、缺点: 对流量、速度等快速变化的参数不宜 3、算术平均滤波法 A、方法: 连续取N个采样值进行算术平均运算 N值较大时:信号平滑度较高,但灵敏度较低 N值较小时:信号平滑度较低,但灵敏度较高 N值的选取:一般流量,N=12;压力:N=4 B、优点: 适用于对一般具有随机干扰的信号进行滤波 这样信号的特点是有一个平均值,信号在某一数值范围附近上下波动 C、缺点: 对于测量速度较慢或要求数据计算速度较快的实时控制不适用 比较浪费RAM 4、递推平均滤波法(又称滑动平均滤波法) A、方法: 把连续取N个采样值看成一个队列 队列的长度固定为N 每次采样到一个新数据放入队尾,并扔掉原来队首的一次数据.(先进先出原则) 把队列中的N个数据进行算术平均运算,就可获得新的滤波结果

N值的选取:流量,N=12;压力:N=4;液面,N=4~12;温度,N=1~4 B、优点: 对周期性干扰有良好的抑制作用,平滑度高 适用于高频振荡的系统 C、缺点: 灵敏度低 对偶然出现的脉冲性干扰的抑制作用较差 不易消除由于脉冲干扰所引起的采样值偏差 不适用于脉冲干扰比较严重的场合 比较浪费RAM 5、中位值平均滤波法(又称防脉冲干扰平均滤波法) A、方法: 相当于“中位值滤波法”+“算术平均滤波法” 连续采样N个数据,去掉一个最大值和一个最小值 然后计算N-2个数据的算术平均值 N值的选取:3~14 B、优点: 融合了两种滤波法的优点 对于偶然出现的脉冲性干扰,可消除由于脉冲干扰所引起的采样值偏差 C、缺点: 自动化科协 测量速度较慢,和算术平均滤波法一样 比较浪费RAM 6、限幅平均滤波法 A、方法: 相当于“限幅滤波法”+“递推平均滤波法” 每次采样到的新数据先进行限幅处理, 再送入队列进行递推平均滤波处理 B、优点: 融合了两种滤波法的优点 对于偶然出现的脉冲性干扰,可消除由于脉冲干扰所引起的采样值偏差 C、缺点: 比较浪费RAM 7、一阶滞后滤波法 A、方法: 取a=0~1 本次滤波结果=(1-a)*本次采样值+a*上次滤波结果 B、优点: 对周期性干扰具有良好的抑制作用 适用于波动频率较高的场合 C、缺点:

常用的软件滤波方法(工程师必备).

软件滤波在嵌入式的数据采集和处理中有着很重要的作用,这10种方法各有优劣,根据自己的需要选择。同时提供了C语言的参考代码,希望对各位能有帮助。 1、限幅滤波法(又称程序判断滤波法) A、方法: 根据经验判断,确定两次采样允许的最大偏差值(设为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;countvalue_buf[i+1] ) { temp = value_buf[i]; value_buf[i] = value_buf[i+1]; value_buf[i+1] = temp; } } }

10种软件滤波算法

10种软件滤波方法的示例程序 1 推荐 10种软件滤波方法的示例程序 假定从8位AD中读取数据(如果是更高位的AD可定义数据类型为int),子程序为get_ad(); 1、限副滤波 /* 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、中位值滤波法 /* N值可根据实际情况调整 排序采用冒泡法*/ #define N 11 char filter() { char value_buf[N]; char count,i,j,temp; for ( count=0;count

{ 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、算术平均滤波法 /* */ #define N 12 char filter() { int sum = 0; for ( count=0;count

数据处理中的几种常用数字滤波算法

数据处理中的几种常用数字滤波算法 王庆河王庆山 (济钢集团计量管理处,济南250101) (济钢集团中厚板厂,济南250101) 摘要随着数字化技术的发展,数字滤波技术成为数字化仪表和计算机在数据采集中的关键性技术,本文对常用的几种数字滤波算法的原理进行描述,并给出必要的数学模型。 关键词:数据采样噪声滤波移动滤波 一、引言 在仪表自动化工作中,经常需要对大量的数据进行处理,这些数据往往是一个时间序列或空间序列,这时常会用到数字滤波技术对数据进行预处理。数字滤波是指利用数学的方法对原始数据进行处理,去掉原始数据中掺杂的噪声数据,获得最具有代表性的数据集合。 数据采样是一种通过间接方法取得事物状态的技术如将事物的温度、压力、流量等属性通过一定的转换技术将其转换为电信号,然后再将电信号转换为数字化的数据。在多次转换中由于转换技术客观原因或主观原因造成采样数据中掺杂少量的噪声数据,影响了最终数据的准确性。 为了防止噪声对数据结果的影响,除了采用更加科学的采样技术外,我们还要采用一些必要的技术手段对原始数据进行整理、统计,数字滤波技术是最基本的处理方法,它可以剔除数据中的噪声,提高数据的代表性。 二、几种常用的数据处理方法 在实际应用中我们所用的数据滤波方法很多,在计算机应用高度普及的今天更有许多新的方法出现,如逻辑判断滤波、中值滤波、均值滤波、加权平均 2中值滤波 中值滤波是对采样序列按大小排滤波、众数滤波、一阶滞后滤波、移动滤波、复合滤波 等。 假设我们采用前端仪表采集了一组采样周期为1s的温度数据的时间序列 T0为第0s 采集的温度值,Ti为第is采集的温度值。下面介绍如何应用几种不同滤波算法来计算结果温度T。 1.程序判断滤波 当采样信号由于随机干扰、误检测或变送器不稳定引起严重失真时,可采用程序判断滤波算法,该算法的基本原理是根据生产经验,确定出相邻采样输入信号可能的最大偏差△T,若超过此偏差值,则表明该输入信号是干扰信号,应该去掉,若小于偏差值则作为此次采样值。 (1)限幅滤波 限幅滤波是把两次相邻的采集值进行相减,取其差值的绝对值△T作为比较依据,如果小于或等于△T,则取此次采样值,如果大于△T,则取前次采样值,如式(1)所示:

(整理)11种滤波方法+范例代码.

软件滤波算法(转载) 这几天做一个流量检测的东西,其中用到了对数据的处理部分,试了很多种方法,从网上找到这些个滤波算法,贴出来记下 需要注意的是如果用到求平均值的话,注意总和变量是否有溢出,程序没必要照搬,主要学习这些方法,相信做东西的时候都能用得上 1、限幅滤波法(又称程序判断滤波法) A、方法: 根据经验判断,确定两次采样允许的最大偏差值(设为A) 每次检测到新值时判断: 如果本次值与上次值之差<=A,则本次值有效 如果本次值与上次值之差>A,则本次值无效,放弃本次值,用上次值代替本次值 B、优点: 能有效克服因偶然因素引起的脉冲干扰 C、缺点 无法抑制那种周期性的干扰 平滑度差 2、中位值滤波法 A、方法: 连续采样N次(N取奇数) 把N次采样值按大小排列 取中间值为本次有效值 B、优点: 能有效克服因偶然因素引起的波动干扰 对温度、液位的变化缓慢的被测参数有良好的滤波效果 C、缺点: 对流量、速度等快速变化的参数不宜 3、算术平均滤波法 A、方法: 连续取N个采样值进行算术平均运算 N值较大时:信号平滑度较高,但灵敏度较低 N值较小时:信号平滑度较低,但灵敏度较高 N值的选取:一般流量,N=12;压力:N=4 B、优点:

适用于对一般具有随机干扰的信号进行滤波 这样信号的特点是有一个平均值,信号在某一数值范围附近上下波动 C、缺点: 对于测量速度较慢或要求数据计算速度较快的实时控制不适用 比较浪费RAM 4、递推平均滤波法(又称滑动平均滤波法) A、方法: 把连续取N个采样值看成一个队列 队列的长度固定为N 每次采样到一个新数据放入队尾,并扔掉原来队首的一次数据.(先进先出原则) 把队列中的N个数据进行算术平均运算,就可获得新的滤波结果 N值的选取:流量,N=12;压力:N=4;液面,N=4~12;温度,N=1~4 B、优点: 对周期性干扰有良好的抑制作用,平滑度高 适用于高频振荡的系统 C、缺点: 灵敏度低 对偶然出现的脉冲性干扰的抑制作用较差 不易消除由于脉冲干扰所引起的采样值偏差 不适用于脉冲干扰比较严重的场合 比较浪费RAM 5、中位值平均滤波法(又称防脉冲干扰平均滤波法) A、方法: 相当于“中位值滤波法”+“算术平均滤波法” 连续采样N个数据,去掉一个最大值和一个最小值 然后计算N-2个数据的算术平均值 N值的选取:3~14 B、优点: 融合了两种滤波法的优点 对于偶然出现的脉冲性干扰,可消除由于脉冲干扰所引起的采样值偏差 C、缺点: 测量速度较慢,和算术平均滤波法一样 比较浪费RAM

十一种软件数字滤波算法

1 数字滤波 1.1 概述 在单片机进行数据采集时,会遇到数据的随机误差,随机误差是由随机干扰引起的,其特点是在相同条件下测量同一量时,其大小和符号会现无规则的变化而无法预测,但多次测量的结果符合统计规律。为克服随机干扰引起的误差,硬件上可采用滤波技术,软件上可采用软件算法实现数字滤波。滤波算法往往是系统测控算法的一个重要组成部分,实时性很强。 采用数字滤波算法克服随机干扰的误差具有以下优点: 1、数字滤波无需其他的硬件成本,只用一个计算过程,可靠性高,不存在阻 抗匹配问题。尤其是数字滤波可以对频率很低的信号进行滤波,这是模拟滤波器做不到的。 2、数字滤波使用软件算法实现,多输入通道可共用一个滤波程序,降低系统 开支。 3、只要适当改变滤波器的滤波程序或运算,就能方便地改变其滤波特性,这 对于滤除低频干扰和随机信号会有较大的效果。 4、在单片机系统中常用的滤波算法有限幅滤波法、中值滤波法、算术平均滤 波法、加权平均滤波法、滑动平均滤波等。 1.2 限幅滤波算法 原理:该运算的过程中将两次相邻的采样相减,求出其增量,然后将增量的绝对值,与两次采样允许的最大差值A进行比较。A的大小由被测对象的具体情况而定,如果小于或等于允许的最大差值,则本次采样有效;否则放弃本次值取上次采样值作为本次数据的样本。 优点:能有效克服因偶然因素引起的脉冲干扰。 缺点:无法抑制那种周期性的干扰,平滑度差。 说明:限幅滤波法主要用于处理变化较为缓慢的数据,如温度、物体的位置等。使用时,关键要选取合适的门限制A。通常这可由经验数据获得,必要时可通过实验得到。 1.3 中值滤波算法 原理:该运算的过程是对某一参数连续采样N次(N一般为奇数),然后把N次采样的值按从小到大排列,再取中间值作为本次采样值,整个过程实际上是一个序列排序的过程。

AD转换中常用的十种数字滤波法

在AD采集中经常要用到数字滤波,而不同情况下又有不同的滤波需求,下面是10种经典的软件滤波方法的程序和优缺点分析: 1、限幅滤波法(又称程序判断滤波法) 2、中位值滤波法 3、算术平均滤波法 4、递推平均滤波法(又称滑动平均滤波法) 5、中位值平均滤波法(又称防脉冲干扰平均滤波法) 6、限幅平均滤波法 7、一阶滞后滤波法 8、加权递推平均滤波法 9、消抖滤波法 10、限幅消抖滤波法 1、限副滤波 A、方法: 根据经验判断,确定两次采样允许的最大偏差值(设为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; else 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;countvalue_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、缺点:

10种简单的数字滤波算法(C语言源程序)

假定从8位AD中读取数据(如果是更高位的AD可定义数据类型为int),子程序为get_ad(); 1、限副滤波 /* 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、中位值滤波法 /* N值可根据实际情况调整 排序采用冒泡法*/ #define N 11 char filter() { char value_buf[N]; char count,i,j,temp; for ( count=0;countvalue_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、算术平均滤波法

*/ #define N 12 char filter() { int sum = 0; for ( count=0;count

软件滤波方法及其优缺点

软件滤波方法及其优缺点 1、限幅滤波法(又称程序判断滤波法) A、方法: 根据经验判断,确定两次采样允许的最大偏差值(设为A) 每次检测到新值时判断: 如果本次值与上次值之差<=A,则本次值有效 如果本次值与上次值之差>A,则本次值无效,放弃本次值,用上次值代替本次值 B、优点: 能有效克服因偶然因素引起的脉冲干扰 C、缺点 无法抑制那种周期性的干扰 平滑度差 2、中位值滤波法 A、方法: 连续采样N次(N取奇数) 把N次采样值按大小排列 取中间值为本次有效值 B、优点: 能有效克服因偶然因素引起的波动干扰 对温度、液位的变化缓慢的被测参数有良好的滤波效果 C、缺点: 对流量、速度等快速变化的参数不宜 3、算术平均滤波法 A、方法: 连续取N个采样值进行算术平均运算 N值较大时:信号平滑度较高,但灵敏度较低 N值较小时:信号平滑度较低,但灵敏度较高 N值的选取:一般流量,N=12;压力:N=4 B、优点: 适用于对一般具有随机干扰的信号进行滤波 这样信号的特点是有一个平均值,信号在某一数值范围附近上下波动 C、缺点: 对于测量速度较慢或要求数据计算速度较快的实时控制不适用 比较浪费RAM 4、递推平均滤波法(又称滑动平均滤波法) A、方法:

把连续取N个采样值看成一个队列 队列的长度固定为N 每次采样到一个新数据放入队尾,并扔掉原来队首的一次数据.(先进先出原则) 把队列中的N个数据进行算术平均运算,就可获得新的滤波结果 N值的选取:流量,N=12;压力:N=4;液面,N=4~12;温度,N=1~4 B、优点: 对周期性干扰有良好的抑制作用,平滑度高 适用于高频振荡的系统 C、缺点: 灵敏度低 对偶然出现的脉冲性干扰的抑制作用较差 不易消除由于脉冲干扰所引起的采样值偏差 不适用于脉冲干扰比较严重的场合 比较浪费RAM 5、中位值平均滤波法(又称防脉冲干扰平均滤波法) A、方法: 相当于“中位值滤波法”+“算术平均滤波法” 连续采样N个数据,去掉一个最大值和一个最小值 然后计算N-2个数据的算术平均值 N值的选取:3~14 B、优点: 融合了两种滤波法的优点 对于偶然出现的脉冲性干扰,可消除由于脉冲干扰所引起的采样值偏差 C、缺点: 测量速度较慢,和算术平均滤波法一样 比较浪费RAM 6、限幅平均滤波法 A、方法: 相当于“限幅滤波法”+“递推平均滤波法” 每次采样到的新数据先进行限幅处理, 再送入队列进行递推平均滤波处理 B、优点: 融合了两种滤波法的优点 对于偶然出现的脉冲性干扰,可消除由于脉冲干扰所引起的采样值偏差 C、缺点: 比较浪费RAM

数字滤波器原理

4.2经典数字滤波器原理 数字滤波是数字信号分析中最重要的组成部分之一,与模拟滤波相比,它具有精度和稳定性高、系统函数容易改变、灵活性强、便于大规模集成和可实现多维滤波等优点。在信号的过滤、检测和参数的估计等方面,经典数字滤波器是使用最广泛的一种线性系统。 数字滤波器的作用是利用离散时间系统的特性对输入信号波形(或频谱)进行加工处理,或者说利用数字方法按预定的要求对信号进行变换。 4.2.1数字滤波器的概念 若滤波器的输入、输出都是离散时间信号,那么该滤波器的单位冲激响应h(n)也必然是离散的,这种滤波器称为数字滤波器。当用硬件实现一个DF时,所需的元件是乘法器、延时器和相加器;而用MATLAB软件实现时,它仅仅需要线性卷积程序就可以实现。众所周知,模拟滤波器(Analog Filter,AF)只能用硬件来实现,其元件有电阻R,电感L,电容C及运算放大器等。因此,DF的实现要比AF容易得多,并且更容易获得较理想的滤波性能。 数字滤波器的作用是对输入信号进行滤波,就如同信号通过系统一样。对于线性时不变系统,其时域输入输出关系是: (4-1)若y(n)、x(n)的傅里叶变化存在,则输入输出的频域关系是: (4-2) 当输入信号x(n)通过滤波器h(n)后,其输出y(n)中不再含有的频率成分,仅使的信号成分通过,其中是滤波器的转折频率。 4.2.2经典数字滤波器的分类 经典数字滤波器按照单位取样响应h(n)的时域特性可分为无限冲激响应(IIR,I nfinite Impulse Response)系统和有限冲激响应(FIR,Finite Impulse Respo nse)系统。如果单位取样响应是时宽无限的h(n),则称之为IIR系统;而如果单位取样响应是时宽有限的h(n),,则称之为FIR系统。

经典数字滤波器

数字滤波器是现在电视中常用的电路元件之一。数字滤波器(digital filter)是由数字乘法器、加法器和延时单元组成的一种装置。其功能是对输入离散信号的数字代码进行运算处理,以达到改变信号频谱的目的。由于电子计算机技术和大规模集成电路的发展,数字滤波器已可用计算机软件实现,也可用大规模集成数字硬件实时实现。数字滤波器是一个离散时间系统(按预定的算法,将输入离散时间信号转换为所要求的输出离散时间信号的特定功能装置)。应用数字滤波器处理模拟信号时,首先须对输入模拟信号进行限带、抽样和模数转换。数字滤波器输入信号的抽样率应大于被处理信号带宽的两倍,其频率响应具有以抽样频率为间隔的周期重复特性,且以折叠频率即1/2抽样频率点呈镜像对称。为得到模拟信号,数字滤波器处理的输出数字信号须经数模转换、平滑。数字滤波器具有高精度、高可靠性、可程控改变特性或复用、便于集成等优点。数字滤波器在语言信号处理、图像信号处理、医学生物信号处理以及其他应用领域都得到了广泛应用。数字滤波器有低通、高通、带通、带阻和全通等类型。它可以是时不变的或时变的、因果的或非因果的、线性的或非线性的。应用最广的是线性、时不变数字滤波器. 阶数越高,截止频率等参数越精确,但是电路结构也越复杂。简单说比如你的截止频率是100HZ,你只有2阶的话可能实际的截止平率是95-1000HZ,衰减比较慢,但如果是20阶的话,可能截止

频率就变成了95-105HZ,衰减很快。但是阶数上升,实际电路的结构就会非常的复杂,浪费资源。 先听我慢慢说啊,先说傅里叶变换,然后再说滤波器,就懂了。 周期信号可以用一系列的不同频率不同幅度的正弦信号表示出来,就是傅里叶级数。 而非周期信号亦可以,比如门信号,它的傅氏变换是抽样信号,意思就是,它可以用的一系列不同频率的正弦信号表示,比如有:频率为0.1Hz幅度为2的正弦,频率为0.2Hz幅度为1的正弦,频率为0.25幅度为a的正弦……这些无数个的所谓的“频率为某Hz幅度为某”的正弦波叠加之后,就成了门信号。 从门信号的频谱图可看出:用来表示门信号的一系列频率连续的无数个的正弦波幅度是不同的,甚至有些是0 。尤其频率越高的正弦波,它们的幅度普遍很小,因为这些频率成分是表示细节(门信号的棱角)的。另一方面,低频成分显示的是门信号的轮廓。

变频器滤波器工作原理及作用

变频器滤波器工作原理及 作用 Prepared on 21 November 2021

变频器滤波器 变频器滤波器,顾名思义,就是专门针对变频器产生谐波的特点及规律,而专门开发的一款专用型滤波器,是的一种。 概述 变频器滤波器主要是由电感、电容、电阻等组成的无源器件。它是一种低通滤波器的一种,可以让工频信 变频器输入滤波器 号无阻挡的通过,抑制高频电磁干扰(一般来讲,可抑制干扰噪声频率为50/60~1kHz)。 变频器滤波器为双向可逆器件,即能防止电网上的电磁噪声通过电源进入设备,也能防止设备本身的电磁噪声对电网的污染。 变频器滤波器是用来抑制传导干扰的有效工具。 特征 1、变频器滤波器是基于变频器在工作时,对电网及其它数字电子设备产生干扰的频谱分量电磁兼容性特点而专门设计的。 2、安装于电机和变频器及电源与变频器之间。 3、小尺寸,无需风扇,采用的是经过最恶劣环境测试过的高性能的材料和部件。 1、插入损耗 插入损耗是衡量变频器滤波器电性能的重要参数。 插入损耗是不用滤波器时从噪声源传递到负载时的噪声电压与插入滤波器时从噪声源传递到负载时的噪声电压之比。 插入损耗在输入/输出的阻抗均为50Ω的系统下测试,结果通常表示为在所关心频段内的衰减曲线(单位为分贝)。 2、泄漏电流 变频器滤波器的泄漏电流是指在250VAC/50Hz的电压/频率条件下,火线和零线与外壳间流过的电流。 泄漏电流的大小主要取决于变频器滤波器中的共模电容。 从插入损耗的角度来考虑,共模电容越大,电性能越好,此时,漏电流也越大。但从安全方面考虑,泄漏电流又不能过大,否则不符合安全标准要求。尤其是一些医疗保健设备,要求泄漏电流尽可能小。因此,要根据具体设备要求来确定共模电容的容量。 3、耐压

数字滤波的优点及10种常用数字滤波方法比较

数字滤波的优点及10 种常用数字滤波方法比较 在微机控制系统的模拟输入信号中,一般均含有各种噪声和干扰,他们来自被测信号源本身、传感器、外界干扰等。为了进行准确测量和控制,必须消除被测信号中的噪声和干扰。噪声有2 大类: (1)周期性的信号,其典型代表为50Hz 的工频干扰,对于这类信号,采用积分时间等于20ms 整倍数的双积分A/D 转换器,可有效地消除其影响; (2)非周期的不规则随机信号,对于随机干扰,可以用数字滤波方法予以削弱或滤除。 所谓数字滤波,就是通过一定的计算或判断程序减少干扰信号在有用信号中的比重,因此他实际上是一个程序滤波。数字滤波器克服了模拟滤波器的许多不足,他与模拟滤波器相比有以下优点: (1) 数字滤波器是用软件实现的,不需要增加硬设备,因而可靠性高、稳定性好,不存在阻抗匹配问题。 (2) 模拟滤波器通常是各通道专用,而数字滤波器则可多通道共享,从而降低了成本。 (3)数字滤波器可以对频率很低(如0.01Hz) 的信号进行滤波,而模拟滤波器由于受电容容量的限制,频率不可能太低。 (4)数字滤波器可以根据信号的不同,采用不同的滤波方法或滤

波参数,具有灵活、方便、功能强的特点。 10 种数字滤波方法 1、限副滤波 方法:根据经验判断,确定两次采样允许的最大偏差值(设为A),每次检测到新值时判断:如果本次值与上次值之差A, 则本次值无效,放弃本次值,用上次值代替本次值优点:能有效克服因偶然因素引起的脉冲干扰。缺点:无法抑制那种周期性的干扰,平滑度差。 2、中位值滤波法 方法:连续采样N 次(N 取奇数),把N 次采样值按大小排列,取中间值为本次有效值。 优点:能有效克服因偶然因素引起的波动干扰,对温度、液位的变化缓慢的被测参数有良好的滤波效果。缺点:对流量、速度等快速变化的参数不宜。 3、算术平均滤波法 方法:连续取N 个采样值进行算术平均运算。N 值较大时:信号平滑度较高,但灵敏度较低;N 值较小时:信号平滑度较低,但灵敏度较高。N 值的选取:一般流量,N=12; 压力: N=4 优点:适用于对一般具有随机干扰的信号进行滤波,这样信 号的特点是有一个平均值,信号在某一数值范围附近上下波动。缺点:对于测量速度较慢或要求数据计算速度较快的实时控制不适用,比较浪费RAM 。 4、递推平均滤波法(又称滑动平均滤波法)方法:把连续取

相关主题
文本预览
相关文档 最新文档