• 大小: 4KB
    文件类型: .m
    金币: 1
    下载: 0 次
    发布日期: 2021-06-17
  • 语言: Matlab
  • 标签: matlab  中值滤波  

资源简介

能实现心电信号汉宁窗平滑滤波、多点抛物线拟合平滑滤波 两点差分求导、三点差分求导、最小二乘多项式求导 中值滤波 数字陷波器设计 积分功能

资源截图

代码片段和文件信息

clcclearclose all
%%
%1、cardiac hemodynamic analysis 
% ICG signals - 5 channels include heart sound signal ECG delta Z and dzdt signal base z signal. 
% Fs=1000Hz 
% fr=fopen(‘F:\matlab学习\signals\ICG with noise\170227068820170308092718.icg‘‘r‘); % change the path based on your computer
fr=fopen(‘170227068820170308092718.icg‘‘r‘);
%‘r‘以只读方式打开文件,该文件必须存在
[Als]=fread(fr‘double‘);
fclose(fr);
%%
Length=10000;%length is the length of every channel
for i=1:Length
    pcg(i)=A(5*(24000+i-1)+1);  
    ecg(i)=A(5*(24000+i-1)+2);
    dz(i)=-A(5*(24000+i-1)+3);
    dzdt(i)=A(5*(24000+i-1)+4);
    z(i)=A(5*(24000+i-1)+5);
end
%%%%  output the signals of 5 channels
figure(1);
subplot(511);plot(pcg);title(‘pcg signal‘);
subplot(512);plot(ecg);title(‘ecg signal ‘);
subplot(513);plot(dz);title(‘delta z signal ‘);
subplot(514);plot(dzdt);title(‘dzdt signal‘);
subplot(515);plot(z(1:200));title(‘base z‘);
%% 使用Hanning滤波
sig=ecg;
n=size(sig2);
for i=1:n-2
    sig_h(i)=(sig(i)+2*sig(i+1)+sig(i+2))/4;
end
sig_h(n)=sig_h(n-2);
sig_h(n-1)=sig_h(n-2);

%% 使用最小均方多项式平均(5点)
for i=1:n-4
    sig_min(i)=((-3)*sig(i)+12*sig(i+1)+17*sig(i+2)+12*sig(i+3)+(-3)*sig(i+4))/35;
end
figure
xmin=0;
xmax=n;
% xmax=2000;
ymin=-1;
ymax=1;
figure(2)
subplot(311);plot(sig);title(‘原始信号‘);axis([xminxmaxyminymax]);
subplot(312);plot(sig_h);title(‘Hanning滤波‘);axis([xminxmaxyminymax]);
subplot(313);plot(sig_min);title(‘最小均方多项式平均滤波‘);axis([xminxmaxyminymax]);

%% 求导两点差分
sig=sig_h;%处理目标信号
fs=1000;%采样率
T=1/fs;%周期
for i=2:n
    sig_d2(i)=(sig(i)-sig(i-1))/T;
end
figure
subplot(311);plot(sig);title(‘原始信号‘);axis([010000-11]);
subplot(312);plot(sig_h);title(‘Hanning滤波‘);axis([010000-

评论

共有 条评论