Index: trunk/src/transform_field/signal_bandpass_filter.m
===================================================================
--- trunk/src/transform_field/signal_bandpass_filter.m	(revision 880)
+++ trunk/src/transform_field/signal_bandpass_filter.m	(revision 881)
@@ -26,5 +26,49 @@
 %=======================================================================
 
-function DataOut=signal_bandpass_filter(DataIn)
+function DataOut=signal_bandpass_filter(DataIn,Param)
+
+%% request input parameters
+if isfield(DataIn,'Action') && isfield(DataIn.Action,'RUN') && isequal(DataIn.Action.RUN,0)
+    VarNbDim=cellfun('length',DataIn.VarDimName);
+    [tild,rank]=sort(VarNbDim,2,'descend');% sort the list of input variables, putting the ones with higher dimensionality first
+    ListVarName=DataIn.ListVarName(rank);
+    VarDimName=DataIn.VarDimName(rank);
+    InitialValue=1;%default choice
+    if isfield(Param,'TransformInput') && isfield(Param.TransformInput,'VariableName')
+        val=find(strcmp(Param.TransformInput.VariableName,ListVarName));
+        if ~isempty(val);
+            InitialValue=val;
+        end
+    end
+    [s,OK] = listdlg('PromptString','Select the variable to process:',...
+        'SelectionMode','single','InitialValue',InitialValue,...
+        'ListString',ListVarName);
+    if OK==1
+        VarName=ListVarName{s};
+        DataOut.TransformInput.VariableName=VarName;
+        dlg_title = [mfilename ' filter signal along first dim ' VarDimName{s}{1}];% title of the input dialog fig
+        prompt = {'central filtering frequency';'bandwith (relative to the central frequency) '};% titles of the edit boxes
+        %default input:
+        def={'';'0.1'};% filtering frequency and relative bandwidth
+
+        if isfield(Param,'TransformInput')% if parameters have been memorised
+            if isfield(Param.TransformInput,'CentralFrequency')
+                def{1}=num2str(Param.TransformInput.CentralFrequency);
+            end
+            if isfield(Param.TransformInput,'BandWidth')
+                 def{2}=num2str(Param.TransformInput.BandWidth);
+            end
+        end
+        num_lines= 1;%numel(prompt);
+        % open the dialog fig
+        answer = inputdlg(prompt,dlg_title,num_lines,def);
+        DataOut.TransformInput.CentralFrequency=str2num(answer{1});
+        DataOut.TransformInput.BandWidth=str2num(answer{2});
+    end
+    return
+end
+
+
+
 %% set GUI config
 DataOut=[];
@@ -34,9 +78,11 @@
 end
 %%%%%%%%%%%%%%%%%%%%%%%%%
-frequency=2*5/54.5;% frequency at which the signal needs to be filetered
+frequency=Param.TransformInput.CentralFrequency;% frequency at which the signal needs to be filetered
+Bw=Param.TransformInput.BandWidth;
+ DataOut=DataIn;
  %d=fdesign.bandpass(0.8*frequency, 0.95*frequency, 1.05*frequency, 1.2*frequency, 60, 1, 60);
- d=fdesign.bandpass(0.7*frequency, 0.9*frequency, 1.1*frequency, 1.3*frequency, 60, 1, 60);
+ d=fdesign.bandpass((1-2*Bw)*frequency, (1-Bw)*frequency, (1+Bw)*frequency, (1+2*Bw)*frequency, 60, 1, 60);
  Hd=design(d);% command  fvtool(Hd) to visualize the filter frequency response
- DataOut=DataIn;
+
  if isfield(DataIn,'U')
  DataOut.U = filter(Hd,DataIn.U);
