心电 基线漂移的处理研究论文

    中值滤波是一种非线性数字滤波器技术,经常用于去除图像或者其它信号中的噪声。这个设计思想就是检查输入信号中的采样并判断它是否代表了信号,使用奇数个采样组成的观察窗实现这项功能。观察窗口中的数值进行排序,位于观察窗中间的中值作为输出。然后,丢弃最早的值,取得新的采样,重复上面的计算过程。

 

参考论文:

https://wenku.baidu.com/view/2d1bbb31a1c7aa00b42acb66.html

 

中值滤波的优点是计算速度快,适合实时性要求高的情况。同时效果明显。

以下都提到了中值滤波器的优点和特点。可供参考。

https://wenku.baidu.com/view/300d260590c69ec3d5bb75b4.html

 

https://wenku.baidu.com/view/51a16fef5ef7ba0d4a733b37.html?sxts=1549959306588

 

https://wenku.baidu.com/view/cbaf857076c66137ee0619de.html?rec_flag=default

一种实用的去基线漂移滤波算法_朱伟芳

https://wenku.baidu.com/view/85c6b46fb9d528ea80c7797d.html?from=search

 

ecg1=load('D:\test.xls');

 L=length(ecg1);

W=501;

 

matlab在数组中取前n项数方法

 假设H为一个一维向量,其中元素个数为n,
则提取向量H的前n-1个元素的方式,是:H(1:length(H)-1);

 

以下是C语言代码,可以使用。原始数据在d盘test.xls里面。运行后保存成d盘testPiaoAfter.xls.

#include 
#include 


#define L 19680
#define BUF_LEN 19680
static float buffer_BL[BUF_LEN];//基线拟合
static float buffer_out[BUF_LEN];//原始数据
static float buffer_3[BUF_LEN];//滤波后数据

#define BUF_W_LEN 501
static float buffer_W[BUF_W_LEN];//中值漂移滤波缓存区窗
static float buffer_2[BUF_LEN + BUF_W_LEN-1];//中值漂移滤波缓存区



//===回调比较函数,注意数组类型和回调匹配===========
int compare_float(const void *a, const void *b)
{
    return (*(float *)a) - (*(float *)b);
}

//一种实用的去基线漂移滤波算法_朱伟芳
//
void 中值漂移滤波()
{
   //1.扩展buff2;
	for(int i=0; i< L+BUF_W_LEN-1; i++)
	{
		if(0<= i && i<= (BUF_W_LEN-1)/2) {
			printf("en0,i=%d\n",i);
			buffer_2[i]=buffer_out[0];
		}
		else if((BUF_W_LEN-1)/2 < i && i<= (L+(BUF_W_LEN+1)/2))
		{ 
			printf("en1,i=%d\n",i);
			buffer_2[i] = buffer_out[i-((BUF_W_LEN-1)/2)];
		}
		else if((L+(BUF_W_LEN-1)/2 ) BUF_LEN-1) break;
		}
		fclose(fd);
	}
}


void loadData()
{
	FILE* fd = fopen("D:\\test.xls","r+");
	if(fd)
	{
		int i=0;
		while(1)
		{
			fscanf(fd,"%f\t",&buffer_out[i]);
			printf("buffer_out[%d]=%f\n", i,buffer_out[i]);

			i++;
			if(i> BUF_LEN-1) break;
			
		}
		fclose(fd);
	}
}




int main(void)
{
	printf("inmain");
	loadData();
	中值漂移滤波();
	saveData();
	printf("inmain is ok");

	while(1){};
	return 0;
}

原始数据波形图:

心电 基线漂移的处理研究论文_第1张图片

过滤后的波形:

心电 基线漂移的处理研究论文_第2张图片

可以使用在实时性强的地方,但是由于没有做优化,占用内存比较大。有待优化。

你可能感兴趣的:(心电 基线漂移的处理研究论文)