• 大小: 3KB
    文件类型: .m
    金币: 1
    下载: 0 次
    发布日期: 2021-06-06
  • 语言: Matlab
  • 标签: 降噪  

资源简介

对信号进行傅里叶变换,然后选择宽度为10,30,50的滤波器对信号进行滤波,对滤波效果进行比较

资源截图

代码片段和文件信息

clc;
clear;
close all;
%读入原始数据
x=load(‘E:\实验\实验数据\张永江初测\v5.txt‘);
a=x‘;  %转为行向量
d=a(1001:2024);
fs=1000;%采样频率
y=fft(d1024);  
 f=1000*(0:511)/1024;
% f=0:0.977:500%(0:512)/1024;
figure(1);
subplot(411)
plot(fabs(y(1:512)));grid;
title(‘原始信号的频谱图‘);
xlabel(‘频率/Hz‘);
ylabel(‘‘);


%%%%%%%%%%%%%%%5因为心电信号的能量主要集中在30HZ以下,在25HZ后迅速衰减到050HZ以后就几乎没有能量了。这样可以做一个简单的低通滤波,如下所示
%使用不同宽度的滤波器对频谱进行滤波,抑制频谱直接令其为0.
y1=y; y1(10:1014)=0
y2=y; y2(30:1004)=0
y3=y; y3(45:994)=0;y3(1:2)=0;
% pyy1=y1.*conj(y1)    %求y的模平方
% pyy2=y2.*conj(y2) 
% pyy3=y3.*conj(y3) 
f=1000*(0:511)/1024;
% f=0:0.977:500%(0:512)/1024;
subplot(412)
plot(fabs(y1(1:512)));grid;
title(‘宽度为10的低通滤波器滤波后信号的频谱图‘);
xlabel(‘频率/Hz‘);
ylabel(‘‘);

subplot(413)
plot(fabs(y2(1:512)));grid;
title(‘宽度为30的低通滤波器滤波后信号的频谱图‘);
xlabel(‘频率/Hz‘);
ylabel(‘‘);
axis tight;

subplot(414)
plot(abs(y3(1:512)));grid;
title(‘宽度为50的低通滤波器滤波后信号的频谱图‘);
xlabel(‘频率/Hz‘);
ylabel(‘‘);
axis tight;

%对经过滤波的频谱做傅里叶逆变换,得到相应的降噪信号
xd1=real(ifft(y11024))
xd2=real(ifft(y21024))
xd3=real(ifft(y31024))
%画出降噪以后的波形
figure(2)
subplot(411);plot(d);
xlabel(‘时间/ms‘);ylabel(‘幅值/mv‘);title(‘原始信号‘);
subplot(412);plot(xd1);
xlabel(‘时间/ms‘);ylabel(‘幅值/mv‘);title(‘宽度为10的低通滤波器滤波后的信号‘);
subplot(413);plot(xd2);
xlabel(‘时间/ms‘);ylabel(‘幅值/mv‘);title(‘宽度为30的低通滤波器滤波后的信号‘);
subplot(414);plot(xd3);
xlabel(‘

评论

共有 条评论