仪器网(yiqi.com)欢迎您!

| 注册2 登录
网站首页-资讯-专题- 微头条-话题-产品- 品牌库-搜索-供应商- 展会-招标-采购- 社区-知识-技术-资料库-方案-产品库- 视频

问答社区

matlab一维离散的数据序列如何进行低通滤波?

芮拥泰 2017-05-16 11:25:45 893  浏览
  • 有一个离散的一维数据序列X,想要进行低通滤波,是不是要用 y = filter(B, A, X)?那么其中B和A两个参数是如何确定的呢? 如何确定该列数据频域范围,用FFT吗? 频谱图是用abs(fft(X))进行绘制吗?怎么判断频谱图中哪部分是噪声呢?

参与评论

全部评论(1条)

  • love_xue_58 2017-05-16 18:34:06
    楼主你好 滤波要先设计滤波器,b,a代表滤波器设计的参数。一般可以使用巴特沃斯滤波器。 例如低通滤波器的设计代码为: data = importdata('t2.txt'); Time = data(:,1); SA = data(:,2); dtt=diff(Time); dt=sum(dtt)/length(dtt); Fs=round(1/dt);%采样频率 Wp = 5/(Fs/2); %通带截止频率,这个自定大致定义 Ws = 10/(Fs/2);%阻带截止频率,这个自定大致定义 Rp = 2; %通带内的衰减不超过Rp,这个自定大致定义 Rs = 40;%阻带内的衰减不小于Rs,这个自定大致定义 [n,Wn] = buttord(Wp,Ws,Rp,Rs);%巴特沃斯数字滤波器Z小阶数选择函数 [b,a] = butter(n,Wn);%巴特沃斯数字滤波器 [h,w]=freqz(b,a,512,Fs); %计算滤波器的频率响应 plot(w,abs(h))%,'LineWidth',1绘制滤波器的幅频响应图 %************************************************************************** %对输入的信号进行滤波 RollAf=filtfilt(b,a,RollA);%filtfilt这个函数是0相位滤波,没有偏移。filter有偏移。 ************************************************************************** %% 滤波结果绘图 figure subplot(2,2,1) H=plot(Time,RollA,Time,RollAf,'r--');%,'linewidth',3 set(H(2),'linewidth',2) 其中;Wp,Ws是一元向量时,则设计的是低通或高通滤波器,若Wp,Ws是二元向量,则设计带通或带阻滤波器。 可以使用fft函数。 希望对你有帮助,

    赞(15)

    回复(0)

    评论

热门问答

matlab一维离散的数据序列如何进行低通滤波?
有一个离散的一维数据序列X,想要进行低通滤波,是不是要用 y = filter(B, A, X)?那么其中B和A两个参数是如何确定的呢? 如何确定该列数据频域范围,用FFT吗? 频谱图是用abs(fft(X))进行绘制吗?怎么判断频谱图中哪部分是噪声呢?
2017-05-16 11:25:45 893 1
matlab 低通滤波
我有采集了一组加速度数据,需要对这些数据进行10Hz低通高频滤波,可是我一点思路都没有,请高手指教!
2018-11-25 05:08:26 360 0
matlab ,已有数据,如何滤波?
我有一组数据:A: 0.000500 0.001000 0.001500 0.002000 0.002500 0.003000 0.003500 0.004000 0.004500 0.005000 B: 1281.242606 1281.241405 1281.240573 1281.239272 1281.239636 1281.242237 1281.242333 1281.242881 1281.241772 1281.241039 这只是一... 我有一组数据:A: 0.000500 0.001000 0.001500 0.002000 0.002500 0.003000 0.003500 0.004000 0.004500 0.005000 B: 1281.242606 1281.241405 1281.240573 1281.239272 1281.239636 1281.242237 1281.242333 1281.242881 1281.241772 1281.241039 这只是一部分,全部数据用plot(A,B)画图为类似方波的形式,它含有大概50Hz以上杂波分量,如何除去杂波,得到方波,具体思路是什么?因为这不是具体函数,本人无从下手。求解,谢谢 展开
2013-05-16 04:56:42 357 4
已知离散序列的频谱和低通滤波器的系数,如何滤波
已知原始信号的频谱S,和滤波器系数hn,做滤波 我的做法是,把hn进行DFT得到Hk,然后用S与Hk做乘法,但感觉是所有频率都进行滤波了,我不知道是不是这么做还是滤波器没涉及好,求指教!
2013-10-20 05:24:01 340 1
低通平滑滤波
什么是低通平滑滤波,在对什么数据采集后需要低通平滑滤波?
2017-09-27 20:35:28 493 1
离散时间序列的几种频谱分析方法的MATLAB实现
 
2013-08-25 21:44:21 531 1
对压力传感器得到的信号应进行怎样的滤波,高通还是低通?
用来检测气垫床压力,Z大压力大概是30kpa,选了个0-50kpa的传感器MPX2050D,截止频率设为多少比较好... 用来检测气垫床压力,Z大压力大概是30kpa,选了个0-50kpa的传感器MPX2050D,截止频率设为多少比较好 展开
2011-04-06 04:26:45 335 3
离散的信号数据如何通过matlab分析它的频谱?跪求程序
 
2012-12-05 19:04:28 277 2
隧道超前地质雷达分析中的高通滤波和低通滤波怎么搞
 
2018-11-17 10:24:37 277 0
matlab中如何对正弦函数的采样序列进行频谱分析
clear; Fs=100; N=64; t=(0:1/Fs:1); y=sin(2*pi*10*t); stem(t(1:N),y(1:N)); 用上面的语句采样,之后用Y=fft()进行FFT计算频谱,那括号中应该是什么?还有FFT之后如何将横坐标转换成频率。谢谢!
2018-03-28 23:07:28 466 1
matlab怎么用以设计好滤波器进行滤波
 
2014-12-28 15:48:19 406 2
如何利用matlab对很大的数据进行频谱分析
 
2017-08-18 04:47:28 352 1
如何利用matlab对很大的数据进行频谱分析
 
2016-07-17 23:09:49 394 1
卡尔曼滤波如何进行多次滤波
如果我已经进行了一次卡尔曼滤波,但是还想进行第二次第三次看看效果,怎么做,Z好是有MATLAB程序
2017-07-26 17:05:51 330 1
labview采集数据进行中位值平均滤波或者算术平均滤波
我用labview和NI公司的硬件进行温度量采集,用labview数据采集助手进行连续采样,先用滤波VI对数据采集助手出来的信号进行了低通滤波,现在想再加上中位值平均滤波或者算术平均滤波。... 我用labview和NI公司的硬件进行温度量采集,用labview数据采集助手进行连续采样,先用滤波VI对数据采集助手出来的信号进行了低通滤波,现在想再加上中位值平均滤波或者算术平均滤波。 labview没怎么用过,请问怎么样可以实现这样滤波,能不能说的详细点,或者大致编下程序截下图,谢谢了。 我试了统计VI,不知道统计VI是计算信号哪段的中值,可不可以用来算术平均滤波。 请知道的帮下忙,感激啊.. 展开
2013-08-25 20:05:05 508 2
如何将示波器采集到的离散信号导入Matlab来进行频谱分析?
 
2012-11-06 16:02:49 304 1
求用matlab实现fir滤波器(低通、高通,带通)
要求输入信号带有噪声,无论用那种设计方法实现,只要滤波效果好就行了。急急急
2009-03-23 06:36:04 297 3
如何采用matlab对单片机采集的数据进行频谱分析?
我用单片机采集到电动机的振动信号,并通过ad转换器转换为数字信号。但是,这些数字信号如何移植到matlab中,进行频谱分析?
2012-09-14 15:50:27 545 3
使用matlab中fdatool导出的高通butterworth IIR滤波器系数如何在程序中进行滤波
导出的系数为 const int NL = 10; const real64_T NUM[10] = { 0.8558457777315, -7.702611999584, 30.81044799834, -71.89104532945, 107.8365679942, -107.8365679942, 71.89104532945, -30.81044799834, 7.702611999584, ... 导出的系数为 const int NL = 10; const real64_T NUM[10] = { 0.8558457777315, -7.702611999584, 30.81044799834, -71.89104532945, 107.8365679942, -107.8365679942, 71.89104532945, -30.81044799834, 7.702611999584, -0.8558457777315 }; const int DL = 10; const real64_T DEN[10] = { 1, -8.688722481439, 33.55806880257, -75.61737954546, 109.553642522, -105.8293351142, 68.16455775223, -28.22860996292, 6.820250022448, -0.7324719952609 }; 在程序中进行差分计算得到滤波结果,如下: pWave为输入波形,pFilter的内容也复制为输入波形 for(i=16; i32768) { float_Value = 32768; } if (float_Value<-32768) { float_Value = -32768; } *(pFilter+i) = (float)(float_Value);//滤波 } 得到的结果波形不对。 请教问题在哪里? 展开
2013-07-18 13:57:09 514 2
multisim中要检验电路是否实现低通滤波功能
 
2017-05-25 10:11:25 565 2

12月突出贡献榜

推荐主页

最新话题