Online filter calculation [Y, Z] = vb_online_filter(A, B, C, D, X, Z) [A, B, C, D] : filter matrix X : Input signal (Nch x 1) Z : Internal state variable (Nch x Norder) Y : Output signal (Nch x 1) Masa-aki Sato Copyright (C) 2011, ATR All Rights Reserved. License : New BSD License(see VBMEG_LICENSE.txt)
0001 function [Y, Z] = vb_online_filter(A, B, C, D, X, Z) 0002 % Online filter calculation 0003 % [Y, Z] = vb_online_filter(A, B, C, D, X, Z) 0004 % [A, B, C, D] : filter matrix 0005 % X : Input signal (Nch x 1) 0006 % Z : Internal state variable (Nch x Norder) 0007 % Y : Output signal (Nch x 1) 0008 % 0009 % Masa-aki Sato 0010 % 0011 % Copyright (C) 2011, ATR All Rights Reserved. 0012 % License : New BSD License(see VBMEG_LICENSE.txt) 0013 0014 % [A, B, C, D] = butter(Norder, freq/(fsamp/2)); 0015 % A = A'; B = B'; C = C'; D = D'; 0016 % A: Norder x Norder, 0017 % B: 1 x Norder, 0018 % C: Norder x 1, 0019 % D: 1 x 1 0020 % Y = Z * C + U * D; % Output update 0021 % Z = Z * A + U * B; % Internal state variable update 0022 0023 Y = Z * C + X * D; 0024 Z = Z * A + X * B; 0025