关于导联数据滤波的问题
我要对一个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 我试了一下,用filter或filtfilt函数对多道数据(12*20000)滤波时,数组的排列应为20000*12,即每通道的数据应为列数据。
多谢,请问filtfilt是实现零相移滤波吗,带通滤波是不是一定得分步滤波?
多谢您得答案,我不知道filtfilt是不是零相移滤波,我看了很多文献提到phase response是线性的,这种情况,不知道这个算不算零相位,然后带通滤波是不是一定得分步滤波? 本帖最后由 wdhd 于 2016-9-10 14:29 编辑原帖由 tjucruiser 于 2008-5-24 17:31 发表
多谢您得答案,我不知道filtfilt是不是零相移滤波,我看了很多文献提到phase response是线性的,这种情况,不知道这个算不算零相位,然后带通滤波是不是一定得分步滤波?
filtfilt是零相移滤波,它的phase response都是0,而phase response是线性的大都是指FIR滤波器,而不是指零相位滤波器。
不明白“带通滤波是不是一定得分步滤波”,分步滤波是什么定义。
关于带通滤波分步
“带通滤波是不是一定得分步滤波”我是想问带通滤波是不是一定要像下面的代码这样,先低通滤波,再高通滤波,分布进行?
=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是线性,那么得到的信号相位是不是错误呢?
多谢 我在http://forum.vibunion.com/forum/viewthread.php?tid=65055&highlight=已提到了可直接用带通滤波,没有必要分步滤波。
用filtfilt和用filter一样,可选择不同的滤波器,这些滤波器在通带和阻带上有不同的特性。选择哪一种,主要根据楼主对滤波器通带和阻带上的要求。
滤波器特性是线性相移,不能认为相位是错误的,只是在通带内不同频率相移随频率线性变化。选择什么样的相移,取决滤波后的信号需作什么样的处理。
页:
[1]