ECG 信号滤波器仿真

ECG
clear all;
load ecg.mat; 
wp = 0.2*pi; ws = 0.3*pi;
rp = 1; rs = 15;
% design
[n,wn] = buttord(wp/pi,ws/pi,rp,rs);
[b,a] = butter(n,wn);
[h1,w1] = freqz(b,a,512,1);
H1 = 20*log10(abs(h1));
figure(1);
plot(w1*2,H1);
xlabel('\omega/\pi');
ylabel('|H(e^j^\omega)|/dB');
title('Magnitude and frequency response of butterworth filter(N=6)');
grid on;

%butterworth filter of different orders in time-domain 
figure(2);
for m=1:4
    switch m
        case 1
            n = 3;
        case 2
            n = 6;
        case 3
            n = 20;
        case 4
            n = 40;     
  end 
  t=0:1:55;
  [bm,am] = butter(n,wn);
  ym = filter(bm,am,x);
  hold on;
  subplot(2,2,m)
  plot(t,x,'b',t,ym,'r');
  xlabel('n');
  ylabel('x(n)');
  title(['N= ',num2str(n)]);
  grid on;
  t=0:1:55;
end

%butterworth filter of different orders in frequency-domain 
figure(3);
for k=1:4
    switch k
        case 1
            n = 3;
        case 2
            n = 6;
        case 3
            n = 20;
        case 4
            n = 40; 
    end 
    t=0:1:55;
    [bn,an] = butter(n,wn);
    yn = filter(bn,an,x);
    X_Fn = fftshift(abs(fft(x)));
    Y_Fn = fftshift(abs(fft(yn)));
 
    hold on;
    subplot(2,2,k)
    plot(t,X_Fn,'b',t,Y_Fn,'r');
    xlabel('\omega/2\pi');
    ylabel('|X(k)|');
    title(['N= ',num2str(n)]);
    grid on;
end
 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

fpga和matlab

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值