A list,

1 Design Principle



1.1 Filter Concept



1.2 System function and difference equation of digital filter



1.3 Representation of digital filter structure





1.4 Classification of digital filters





2.1 Comparison of IIR filter and FIR filter



2.2 Principle of FIR filter

















3 simulation steps of FIR filter



Ii. Source code

function varargout = filter_2(varargin)
% FILTER_2 MATLAB code for filter_2.fig
%      FILTER_2, by itself, creates a new FILTER_2 or raises the existing
%      singleton*.
%
%      H = FILTER_2 returns the handle to a new FILTER_2 or the handle to
%      the existing singleton*.
%
%      FILTER_2('CALLBACK',hObject,eventData,handles,...) calls the local
%      function named CALLBACK in FILTER_2.M with the given input arguments.
%
%      FILTER_2('Property'.'Value',...). creates anew FILTER_2 or raises the
%      existing singleton*.  Starting from the left, property value pairs are
%      applied to the GUI before filter_2_OpeningFcn gets called.  An
%      unrecognized property name orinvalid value makes property application % stop. All inputs are passed to filter_2_OpeningFcn via varargin. % % *See GUI  Options on GUIDE's Tools menu.  Choose "GUI allows only one % instance to run (singleton)".
%
% See also: GUIDE, GUIDATA, GUIHANDLES

% Edit the above text to modify the response to help filter_2

% Last Modified by GUIDE v2. 5 16-May- 2013. 12:02:23

% Begin initialization code - DO NOT EDIT
gui_Singleton = 1;
gui_State = struct('gui_Name',       mfilename, ...
    'gui_Singleton',  gui_Singleton, ...
    'gui_OpeningFcn', @filter_2_OpeningFcn, ...
    'gui_OutputFcn',  @filter_2_OutputFcn, ...
    'gui_LayoutFcn', [],...'gui_Callback'[]);if nargin && ischar(varargin{1})
    gui_State.gui_Callback = str2func(varargin{1});
end

if nargout
    [varargout{1:nargout}] = gui_mainfcn(gui_State, varargin{:});
else
    gui_mainfcn(gui_State, varargin{:});
end
% End initialization code - DO NOT EDIT


% --- Executes just before filter_2 is made visible.
function filter_2_OpeningFcn(hObject, eventdata, handles, varargin)
% This function has no output args, see OutputFcn.
% hObject    handle to figure
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)
% varargin   command line arguments to filter_2 (see VARARGIN)
global response;
global analog;
global window1;
global digital;
global analog_choose;

response=1;
analog=1;
analog_choose=1;
window1=1;
digital=1;

%set(handles.function_value,'String'.'Butterworth');
%set(handles.method_value,'String'.'direct form');
set(handles.order,'Enable'.'off');

% Choose default command line output for filter_2
handles.output = hObject;

% Update handles structure
guidata(hObject, handles);

% UIWAIT makes filter_2 wait for user response (see UIRESUME)
% uiwait(handles.figure1);


% --- Outputs from this function are returned to the command line.
function varargout = filter_2_OutputFcn(hObject, eventdata, handles)
% varargout  cell array for returning output args (see VARARGOUT);
% hObject    handle to figure
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)

% Get default command line output from handles structure
varargout{1} = handles.output;


% --- Executes on button press in IIR_button.
function IIR_button_Callback(hObject, eventdata, handles)
% hObject    handle to IIR_button (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)
global  analog_choose;
global response;
global analog;
if(get(hObject,'Value') = =1Shield FIR module when selected in IIRset(handles.order_information,'String'.'order');
    set(handles.FIR_button,'Value'.0);
    set(handles.filter_information,'String'.'IIR');
    set(handles.window_function,'Enable'.'off');
    set(handles.order,'Enable'.'off');
    set(handles.view_window,'Enable'.'off');
    set(handles.analog_filter,'Enable'.'on');
    set(handles.Apass,'Enable'.'on');
    set(handles.Astop,'Enable'.'on');
    set(handles.order,'Enable'.'off');
    
     set(handles.specify_order,'Enable'.'on'); set(handles.specify_order,'Value'.0); % processing of orderset(handles.custom_order,'Enable'.'on');set(handles.custom_order,'String'."); set(handles.min_order,'Enable'.'on');set(handles.min_order,'Value'.0);
    
    %get(handles.analog_method,'Value');
    if( analog_choose==1)
        set(handles.method_value,'String'.'direct form');
    else
        set(handles.method_value,'String'.'bilinear');
    end
    switch(analog)
        case 1
            set(handles.function_value,'String'.'Butterworth');
        case 2
            set(handles.function_value,'String'.'chebyshev1');
        case 3
            set(handles.function_value,'String'.'chebyshev2');
    end
    switch(response)
        case 1
            set(handles.type_information,'String'.'Lowpass');
        case 2
            set(handles.type_information,'String'.'Highpass');
        case 3
            set(handles.type_information,'String'.'Bandpass');
        case 4
            set(handles.type_information,'String'.'Bandstop');
    end
else
    set(handles.window_function,'Enable'.'on');
    set(handles.order,'Enable'.'on');
    set(handles.view_window,'Enable'.'on');
    set(handles.order,'Enable'.'on');
end
% Hint: get(hObject,'Value') returns toggle state of IIR_button


% --- Executes on button press in FIR_button.
function FIR_button_Callback(hObject, eventdata, handles)
% hObject    handle to FIR_button (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)
global digital;
global response;
global window1;

if(get(hObject,'Value') = =1Shield IIR module when selected FIRset(handles.IIR_button,'Value'.0);
    set(handles.filter_information,'String'.'FIR');
    set(handles.window_function,'Enable'.'on');
   % set(handles.order,'Enable'.'on');
    set(handles.view_window,'Enable'.'on');
    set(handles.analog_filter,'Enable'.'off');
    set(handles.Apass,'Enable'.'off');
    set(handles.Astop,'Enable'.'off');
    %set(handles.order,'Enable'.'on');
   
   if(digital==2%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% processing orderset(handles.specify_order,'Enable'.'off');
        set(handles.custom_order,'Enable'.'off');
        set(handles.min_order,'Enable'.'off');
        set(handles.window_function,'Enable'.'off');
        set(handles.view_window,'Enable'.'off');
        set(handles.order_information,'String'.'sample')
        set(handles.order,'Enable'.'on');
        end 
    
    switch(response)
        case 1
            set(handles.type_information,'String'.'Lowpass');
        case 2
            set(handles.type_information,'String'.'Highpass');
        case 3
            set(handles.type_information,'String'.'Bandpass');
        case 4
            set(handles.type_information,'String'.'Bandstop');
    end
    if(digital==1)
        set(handles.method_value,'String'.'window');
    else
        set(handles.method_value,'String'.'FSI');
    end
    switch(window1)
        case 1
            set(handles.function_value,'String'.'Hamming');
        case 2
            set(handles.function_value,'String'.'Blackman');
        case 3
            set(handles.function_value,'String'.'Hann');
        case 4
            set(handles.function_value,'String'.'Rectangular');
    end
else
    set(handles.analog_filter,'Enable'.'on');
    set(handles.Apass,'Enable'.'on');
    set(handles.Astop,'Enable'.'on');
    set(handles.order,'Enable'.'off');
    
end
% Hint: get(hObject,'Value') returns toggle state of FIR_button


% --- If Enable == 'on', executes on mouse press in 5 pixel border.
% --- Otherwise, executes on mouse press in 5 pixel border or over filter_information.
function filter_information_ButtonDownFcn(hObject, eventdata, handles)
% hObject    handle to filter_information (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)
Copy the code

3. Operation results



Fourth, note

Version: 2014 a