Home > functions > device > filter_func > vb_online_highpass_cut.m

vb_online_highpass_cut

PURPOSE ^

Highpass cut filter using Online lowpass filter

SYNOPSIS ^

function y = vb_online_highpass_cut(x,Fs,Fc,init_mode)

DESCRIPTION ^

 Highpass cut filter using Online lowpass filter
   y = vb_online_highpass_cut(x,Fs,Fc)
   y = vb_online_highpass_cut(x,Fs,Fc,init_mode)
 --- Input
 Fs : Sampling frequencies (Hz)
 Fc : Center frequencies (Hz) for lowpass filter
 x  : Input signal [D x T]
 --- Optional Input
 if init_mode = 1, 
 initial value of lowpass state variable is Initialized 
 by first one cycle (= Fs/Fc) data 
 --- Output
 y  : output signal by online highpass filter [D x T]

 2009-6-20 Masa-aki Sato

 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_cut(x,Fs,Fc,init_mode)
0002 % Highpass cut filter using Online lowpass filter
0003 %   y = vb_online_highpass_cut(x,Fs,Fc)
0004 %   y = vb_online_highpass_cut(x,Fs,Fc,init_mode)
0005 % --- Input
0006 % Fs : Sampling frequencies (Hz)
0007 % Fc : Center frequencies (Hz) for lowpass filter
0008 % x  : Input signal [D x T]
0009 % --- Optional Input
0010 % if init_mode = 1,
0011 % initial value of lowpass state variable is Initialized
0012 % by first one cycle (= Fs/Fc) data
0013 % --- Output
0014 % y  : output signal by online highpass filter [D x T]
0015 %
0016 % 2009-6-20 Masa-aki Sato
0017 %
0018 % Copyright (C) 2011, ATR All Rights Reserved.
0019 % License : New BSD License(see VBMEG_LICENSE.txt)
0020 
0021 [Nch,T] = size(x);
0022 
0023 % Initialize lowpass filter
0024 [a, z] = vb_lowpass_init(Fs,Fc,Nch);
0025 
0026 if nargin == 4 && init_mode == 1
0027     T0 = min( ceil(Fs/Fc) , T); % one cycle length
0028     
0029     % Calculate initial value for lowpass component from initial signal
0030     [y0, z] = vb_online_lowpass_filt(a(1), x(:,T0:-1:1), z);
0031 end
0032 
0033 [y , z] = vb_online_highpass_filt(a(1), x, z);
0034 
0035 return
0036 
0037 [Nch,T] = size(x);
0038 
0039 % Calculate initial value for lowpass component from initial signal
0040 for t=1:T0
0041     z = vb_online_lowpass(a,x(:, t),z);
0042 end
0043 
0044 y = zeros(Nch,T);
0045 
0046 % Online highpass filtering by subtracting lowpass component from signal
0047 for t=1:T
0048     [y(:,t), z] = vb_online_highpass(a, x(:, t), z);
0049 end

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