仪器社区

matlab ,已有数据,如何滤波?

erterety 2013-05-16
我有一组数据: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以上杂波分量,如何除去杂波,得到方波,具体思路是什么?因为这不是具体函数,本人无从下手。求解,谢谢
评论
全部评论
Wait那份忧伤
思路就是设计一个低通滤波器,分界点就是50Hz,以下是一个巴特沃斯低通滤波器的程序figure; %绘制巴特沃斯滤波器频响、相位曲线及信号滤后曲线%低通滤波器技术要求,假设采样频率为fs=500, 拟定%通带截止频率为40Hz,阻带下限截止频率为60Hz%通带衰减为0.25dB,阻带衰减为30dBT=A;data=B;fs=500;Wp=2*pi*40/fs;Ws=2*pi*60/fs;Rp=0.25;Rs=30;
Omip=Wp/pi;Omis=Ws/pi; %归一化技术要求
[N,Wn]=buttord(Omip,Omis,Rp,Rs); %确定滤波器的阶数
disp(['The order of Butterworth Filtering is ',num2str(N)]);
[b,a]=butter(N,Wn); %确定Butterworth滤波器转移函数系数向量
[H,w]=freqz(b,a,512); %512点复频响应
subplot(221); %绘制幅频响应曲线
plot(w/pi,abs(H));title('幅频响应');
xlabel('w(/pi)');ylabel('|H(jw)|');axis([0,1,0,1.1]);
%set(gca,'XTickMode','manual','XTick',[0,Omip,Omis,1]);
%set(gca,'YTickMode','manual','YTick',[0,10^(-Rs/20),10^(-Rp/20),1]);
%grid;
subplot(222); %绘制相频响应曲线
plot(w/pi,angle(H)/pi);title('相频响应');
xlabel('w(/pi)');ylabel('pha(/pi)');axis([0,1,-1,1]);
%set(gca,'XTickMode','manual','XTick',[0,Omip,Omis,1]);
%grid;
subplot(223);
plot(T,data);title('原信号波形图');axis([0,2.2,-1.1,1.1]);
subplot(224);
data1=filter(b,a,data);
plot(T,data1);title('滤波后波形图');
11 0 2013-05-17 0条评论 回复
chenpai0637
这个问题相当于:“我怎么用C语言来写一个算法”一样,笼统到没有意义。
19 0 2017-08-09 0条评论 回复
我是菜老公
设置阈值直接把异常点去除可以么
13 0 2017-08-10 0条评论 回复
11小天使2
设置一个50Hz截止的低通滤波器,然后filtfilt即可
4 0 2017-08-22 0条评论 回复
您可能感兴趣的社区主题
加载中...
发布 评论