Home > functions > device > filter_func > vb_online_highpass_cut2.m

vb_online_highpass_cut2

PURPOSE ^

Highpass cut filter using Online lowpass filter

SYNOPSIS ^

function y = vb_online_highpass_cut2(x,Fs,Fcut)

DESCRIPTION ^

 Highpass cut filter using Online lowpass filter
 filtfilt-like forward-backward filtering

 Copyright (C) 2011, ATR All Rights Reserved.
 License : New BSD License(see VBMEG_LICENSE.txt)

CROSS-REFERENCE INFORMATION ^

This function calls: This function is called by:

SOURCE CODE ^

0001 function    y = vb_online_highpass_cut2(x,Fs,Fcut)
0002 % Highpass cut filter using Online lowpass filter
0003 % filtfilt-like forward-backward filtering
0004 %
0005 % Copyright (C) 2011, ATR All Rights Reserved.
0006 % License : New BSD License(see VBMEG_LICENSE.txt)
0007 
0008 [Nch,T] = size(x);
0009 
0010 % Initialize lowpass filter
0011 [a, z] = vb_lowpass_init(Fs,Fcut,Nch);
0012 
0013 % Calculate initial value for lowpass component from initial signal
0014 T0 = Fs/Fcut; % one cycle length
0015 for t=1:T0
0016     z = vb_online_lowpass(a,x(:, t),z);
0017 end
0018 
0019 y = zeros(Nch,T);
0020 
0021 % Online highpass filtering by subtracting lowpass component from signal
0022 for t=1:T
0023     [y(:,t), z] = vb_online_highpass(a, x(:, t), z);
0024 end
0025 
0026 z0 = z;
0027 yz = zeros(Nch,T0);
0028 
0029 % one cycle forward
0030 for t=1:T0
0031     [yz(:,t), z] = vb_online_highpass(a, z0, z);
0032 end
0033 % one cycle backward
0034 for t=T0:-1:1
0035     [yt, z] = vb_online_highpass(a, yz(:,t), z);
0036 end
0037 
0038 xy = y;
0039 % backward filtering
0040 for t=T:-1:1
0041     [y(:,t), z] = vb_online_highpass(a, xy(:, t), z);
0042 end
0043

Generated on Tue 27-Aug-2013 11:46:04 by m2html © 2005