声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

查看: 1448|回复: 2

[滤波] 怎么过滤噪声信号?

[复制链接]
发表于 2016-7-28 15:15 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?我要加入

x
  想把一段采集的噪声信号1000Hz以上的频率过滤掉,要怎么过滤?

回复
分享到:

使用道具 举报

发表于 2016-7-28 16:56 | 显示全部楼层
低通滤波
发表于 2016-7-29 08:45 | 显示全部楼层
低通滤波C程序:1.
6.7.#include <stdio.h> 8.const int length = 180
9.void filter(int xin[ ],int xout[ ],int n,float h[ ]);
10.
11.static float h[19]=
12.{0.01218354,-0.009012882,-0.02881839,-0.04743239,-0.04584568,
13.-0.008692503,0.06446265,0.1544655,0.2289794,0.257883,
14.0.2289794,0.1544655,0.06446265,-0.008692503,-0.04584568,
15.-0.04743239,-0.02881839,-0.009012882,0.01218354};
16.static int x1[length+20];
17.
18.void filter(int xin[ ],int xout[ ],int n,float h[ ])
19.{
20.int i,j;
21.float sum;
22.for(i=0;i<length;i++) x1[n+i-1]=xin[i];
23.for (i=0;i<length;i++)
24.{
25.sum=0.0;
26.for(j=0;j<n;j++) sum+=h[j]*x1[i-j+n-1];
27.xout[i]=(int)sum;
28.}
29.for(i=0;i<(n-1);i++) x1[n-i-2]=xin[length-1-i];
30.}
31.32.
33.void main( )
34.{
35.FILE *fp1,*fp2;
36.int frame,indata[length],outdata[length];
37.fp1=fopen(insp.dat,"rb");
38.fp2=fopen(outsp.dat,"wb");
39.40.frame=0;
41.while(feof(fp1)==0)
42.{
43.frame++;
44.printf("frame=%d\n",frame);
45.for(i=0;i<length;i++) indata[i]=getw(fp1);
46.filter(indata,outdata,19,h);
47.for(i=0;i<length;i++) putw(outdata[i],fp2);
48.}
49.fcloseall( );
50.return(0);
51.}


您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

QQ|小黑屋|Archiver|手机版|联系我们|声振论坛

GMT+8, 2024-5-19 09:58 , Processed in 0.115363 second(s), 17 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表