tjucruiser 发表于 2008-5-23 16:10

关于导联数据滤波的问题

我要对一个12导数据滤波,但是不知道怎么做,数据Data,原先是12*20000的数组,我最早直接对Data滤波,

请问对于这个12导联数据(12*20000),是对(12*20000)滤波还是对(20000*12)滤波

代码如下:
=butter(10,4/125,'low');
filter_data=filtfilt(b,a,Data);
=butter(10,2/125,'high');
filter_data=filtfilt(b,a,filter_data);

后来我把Data转置后又做了一次滤波
Data=Data‘;
=butter(10,4/125,'low');
filter_data=filtfilt(b,a,Data);
=butter(10,2/125,'high');
TempResult=filtfilt(b,a,filter_data);
filter_data=TempResult';

发现两个结果完全不同,请问哪一个对啊?:@o

songzy41 发表于 2008-5-23 20:27

我试了一下,用filter或filtfilt函数对多道数据(12*20000)滤波时,数组的排列应为20000*12,即每通道的数据应为列数据。

tjucruiser 发表于 2008-5-24 17:31

多谢,请问filtfilt是实现零相移滤波吗,带通滤波是不是一定得分步滤波?

多谢您得答案,我不知道filtfilt是不是零相移滤波,我看了很多文献提到phase response是线性的,这种情况,不知道这个算不算零相位,然后带通滤波是不是一定得分步滤波?

songzy41 发表于 2008-5-24 20:12

本帖最后由 wdhd 于 2016-9-10 14:29 编辑

原帖由 tjucruiser 于 2008-5-24 17:31 发表
多谢您得答案,我不知道filtfilt是不是零相移滤波,我看了很多文献提到phase response是线性的,这种情况,不知道这个算不算零相位,然后带通滤波是不是一定得分步滤波?
filtfilt是零相移滤波,它的phase response都是0,而phase response是线性的大都是指FIR滤波器,而不是指零相位滤波器。
不明白“带通滤波是不是一定得分步滤波”,分步滤波是什么定义。

tjucruiser 发表于 2008-5-24 20:37

关于带通滤波分步

“带通滤波是不是一定得分步滤波”
我是想问带通滤波是不是一定要像下面的代码这样,先低通滤波,再高通滤波,分布进行?
=butter(10,4/125,'low');
filter_data=filtfilt(b,a,Data);
=butter(10,2/125,'high');
filter_data=filtfilt(b,a,filter_data);

第二,我想请教您,对于零相移动滤波filtfilt,选择的滤波器种类有关系吗?比如我上面的代码,选择的是butter滤波器,请问选择什么滤波器比较好?

最后,有个小问题,如果滤波器的phase response是线性,那么得到的信号相位是不是错误呢?
多谢

songzy41 发表于 2008-5-25 08:05

我在http://forum.vibunion.com/forum/viewthread.php?tid=65055&highlight=已提到了可直接用带通滤波,没有必要分步滤波。

用filtfilt和用filter一样,可选择不同的滤波器,这些滤波器在通带和阻带上有不同的特性。选择哪一种,主要根据楼主对滤波器通带和阻带上的要求。

滤波器特性是线性相移,不能认为相位是错误的,只是在通带内不同频率相移随频率线性变化。选择什么样的相移,取决滤波后的信号需作什么样的处理。
页: [1]
查看完整版本: 关于导联数据滤波的问题