毕业论文论文范文课程设计实践报告法律论文英语论文教学论文医学论文农学论文艺术论文行政论文管理论文计算机安全
您现在的位置: 毕业论文 >> 课程设计 >> 正文

IIR零相移滤波器法去除心电信号中的基线漂移 第2页

更新时间:2008-7-9:  来源:毕业论文

IIR零相移滤波器法去除心电信号中的基线漂移 第2页

2. 滤波效果

Matlab的滤波程序:

Matlab中,可直接调用函数filtfilt来实现信号的零相移滤波,程序如下:

load baseline.txt;       %读取放在baseline.txt的心电数据

data = baseline;      

result =filtfilt(b,a,data);

figure(2);

subplot(211);

plot(data);

subplot(212);

plot(result);

 

MatlabIIR零相移滤波效果

 

2)在CCS中读入带有基线漂移的心电信号文件,作为为研究对象;

3)将设计的滤波器用CCS实现,观察滤波功能,比较滤波前后的频谱。

经过反复试验,将ccs中滤波器系数调整为:

b=[0.991, -2.971,    2.971, -0.991]

a=[ 1, -2.9846,   2.9693,    -0.98474]

所以ccs iir.c程序为:

#include"math.h"

#define IIRNUMBER 4

#define SAMPLEF  360    //采样频率

float IIR();

若图片无法显示请联系QQ752018766,本论文免费,转发请注明源于www.youerw.com

int read_signals(int *input);

 

main()

{

nIn=0; nOut=0;

   fInput=fOutput=0;

   while ( 1 )

   {  

       read_signals(fIn);       //设置断点1

       for(i = 0;i < 3600;i++)  //设置断点2

       {

          fInput=fIn[i];

          fIn[nIn]=fInput;

          nIn++; nIn%=3600;

          fOutput=IIR(i);

          fOut[nOut]=fOutput;

          nOut++;              // break point

          if ( nOut>=3600 )

          {

              nOut=0;      

          }

       }

   }

}

 

float IIR(int j)

{

   switch(j)

   {

       case 0:    fOut[j] = 9.92340;break;

       case 1:    fOut[j] = 9.77078;break;

       case 2:    fOut[j] = 9.61971;break;

       case 3:    fOut[j] = 9.47060;break;

       default:fOut[j]=2.9846*fOut[j-1]-2.9693*fOut[j-2]+0.9847*fOut[j-3]+0.99*fIn[j]-2.97*fIn[j-1]+2.97*fIn[j-2]-0.99*fIn[j-3];break;

   }

   return(fOut[j]);

}

// 读取输入信号

int read_signals(int *fIn)

{

   // 在此读取采集数据信号放到输入缓冲区input[]

   return(1);

}

 

.cmd文件为:

-w
-stack 500
-sysstack 500
-l rts55x.lib

MEMORY
{
    DARAM: o=0x100,   l=0x7f00
    VECT :  o=0x8000,    l=0x100

上一页  [1] [2] [3] 下一页

IIR零相移滤波器法去除心电信号中的基线漂移 第2页下载如图片无法显示或论文不完整,请联系qq752018766
设为首页 | 联系站长 | 友情链接 | 网站地图 |

copyright©youerw.com 优文论文网 严禁转载
如果本毕业论文网损害了您的利益或者侵犯了您的权利,请及时联系,我们一定会及时改正。