Home > vbmeg > functions > gui > preAnalysis > meeg_processor > signal_processor > vb_signal_processor_view_filter_response.m

vb_signal_processor_view_filter_response

PURPOSE ^

View filter response

SYNOPSIS ^

function data = vb_signal_processor_view_filter_response(data, parm)

DESCRIPTION ^

 View filter response
 [USAGE]
    data = vb_signal_processor_view_filter_response(data, parm);
 [IN]
    data : Application data.
    parm : filter parameter.
 [OUT]
    data : Application data.
 See Also:
    vb_plot_filter_response

 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 data = vb_signal_processor_view_filter_response(data, parm)
0002 % View filter response
0003 % [USAGE]
0004 %    data = vb_signal_processor_view_filter_response(data, parm);
0005 % [IN]
0006 %    data : Application data.
0007 %    parm : filter parameter.
0008 % [OUT]
0009 %    data : Application data.
0010 % See Also:
0011 %    vb_plot_filter_response
0012 %
0013 % Copyright (C) 2011, ATR All Rights Reserved.
0014 % License : New BSD License(see VBMEG_LICENSE.txt)
0015 
0016 %
0017 % --- Previous check
0018 %
0019 if ~exist('data', 'var')
0020     error('data is a required parameter.');
0021 end
0022 if ~exist('parm', 'var')
0023     error('parm is a required parameter.');
0024 end
0025 
0026 %
0027 % --- Main Procedure
0028 %
0029 persistent freq_str;
0030 if isempty(freq_str), freq_str = ''; end
0031 
0032 ret = inputdlg('Enter the sampling frequency of the data[Hz]', 'View the selected filter response', 1, {freq_str}, 'on');
0033 if ~isempty(ret)
0034     freq_str = ret{1};
0035     freq = str2double(freq_str);
0036 else
0037    return;
0038 end
0039 
0040 d = vb_define_signal_processor;
0041 
0042 online = 1;
0043 ftype  = '';
0044 Norder = 0;
0045 
0046 switch(parm.type)
0047     case {d.TYPE_PROCESSING_HIGHPASS, d.TYPE_PROCESSING_LOWPASS}
0048         fcut   = parm.cutoff_freq;
0049         if parm.impulse_response == 2
0050             Norder = parm.order;
0051         end
0052         if parm.filtfilt
0053             online = 0;
0054         end
0055         if isequal(parm.type, d.TYPE_PROCESSING_HIGHPASS)
0056             ftype = 'high';
0057         else
0058             ftype = 'low';
0059         end
0060     case {d.TYPE_PROCESSING_BANDPASS, d.TYPE_PROCESSING_STOPBAND}
0061         fcut = [parm.cutoff_freq_low, parm.cutoff_freq_high];
0062         if parm.impulse_response == 2
0063             Norder = parm.order;
0064         end
0065         Norder = parm.order;
0066         if parm.filtfilt
0067             online = 0;
0068         end
0069         if isequal(parm.type, d.TYPE_PROCESSING_BANDPASS)
0070             ftype = 'band';
0071         else
0072             ftype = 'stop';
0073         end
0074     otherwise
0075         error('Unsupported filter was specified.');
0076 end
0077 
0078 figure;
0079 vb_plot_filter_response(ftype, fcut, freq, Norder, [], [], online);

Generated on Mon 22-May-2023 06:53:56 by m2html © 2005