Code covered by the BSD License  

Highlights from
Fourier series with taper

image thumbnail

Fourier series with taper

by

Hélio de Oliveira

 

Compute Fourier series with Tukey tapers and standard Fourier series for a number of signals

ProjetoMM1C(varargin)
function varargout = ProjetoMM1C(varargin)
% PROJETOMM1C M-file for ProjetoMM1C.fig
%      PROJETOMM1C, by itself, creates a new PROJETOMM1C or raises the existing
%      singleton*.
%
%      H = PROJETOMM1C returns the handle to a new PROJETOMM1C or the handle to
%      the existing singleton*.
%
%      PROJETOMM1C('CALLBACK',hObject,eventData,handles,...) calls the local
%      function named CALLBACK in PROJETOMM1C.M with the given input arguments.
%
%      PROJETOMM1C('Property','Value',...) creates a new PROJETOMM1C or raises the
%      existing singleton*.  Starting from the left, property value pairs are
%      applied to the GUI before ProjetoMM1C_OpeningFunction gets called.  An
%      unrecognized property name or invalid value makes property application
%      stop.  All inputs are passed to ProjetoMM1C_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

% Copyright 2002-2003 The MathWorks, Inc.

% Edit the above text to modify the response to help ProjetoMM1C
% http://www2.ee.ufpe.br/codec/tapers.html
%authors: R. Santos de Souza, H.M. de Oliveira, UFPE

% Last Modified by GUIDE v2.5 09-Apr-2013 09:22:32

% Begin initialization code - DO NOT EDIT
gui_Singleton = 1;
gui_State = struct('gui_Name',       mfilename, ...
                   'gui_Singleton',  gui_Singleton, ...
                   'gui_OpeningFcn', @ProjetoMM1C_OpeningFcn, ...
                   'gui_OutputFcn',  @ProjetoMM1C_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 ProjetoMM1C is made visible.
function ProjetoMM1C_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 ProjetoMM1C (see VARARGIN)

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

% Update handles structure
guidata(hObject, handles);

% This sets up the initial plot - only do when we are invisible
% so window can get raised using ProjetoMM1C.

x = -2*pi:.01:2*pi;
y = 0;
j = 1;
for i = -2*pi:.01:2*pi
    r(j)=0;
    j = j + 1;
end;

if strcmp(get(hObject,'Visible'),'off')
    axes(handles.axes1);
    plot(x,y);
    axis([-6.5 6.5 -1.2 1.2]);
    set(gca,'XTick',-2*pi:pi/2:2*pi);
    set(gca,'XTickLabel',{'-2pi','-3pi/2','-pi','-pi/2','0','pi/2','pi','3pi/2', '2pi'});
    axes(handles.axes2);
    plot(x,r);
    axis([-6.5 6.5 -1.2 1.2]);
    set(gca,'XTick',-2*pi:pi/2:2*pi);
    set(gca,'XTickLabel',{'-2pi','-3pi/2','-pi','-pi/2','0','pi/2','pi','3pi/2', '2pi'});
    axes(handles.axes3);
    plot(x,r);
    axis([-6.5 6.5 -1.2 1.2]);
    set(gca,'XTick',-2*pi:pi/2:2*pi);
    set(gca,'XTickLabel',{'-2pi','-3pi/2','-pi','-pi/2','0','pi/2','pi','3pi/2', '2pi'});

end

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


% --- Outputs from this function are returned to the command line.
function varargout = ProjetoMM1C_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 pushbutton1.
function pushbutton1_Callback(hObject, eventdata, handles)
% hObject    handle to pushbutton1 (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)

N = str2double(get(handles.ntermos,'String'));
selected_function = get(handles.popupmenu1, 'Value');
selected_tapper = get(handles.popupmenu2, 'Value');
flag = 0;

switch selected_function
    
    case 1                      %Onda quadrada
        r = -2*pi:.001:2*pi;
        s = (square(r) + 1)/2;        
        
        axes(handles.axes1);    %Plotagem do grafico selecionado em Axes1
        plot(r,s);
        axis([-6.5 6.5 -1.2 1.2]);
        set(gca,'XTick',-2*pi:pi/2:2*pi);
        set(gca,'XTickLabel',{'-2pi','-3pi/2','-pi','-pi/2','0','pi/2','pi','3pi/2', '2pi'});
        
        axes(handles.axes2);    %Plotagem da representacao por Serie de Fourier em Axes2
        i=1;
        sum=0;

        for t=-2*pi:0.001:2*pi
            for n=1:N
                sum = sum + (-1/(n*pi))*sin(n*t)*(cos(n*pi)-1);
            end
            f(i)=(1/2) + sum;
            i=i+1;
            sum = 0;
        end;

        f=f';

        plot(r,f);
        axis([-6.5 6.5 -1.2 1.2]);
        set(gca,'XTick',-2*pi:pi/2:2*pi);
        set(gca,'XTickLabel',{'-2pi','-3pi/2','-pi','-pi/2','0','pi/2','pi','3pi/2', '2pi'});
        zoom on;
        
        switch selected_tapper
            
            case 1          %Fejer
                
                axes(handles.axes3);    %Plotagem da representacao por Serie de Fourier com Tapper de Fejer em Axes3
                i=1;
                sumt=0;

                for t=-2*pi:0.001:2*pi
                    for n=1:N
                        sumt = sumt + (1 - n/(N+1))*(-1/(n*pi))*sin(n*t)*(cos(n*pi)-1);
                    end
                    ft(i)=(1/2) + sumt;
                    i=i+1;
                    sumt = 0;
                end;

                ft = ft';

                plot(r,ft);
                axis([-6.5 6.5 -1.2 1.2]);
                set(gca,'XTick',-2*pi:pi/2:2*pi);
                set(gca,'XTickLabel',{'-2pi','-3pi/2','-pi','-pi/2','0','pi/2','pi','3pi/2', '2pi'});
                zoom on;
                
            case 2          %Hamming
                
                axes(handles.axes3);    %Plotagem da representacao por Serie de Fourier com Tapper de Hamming em Axes3
                i=1;
                sumt=0;

                for t=-2*pi:0.001:2*pi
                    for n=1:N
                        sumt = sumt + [(1/2)*(1 + cos(n*pi/N))]*(-1/(n*pi))*sin(n*t)*(cos(n*pi)-1);
                    end
                    ft(i)=(1/2) + sumt;
                    i=i+1;
                    sumt = 0;
                end;

                ft = ft';

                plot(r,ft);
                axis([-6.5 6.5 -1.2 1.2]);
                set(gca,'XTick',-2*pi:pi/2:2*pi);
                set(gca,'XTickLabel',{'-2pi','-3pi/2','-pi','-pi/2','0','pi/2','pi','3pi/2', '2pi'});
                zoom on;
            
            case 3          %Lanczos
              
                axes(handles.axes3);    %Plotagem da representacao por Serie de Fourier com Tapper de Lanczos em Axes3
                i=1;
                sumt=0;

                for t=-2*pi:0.001:2*pi
                    for n=1:N
                        sumt = sumt + [sin((n*pi)/(N+1/2))/((n*pi)/(N+1/2))]*(-1/(n*pi))*sin(n*t)*(cos(n*pi)-1);
                    end
                    ft(i)=(1/2) + sumt;
                    i=i+1;
                    sumt = 0;
                end;

                ft = ft';

                plot(r,ft);
                axis([-6.5 6.5 -1.2 1.2]);
                set(gca,'XTick',-2*pi:pi/2:2*pi);
                set(gca,'XTickLabel',{'-2pi','-3pi/2','-pi','-pi/2','0','pi/2','pi','3pi/2', '2pi'});
                zoom on;
                
            case 4          %Parzen
                
                axes(handles.axes3);    %Plotagem da representacao por Serie de Fourier com Tapper de Parzen em Axes3
                i=1;
                sumt=0;

                for t=-2*pi:0.001:2*pi
                    for n=1:N
                        sumt = sumt + [1 - ((n*n)/(N*N))]*(-1/(n*pi))*sin(n*t)*(cos(n*pi)-1);
                    end
                    ft(i)=(1/2) + sumt;
                    i=i+1;
                    sumt = 0;
                end;

                ft = ft';

                plot(r,ft);
                axis([-6.5 6.5 -1.2 1.2]);
                set(gca,'XTick',-2*pi:pi/2:2*pi);
                set(gca,'XTickLabel',{'-2pi','-3pi/2','-pi','-pi/2','0','pi/2','pi','3pi/2', '2pi'});
                zoom on;
                
            case 5          %Weierstrass
                
                axes(handles.axes3);    %Plotagem da representacao por Serie de Fourier com Tapper de Weierstrass em Axes3
                i=1;
                sumt=0;

                for t=-2*pi:0.001:2*pi
                    for n=1:N
                        sumt = sumt + [exp((-n*n)/(2*N*N))]*(-1/(n*pi))*sin(n*t)*(cos(n*pi)-1);
                    end
                    ft(i)=(1/2) + sumt;
                    i=i+1;
                    sumt = 0;
                end;

                ft = ft';

                plot(r,ft);
                axis([-6.5 6.5 -1.2 1.2]);
                set(gca,'XTick',-2*pi:pi/2:2*pi);
                set(gca,'XTickLabel',{'-2pi','-3pi/2','-pi','-pi/2','0','pi/2','pi','3pi/2', '2pi'});
                zoom on;
                                        
        end;
                
                           
    case 2                      %Porta
        r = -2*pi:.001:2*pi;
        s = rectpuls(r,pi);
        
        axes(handles.axes1);    %Plotagem do grafico selecionado em Axes1
        plot(r,s);
        axis([-6.5 6.5 -1.2 1.2]);
        set(gca,'XTick',-2*pi:pi/2:2*pi);
        set(gca,'XTickLabel',{'-2pi','-3pi/2','-pi','-pi/2','0','pi/2','pi','3pi/2', '2pi'});
                
        axes(handles.axes2);    %Plotagem da representacao por Serie de Fourier em Axes2
        i=1;
        sum=0;

        for t=-2*pi:0.001:2*pi
            for n=1:N
                sum = sum + (2/(n*pi))*sin(n*pi/4)*cos(n*t/2);
            end
        f(i)=(1/4) + sum;
        i=i+1;
        sum = 0;
        end;

        f=f';

        plot(r,f);
        axis([-6.5 6.5 -1.2 1.2]);
        set(gca,'XTick',-2*pi:pi/2:2*pi);
        set(gca,'XTickLabel',{'-2pi','-3pi/2','-pi','-pi/2','0','pi/2','pi','3pi/2', '2pi'});
        zoom on;
        
        switch selected_tapper
            
            case 1          %Fejer
                
                axes(handles.axes3);    %Plotagem da representacao por Serie de Fourier com Tapper de Fejer em Axes3
                i=1;
                sumt=0;

                for t=-2*pi:0.001:2*pi
                    for n=1:N
                        sumt = sumt + (1 - n/(N+1))*(2/(n*pi))*sin(n*pi/4)*cos(n*t/2);
                    end
                    ft(i)=(1/4) + sumt;
                    i=i+1;
                    sumt = 0;
                end;

                ft = ft';

                plot(r,ft);
                axis([-6.5 6.5 -1.2 1.2]);
                set(gca,'XTick',-2*pi:pi/2:2*pi);
                set(gca,'XTickLabel',{'-2pi','-3pi/2','-pi','-pi/2','0','pi/2','pi','3pi/2', '2pi'});
                zoom on;
                
            case 2          %Hamming
                
                axes(handles.axes3);    %Plotagem da representacao por Serie de Fourier com Tapper de Hamming em Axes3
                i=1;
                sumt=0;

                for t=-2*pi:0.001:2*pi
                    for n=1:N
                        sumt = sumt + [(1/2)*(1 + cos(n*pi/N))]*(2/(n*pi))*sin(n*pi/4)*cos(n*t/2);
                    end
                    ft(i)=(1/4) + sumt;
                    i=i+1;
                    sumt = 0;
                end;

                ft = ft';

                plot(r,ft);
                axis([-6.5 6.5 -1.2 1.2]);
                set(gca,'XTick',-2*pi:pi/2:2*pi);
                set(gca,'XTickLabel',{'-2pi','-3pi/2','-pi','-pi/2','0','pi/2','pi','3pi/2', '2pi'});
                zoom on;
            
            case 3          %Lanczos
              
                axes(handles.axes3);    %Plotagem da representacao por Serie de Fourier com Tapper de Lanczos em Axes3
                i=1;
                sumt=0;

                for t=-2*pi:0.001:2*pi
                    for n=1:N
                        sumt = sumt + [sin((n*pi)/(N+1/2))/((n*pi)/(N+1/2))]*(2/(n*pi))*sin(n*pi/4)*cos(n*t/2);
                    end
                    ft(i)=(1/4) + sumt;
                    i=i+1;
                    sumt = 0;
                end;

                ft = ft';

                plot(r,ft);
                axis([-6.5 6.5 -1.2 1.2]);
                set(gca,'XTick',-2*pi:pi/2:2*pi);
                set(gca,'XTickLabel',{'-2pi','-3pi/2','-pi','-pi/2','0','pi/2','pi','3pi/2', '2pi'});
                zoom on;
                
            case 4          %Parzen
                
                axes(handles.axes3);    %Plotagem da representacao por Serie de Fourier com Tapper de Parzen em Axes3
                i=1;
                sumt=0;

                for t=-2*pi:0.001:2*pi
                    for n=1:N
                        sumt = sumt + [1 - ((n*n)/(N*N))]*(2/(n*pi))*sin(n*pi/4)*cos(n*t/2);
                    end
                    ft(i)=(1/4) + sumt;
                    i=i+1;
                    sumt = 0;
                end;

                ft = ft';

                plot(r,ft);
                axis([-6.5 6.5 -1.2 1.2]);
                set(gca,'XTick',-2*pi:pi/2:2*pi);
                set(gca,'XTickLabel',{'-2pi','-3pi/2','-pi','-pi/2','0','pi/2','pi','3pi/2', '2pi'});
                zoom on;
                
            case 5          %Weierstrass
                
                axes(handles.axes3);    %Plotagem da representacao por Serie de Fourier com Tapper de Weierstrass em Axes3
                i=1;
                sumt=0;

                for t=-2*pi:0.001:2*pi
                    for n=1:N
                        sumt = sumt + [exp((-n*n)/(2*N*N))]*(2/(n*pi))*sin(n*pi/4)*cos(n*t/2);
                    end
                    ft(i)=(1/4) + sumt;
                    i=i+1;
                    sumt = 0;
                end;

                ft = ft';

                plot(r,ft);
                axis([-6.5 6.5 -1.2 1.2]);
                set(gca,'XTick',-2*pi:pi/2:2*pi);
                set(gca,'XTickLabel',{'-2pi','-3pi/2','-pi','-pi/2','0','pi/2','pi','3pi/2', '2pi'});
                zoom on;
                                        
        end;
                
    case 3                      %Rampa
        r = -4*pi:.001:4*pi;
        s = sawtooth(r,0);        
        axes(handles.axes1);    %Plotagem do grafico selecionado em Axes1
        plot(r,s);
        axis([-13 13 -1.2 1.2]);
        set(gca,'XTick',-4*pi:pi:4*pi);
        set(gca,'XTickLabel',{'-4pi','-3pi','-2pi','-pi','0','pi','2pi','3pi', '4pi'});
        
        axes(handles.axes2);    %Plotagem da representacao por Serie de Fourier em Axes2
        i=1;
        sum=0;

        for t=-4*pi:0.001:4*pi
            for n=1:N
                sum = sum + (1/(n*pi))*sin(n*t);
            end
            f(i)= 2 * sum;
            i=i+1;
            sum = 0;
        end;

        f=f';

        plot(r,f);
        axis([-13 13 -1.2 1.2]);
        set(gca,'XTick',-4*pi:pi:4*pi);
        set(gca,'XTickLabel',{'-4pi','-3pi','-2pi','-pi','0','pi','2pi','3pi', '4pi'});
        zoom on;
        
        switch selected_tapper
            
            case 1          %Fejer
                
                axes(handles.axes3);    %Plotagem da representacao por Serie de Fourier com Tapper de Fejer em Axes3
                i=1;
                sumt=0;

                for t=-4*pi:0.001:4*pi
                    for n=1:N
                        sumt = sumt + (1 - n/(N+1))*(1/(n*pi))*sin(n*t);
                    end
                    ft(i)= 2*sumt;
                    i=i+1;
                    sumt = 0;
                end;

                ft = ft';

                plot(r,ft);
                axis([-13 13 -1.2 1.2]);
                set(gca,'XTick',-4*pi:pi:4*pi);
                set(gca,'XTickLabel',{'-4pi','-3pi','-2pi','-pi','0','pi','2pi','3pi', '4pi'});
                zoom on;
                
            case 2          %Hamming
                
                axes(handles.axes3);    %Plotagem da representacao por Serie de Fourier com Tapper de Hamming em Axes3
                i=1;
                sumt=0;

                for t=-4*pi:0.001:4*pi
                    for n=1:N
                        sumt = sumt + [(1/2)*(1 + cos(n*pi/N))]*(1/(n*pi))*sin(n*t);
                    end
                    ft(i)= 2*sumt;
                    i=i+1;
                    sumt = 0;
                end;

                ft = ft';

                plot(r,ft);
                axis([-13 13 -1.2 1.2]);
                set(gca,'XTick',-4*pi:pi:4*pi);
                set(gca,'XTickLabel',{'-4pi','-3pi','-2pi','-pi','0','pi','2pi','3pi', '4pi'});
                zoom on;
            
            case 3          %Lanczos
              
                axes(handles.axes3);    %Plotagem da representacao por Serie de Fourier com Tapper de Lanczos em Axes3
                i=1;
                sumt=0;

                for t=-4*pi:0.001:4*pi
                    for n=1:N
                        sumt = sumt + [sin((n*pi)/(N+1/2))/((n*pi)/(N+1/2))]*(1/(n*pi))*sin(n*t);
                    end
                    ft(i)= 2*sumt;
                    i=i+1;
                    sumt = 0;
                end;

                ft = ft';

                plot(r,ft);
                axis([-13 13 -1.2 1.2]);
                set(gca,'XTick',-4*pi:pi:4*pi);
                set(gca,'XTickLabel',{'-4pi','-3pi','-2pi','-pi','0','pi','2pi','3pi', '4pi'});
                zoom on;
                
            case 4          %Parzen
                
                axes(handles.axes3);    %Plotagem da representacao por Serie de Fourier com Tapper de Parzen em Axes3
                i=1;
                sumt=0;

                for t=-4*pi:0.001:4*pi
                    for n=1:N
                        sumt = sumt + [1 - ((n*n)/(N*N))]*(1/(n*pi))*sin(n*t);
                    end
                    ft(i)= 2*sumt;
                    i=i+1;
                    sumt = 0;
                end;

                ft = ft';

                plot(r,ft);
                axis([-13 13 -1.2 1.2]);
                set(gca,'XTick',-4*pi:pi:4*pi);
                set(gca,'XTickLabel',{'-4pi','-3pi','-2pi','-pi','0','pi','2pi','3pi', '4pi'});
                zoom on;
                
            case 5          %Weierstrass
                
                axes(handles.axes3);    %Plotagem da representacao por Serie de Fourier com Tapper de Weierstrass em Axes3
                i=1;
                sumt=0;

                for t=-4*pi:0.001:4*pi
                    for n=1:N
                        sumt = sumt + [exp((-n*n)/(2*N*N))]*(1/(n*pi))*sin(n*t);
                    end
                    ft(i)= 2*sumt;
                    i=i+1;
                    sumt = 0;
                end;

                ft = ft';

                plot(r,ft);
                axis([-13 13 -1.2 1.2]);
                set(gca,'XTick',-4*pi:pi:4*pi);
                set(gca,'XTickLabel',{'-4pi','-3pi','-2pi','-pi','0','pi','2pi','3pi', '4pi'});
                zoom on;
                                        
        end;
        
    case 4                      %Senoide retificada em meia-onda
        r = -2*pi:.001:2*pi;
        j=1;
        for i=-2*pi:.001:2*pi
            if sin(2*i)>0
                s(j) = sin(2*i);
            else
                s(j)=0;
            end;
            j=j+1;
        end;
        
        axes(handles.axes1);    %Plotagem do grafico selecionado em Axes1
        plot(r,s);
        axis([-6.5 6.5 -1.2 1.2]);
        set(gca,'XTick',-2*pi:pi/2:2*pi);
        set(gca,'XTickLabel',{'-2pi','-3pi/2','-pi','-pi/2','0','pi/2','pi','3pi/2', '2pi'});
        
        axes(handles.axes2);    %Plotagem da representacao por Serie de Fourier em Axes2
        i=1;
        sum=0;

        for t=-2*pi:0.001:2*pi
            for n=2:2:N
                sum = sum + (2/(pi*(1-n*n)))*cos(2*n*t);
            end
            f(i)= 1/pi + sum + (1/2)*sin(2*t) ;
            i=i+1;
            sum = 0;
        end;

        f=f';

        plot(r,f);
        axis([-6.5 6.5 -1.2 1.2]);
        set(gca,'XTick',-2*pi:pi/2:2*pi);
        set(gca,'XTickLabel',{'-2pi','-3pi/2','-pi','-pi/2','0','pi/2','pi','3pi/2', '2pi'});
        zoom on;
        
        switch selected_tapper
            
            case 1          %Fejer
                
                axes(handles.axes3);    %Plotagem da representacao por Serie de Fourier com Tapper de Fejer em Axes3
                i=1;
                sumt=0;

                for t=-2*pi:0.001:2*pi
                    for n=2:2:N
                        sumt = sumt + (1 - n/(N+1))*(2/(pi*(1-n*n)))*cos(2*n*t);
                    end
                    ft(i)=(1/pi) + sumt + (1 - 1/(N+1))*(1/2)*sin(2*t);
                    i=i+1;
                    sumt = 0;
                end;

                ft = ft';

                plot(r,ft);
                axis([-6.5 6.5 -1.2 1.2]);
                set(gca,'XTick',-2*pi:pi/2:2*pi);
                set(gca,'XTickLabel',{'-2pi','-3pi/2','-pi','-pi/2','0','pi/2','pi','3pi/2', '2pi'});
                zoom on;
                
            case 2          %Hamming
                
                axes(handles.axes3);    %Plotagem da representacao por Serie de Fourier com Tapper de Hamming em Axes3
                i=1;
                sumt=0;

                for t=-2*pi:0.001:2*pi
                    for n=2:2:N
                        sumt = sumt + [(1/2)*(1 + cos(n*pi/N))]*(2/(pi*(1-n*n)))*cos(2*n*t);
                    end
                    ft(i)=(1/pi) + sumt + [(1/2)*(1 + cos(pi/N))]*(1/2)*sin(2*t);
                    i=i+1;
                    sumt = 0;
                end;

                ft = ft';

                plot(r,ft);
                axis([-6.5 6.5 -1.2 1.2]);
                set(gca,'XTick',-2*pi:pi/2:2*pi);
                set(gca,'XTickLabel',{'-2pi','-3pi/2','-pi','-pi/2','0','pi/2','pi','3pi/2', '2pi'});
                zoom on;
            
            case 3          %Lanczos
              
                axes(handles.axes3);    %Plotagem da representacao por Serie de Fourier com Tapper de Lanczos em Axes3
                i=1;
                sumt=0;

                for t=-2*pi:0.001:2*pi
                    for n=2:2:N
                        sumt = sumt + [sin((n*pi)/(N+1/2))/((n*pi)/(N+1/2))]*(2/(pi*(1-n*n)))*cos(2*n*t);
                    end
                    ft(i)=(1/pi) + sumt + [sin((pi)/(N+1/2))/((pi)/(N+1/2))]*(1/2)*sin(2*t);
                    i=i+1;
                    sumt = 0;
                end;

                ft = ft';

                plot(r,ft);
                axis([-6.5 6.5 -1.2 1.2]);
                set(gca,'XTick',-2*pi:pi/2:2*pi);
                set(gca,'XTickLabel',{'-2pi','-3pi/2','-pi','-pi/2','0','pi/2','pi','3pi/2', '2pi'});
                zoom on;
                
            case 4          %Parzen
                
                axes(handles.axes3);    %Plotagem da representacao por Serie de Fourier com Tapper de Parzen em Axes3
                i=1;
                sumt=0;

                for t=-2*pi:0.001:2*pi
                    for n=2:2:N
                        sumt = sumt + [1 - ((n*n)/(N*N))]*(2/(pi*(1-n*n)))*cos(2*n*t);
                    end
                    ft(i)=(1/pi) + sumt + [1 - (1/(N*N))]*(1/2)*sin(2*t);
                    i=i+1;
                    sumt = 0;
                end;

                ft = ft';

                plot(r,ft);
                axis([-6.5 6.5 -1.2 1.2]);
                set(gca,'XTick',-2*pi:pi/2:2*pi);
                set(gca,'XTickLabel',{'-2pi','-3pi/2','-pi','-pi/2','0','pi/2','pi','3pi/2', '2pi'});
                zoom on;
                
            case 5          %Weierstrass
                
                axes(handles.axes3);    %Plotagem da representacao por Serie de Fourier com Tapper de Weierstrass em Axes3
                i=1;
                sumt=0;

                for t=-2*pi:0.001:2*pi
                    for n=2:2:N
                        sumt = sumt + [exp((-n*n)/(2*N*N))]*(2/(pi*(1-n*n)))*cos(2*n*t);
                    end
                    ft(i)=(1/pi) + sumt + [exp((-1)/(2*N*N))]*(1/2)*sin(2*t);
                    i=i+1;
                    sumt = 0;
                end;

                ft = ft';

                plot(r,ft);
                axis([-6.5 6.5 -1.2 1.2]);
                set(gca,'XTick',-2*pi:pi/2:2*pi);
                set(gca,'XTickLabel',{'-2pi','-3pi/2','-pi','-pi/2','0','pi/2','pi','3pi/2', '2pi'});
                zoom on;
        
        end;
            
    case 5                      %Senoide retificada em onda-completa
        r = -2*pi:.001:2*pi;
        s = abs(sin(r));        
        
        axes(handles.axes1);    %Plotagem do grafico selecionado em Axes1
        plot(r,s);
        axis([-6.5 6.5 -1.2 1.2]);
        set(gca,'XTick',-2*pi:pi/2:2*pi);
        set(gca,'XTickLabel',{'-2pi','-3pi/2','-pi','-pi/2','0','pi/2','pi','3pi/2', '2pi'});
        
        axes(handles.axes2);    %Plotagem da representacao por Serie de Fourier em Axes2
        
        i=1;
        sum=0;

        for t=-2*pi:0.001:2*pi
            for n=1:N
                sum = sum + (4/(pi*(1-4*n*n)))*cos(2*n*t);
            end
            f(i)= 2/pi + sum ;
            i=i+1;
            sum = 0;
        end;

        f=f';

        plot(r,f);
        axis([-6.5 6.5 -1.2 1.2]);
        set(gca,'XTick',-2*pi:pi/2:2*pi);
        set(gca,'XTickLabel',{'-2pi','-3pi/2','-pi','-pi/2','0','pi/2','pi','3pi/2', '2pi'});
        zoom on;
        
        switch selected_tapper
            
            case 1          %Fejer
                
                axes(handles.axes3);    %Plotagem da representacao por Serie de Fourier com Tapper de Fejer em Axes3
                i=1;
                sumt=0;

                for t=-2*pi:0.001:2*pi
                    for n=1:N
                        sumt = sumt + (1 - n/(N+1))*(4/(pi*(1-4*n*n)))*cos(2*n*t);
                    end
                    ft(i)=(2/pi) + sumt;
                    i=i+1;
                    sumt = 0;
                end;

                ft = ft';

                plot(r,ft);
                axis([-6.5 6.5 -1.2 1.2]);
                set(gca,'XTick',-2*pi:pi/2:2*pi);
                set(gca,'XTickLabel',{'-2pi','-3pi/2','-pi','-pi/2','0','pi/2','pi','3pi/2', '2pi'});
                zoom on;
                
            case 2          %Hamming
                
                axes(handles.axes3);    %Plotagem da representacao por Serie de Fourier com Tapper de Hamming em Axes3
                i=1;
                sumt=0;

                for t=-2*pi:0.001:2*pi
                    for n=1:N
                        sumt = sumt + [(1/2)*(1 + cos(n*pi/N))]*(4/(pi*(1-4*n*n)))*cos(2*n*t);
                    end
                    ft(i)=(2/pi) + sumt;
                    i=i+1;
                    sumt = 0;
                end;

                ft = ft';

                plot(r,ft);
                axis([-6.5 6.5 -1.2 1.2]);
                set(gca,'XTick',-2*pi:pi/2:2*pi);
                set(gca,'XTickLabel',{'-2pi','-3pi/2','-pi','-pi/2','0','pi/2','pi','3pi/2', '2pi'});
                zoom on;
            
            case 3          %Lanczos
              
                axes(handles.axes3);    %Plotagem da representacao por Serie de Fourier com Tapper de Lanczos em Axes3
                i=1;
                sumt=0;

                for t=-2*pi:0.001:2*pi
                    for n=1:N
                        sumt = sumt + [sin((n*pi)/(N+1/2))/((n*pi)/(N+1/2))]*(4/(pi*(1-4*n*n)))*cos(2*n*t);
                    end
                    ft(i)=(2/pi) + sumt;
                    i=i+1;
                    sumt = 0;
                end;

                ft = ft';

                plot(r,ft);
                axis([-6.5 6.5 -1.2 1.2]);
                set(gca,'XTick',-2*pi:pi/2:2*pi);
                set(gca,'XTickLabel',{'-2pi','-3pi/2','-pi','-pi/2','0','pi/2','pi','3pi/2', '2pi'});
                zoom on;
                
            case 4          %Parzen
                
                axes(handles.axes3);    %Plotagem da representacao por Serie de Fourier com Tapper de Parzen em Axes3
                i=1;
                sumt=0;

                for t=-2*pi:0.001:2*pi
                    for n=1:N
                        sumt = sumt + [1 - ((n*n)/(N*N))]*(4/(pi*(1-4*n*n)))*cos(2*n*t);
                    end
                    ft(i)=(2/pi) + sumt;
                    i=i+1;
                    sumt = 0;
                end;

                ft = ft';

                plot(r,ft);
                axis([-6.5 6.5 -1.2 1.2]);
                set(gca,'XTick',-2*pi:pi/2:2*pi);
                set(gca,'XTickLabel',{'-2pi','-3pi/2','-pi','-pi/2','0','pi/2','pi','3pi/2', '2pi'});
                zoom on;
                
            case 5          %Weierstrass
                
                axes(handles.axes3);    %Plotagem da representacao por Serie de Fourier com Tapper de Weierstrass em Axes3
                i=1;
                sumt=0;

                for t=-2*pi:0.001:2*pi
                    for n=1:N
                        sumt = sumt + [exp((-n*n)/(2*N*N))]*(4/(pi*(1-4*n*n)))*cos(2*n*t);
                    end
                    ft(i)=(2/pi) + sumt;
                    i=i+1;
                    sumt = 0;
                end;

                ft = ft';

                plot(r,ft);
                axis([-6.5 6.5 -1.2 1.2]);
                set(gca,'XTick',-2*pi:pi/2:2*pi);
                set(gca,'XTickLabel',{'-2pi','-3pi/2','-pi','-pi/2','0','pi/2','pi','3pi/2', '2pi'});
                zoom on;
                                        
        end;
                
    case 6                      %Trem de pulsos retangulares
        r = -2*pi:.001:2*pi;
        d = -2*pi:pi:2*pi;
        s = pulstran(r,d,'rectpuls',0.5);
        
        axes(handles.axes1);     %Plotagem do grafico selecionado em Axes1
        plot(r,s);
        axis([-6.5 6.5 -1.2 1.2]);
        set(gca,'XTick',-2*pi:pi/2:2*pi);
        set(gca,'XTickLabel',{'-2pi','-3pi/2','-pi','-pi/2','0','pi/2','pi','3pi/2', '2pi'});
        
        axes(handles.axes2);     %Plotagem da representacao por Serie de Fourier em Axes2
        i=1;
        sum=0;

        for t=-2*pi:0.001:2*pi
            for n=1:N
                sum = sum + (2/(pi*n))*sin(n/2)*cos(2*n*t);
            end
            f(i)= 1/(2*pi) + sum ;
            i=i+1;
            sum = 0;
        end;

        f=f';

        plot(r,f);
        axis([-6.5 6.5 -1.2 1.2]);
        set(gca,'XTick',-2*pi:pi/2:2*pi);
        set(gca,'XTickLabel',{'-2pi','-3pi/2','-pi','-pi/2','0','pi/2','pi','3pi/2', '2pi'});
        zoom on;
        
        
        switch selected_tapper
            
            case 1          %Fejer
                
                axes(handles.axes3);    %Plotagem da representacao por Serie de Fourier com Tapper de Fejer em Axes3
                i=1;
                sumt=0;

                for t=-2*pi:0.001:2*pi
                    for n=1:N
                        sumt = sumt + (1 - n/(N+1))*(2/(pi*n))*sin(n/2)*cos(2*n*t);
                    end
                    ft(i)=(1/(2*pi)) + sumt;
                    i=i+1;
                    sumt = 0;
                end;

                ft = ft';

                plot(r,ft);
                axis([-6.5 6.5 -1.2 1.2]);
                set(gca,'XTick',-2*pi:pi/2:2*pi);
                set(gca,'XTickLabel',{'-2pi','-3pi/2','-pi','-pi/2','0','pi/2','pi','3pi/2', '2pi'});
                zoom on;
                
            case 2          %Hamming
                
                axes(handles.axes3);    %Plotagem da representacao por Serie de Fourier com Tapper de Hamming em Axes3
                i=1;
                sumt=0;

                for t=-2*pi:0.001:2*pi
                    for n=1:N
                        sumt = sumt + [(1/2)*(1 + cos(n*pi/N))]*(2/(pi*n))*sin(n/2)*cos(2*n*t);
                    end
                    ft(i)=(1/(2*pi)) + sumt;
                    i=i+1;
                    sumt = 0;
                end;

                ft = ft';

                plot(r,ft);
                axis([-6.5 6.5 -1.2 1.2]);
                set(gca,'XTick',-2*pi:pi/2:2*pi);
                set(gca,'XTickLabel',{'-2pi','-3pi/2','-pi','-pi/2','0','pi/2','pi','3pi/2', '2pi'});
                zoom on;
            
            case 3          %Lanczos
              
                axes(handles.axes3);    %Plotagem da representacao por Serie de Fourier com Tapper de Lanczos em Axes3
                i=1;
                sumt=0;

                for t=-2*pi:0.001:2*pi
                    for n=1:N
                        sumt = sumt + [sin((n*pi)/(N+1/2))/((n*pi)/(N+1/2))]*(2/(pi*n))*sin(n/2)*cos(2*n*t);
                    end
                    ft(i)=(1/(2*pi)) + sumt;
                    i=i+1;
                    sumt = 0;
                end;

                ft = ft';

                plot(r,ft);
                axis([-6.5 6.5 -1.2 1.2]);
                set(gca,'XTick',-2*pi:pi/2:2*pi);
                set(gca,'XTickLabel',{'-2pi','-3pi/2','-pi','-pi/2','0','pi/2','pi','3pi/2', '2pi'});
                zoom on;
                
            case 4          %Parzen
                
                axes(handles.axes3);    %Plotagem da representacao por Serie de Fourier com Tapper de Parzen em Axes3
                i=1;
                sumt=0;

                for t=-2*pi:0.001:2*pi
                    for n=1:N
                        sumt = sumt + [1 - ((n*n)/(N*N))]*(2/(pi*n))*sin(n/2)*cos(2*n*t);
                    end
                    ft(i)=(1/(2*pi)) + sumt;
                    i=i+1;
                    sumt = 0;
                end;

                ft = ft';

                plot(r,ft);
                axis([-6.5 6.5 -1.2 1.2]);
                set(gca,'XTick',-2*pi:pi/2:2*pi);
                set(gca,'XTickLabel',{'-2pi','-3pi/2','-pi','-pi/2','0','pi/2','pi','3pi/2', '2pi'});
                zoom on;
                
            case 5          %Weierstrass
                
                axes(handles.axes3);    %Plotagem da representacao por Serie de Fourier com Tapper de Weierstrass em Axes3
                i=1;
                sumt=0;

                for t=-2*pi:0.001:2*pi
                    for n=1:N
                        sumt = sumt + [exp((-n*n)/(2*N*N))]*(2/(pi*n))*sin(n/2)*cos(2*n*t);
                    end
                    ft(i)=(1/(2*pi)) + sumt;
                    i=i+1;
                    sumt = 0;
                end;

                ft = ft';

                plot(r,ft);
                axis([-6.5 6.5 -1.2 1.2]);
                set(gca,'XTick',-2*pi:pi/2:2*pi);
                set(gca,'XTickLabel',{'-2pi','-3pi/2','-pi','-pi/2','0','pi/2','pi','3pi/2', '2pi'});
                zoom on;
                                        
        end;
        
    case 7                      %Triangulo
        r = -2*pi:.001:2*pi;
        s = tripuls(r,pi);        
        
        axes(handles.axes1);
        plot(r,s);
        axis([-6.5 6.5 -1.2 1.2]);
        set(gca,'XTick',-2*pi:pi/2:2*pi);
        set(gca,'XTickLabel',{'-2pi','-3pi/2','-pi','-pi/2','0','pi/2','pi','3pi/2', '2pi'});
        
        axes(handles.axes2);
        
        i=1;
        sum=0;

        for t=-2*pi:0.001:2*pi
            for n=1:N
                sum = sum + (8/(n*n*pi*pi))*(1-cos((n*pi)/4))*cos((n*t)/2);
            end
            f(i)= 1/8 + sum ;
            i=i+1;
            sum = 0;
        end;

        f=f';

        plot(r,f);
        axis([-6.5 6.5 -1.2 1.2]);
        set(gca,'XTick',-2*pi:pi/2:2*pi);
        set(gca,'XTickLabel',{'-2pi','-3pi/2','-pi','-pi/2','0','pi/2','pi','3pi/2', '2pi'});
        zoom on;
        
        switch selected_tapper
            
            case 1          %Fejer
                
                axes(handles.axes3);    %Plotagem da representacao por Serie de Fourier com Tapper de Fejer em Axes3
                i=1;
                sumt=0;

                for t=-2*pi:0.001:2*pi
                    for n=1:N
                        sumt = sumt + (1 - n/(N+1))*(8/(n*n*pi*pi))*(1-cos((n*pi)/4))*cos((n*t)/2);
                    end
                    ft(i)=(1/8) + sumt;
                    i=i+1;
                    sumt = 0;
                end;

                ft = ft';

                plot(r,ft);
                axis([-6.5 6.5 -1.2 1.2]);
                set(gca,'XTick',-2*pi:pi/2:2*pi);
                set(gca,'XTickLabel',{'-2pi','-3pi/2','-pi','-pi/2','0','pi/2','pi','3pi/2', '2pi'});
                zoom on;
                
            case 2          %Hamming
                
                axes(handles.axes3);    %Plotagem da representacao por Serie de Fourier com Tapper de Hamming em Axes3
                i=1;
                sumt=0;

                for t=-2*pi:0.001:2*pi
                    for n=1:N
                        sumt = sumt + [(1/2)*(1 + cos(n*pi/N))]*(8/(n*n*pi*pi))*(1-cos((n*pi)/4))*cos((n*t)/2);
                    end
                    ft(i)=(1/8) + sumt;
                    i=i+1;
                    sumt = 0;
                end;

                ft = ft';

                plot(r,ft);
                axis([-6.5 6.5 -1.2 1.2]);
                set(gca,'XTick',-2*pi:pi/2:2*pi);
                set(gca,'XTickLabel',{'-2pi','-3pi/2','-pi','-pi/2','0','pi/2','pi','3pi/2', '2pi'});
                zoom on;
            
            case 3          %Lanczos
              
                axes(handles.axes3);    %Plotagem da representacao por Serie de Fourier com Tapper de Lanczos em Axes3
                i=1;
                sumt=0;

                for t=-2*pi:0.001:2*pi
                    for n=1:N
                        sumt = sumt + [sin((n*pi)/(N+1/2))/((n*pi)/(N+1/2))]*(8/(n*n*pi*pi))*(1-cos((n*pi)/4))*cos((n*t)/2);
                    end
                    ft(i)=(1/8) + sumt;
                    i=i+1;
                    sumt = 0;
                end;

                ft = ft';

                plot(r,ft);
                axis([-6.5 6.5 -1.2 1.2]);
                set(gca,'XTick',-2*pi:pi/2:2*pi);
                set(gca,'XTickLabel',{'-2pi','-3pi/2','-pi','-pi/2','0','pi/2','pi','3pi/2', '2pi'});
                zoom on;
                
            case 4          %Parzen
                
                axes(handles.axes3);    %Plotagem da representacao por Serie de Fourier com Tapper de Parzen em Axes3
                i=1;
                sumt=0;

                for t=-2*pi:0.001:2*pi
                    for n=1:N
                        sumt = sumt + [1 - ((n*n)/(N*N))]*(8/(n*n*pi*pi))*(1-cos((n*pi)/4))*cos((n*t)/2);
                    end
                    ft(i)=(1/8) + sumt;
                    i=i+1;
                    sumt = 0;
                end;

                ft = ft';

                plot(r,ft);
                axis([-6.5 6.5 -1.2 1.2]);
                set(gca,'XTick',-2*pi:pi/2:2*pi);
                set(gca,'XTickLabel',{'-2pi','-3pi/2','-pi','-pi/2','0','pi/2','pi','3pi/2', '2pi'});
                zoom on;
                
            case 5          %Weierstrass
                
                axes(handles.axes3);    %Plotagem da representacao por Serie de Fourier com Tapper de Weierstrass em Axes3
                i=1;
                sumt=0;

                for t=-2*pi:0.001:2*pi
                    for n=1:N
                        sumt = sumt + [exp((-n*n)/(2*N*N))]*(8/(n*n*pi*pi))*(1-cos((n*pi)/4))*cos((n*t)/2);
                    end
                    ft(i)=(1/8) + sumt;
                    i=i+1;
                    sumt = 0;
                end;

                ft = ft';

                plot(r,ft);
                axis([-6.5 6.5 -1.2 1.2]);
                set(gca,'XTick',-2*pi:pi/2:2*pi);
                set(gca,'XTickLabel',{'-2pi','-3pi/2','-pi','-pi/2','0','pi/2','pi','3pi/2', '2pi'});
                zoom on;
                                        
        end;
    
end;

% --------------------------------------------------------------------
function FileMenu_Callback(hObject, eventdata, handles)
% hObject    handle to FileMenu (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)


% --------------------------------------------------------------------
function OpenMenuItem_Callback(hObject, eventdata, handles)
% hObject    handle to OpenMenuItem (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)
file = uigetfile('*.fig');
if ~isequal(file, 0)
    open(file);
end

% --------------------------------------------------------------------
function PrintMenuItem_Callback(hObject, eventdata, handles)
% hObject    handle to PrintMenuItem (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)
printdlg(handles.axes2)

% --------------------------------------------------------------------
function CloseMenuItem_Callback(hObject, eventdata, handles)
% hObject    handle to CloseMenuItem (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)
selection = questdlg(['Close ' get(handles.figure1,'Name') '?'],...
                     ['Close ' get(handles.figure1,'Name') '...'],...
                     'Yes','No','Yes');
if strcmp(selection,'No')
    return;
end

delete(handles.figure1)


% --- Executes on selection change in popupmenu1.
function popupmenu1_Callback(hObject, eventdata, handles)
% hObject    handle to popupmenu1 (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)

% Hints: contents = get(hObject,'String') returns popupmenu1 contents as cell array
%        contents{get(hObject,'Value')} returns selected item from popupmenu1


% --- Executes during object creation, after setting all properties.
function popupmenu1_CreateFcn(hObject, eventdata, handles)
% hObject    handle to popupmenu1 (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    empty - handles not created until after all CreateFcns called

% Hint: popupmenu controls usually have a white background on Windows.
%       See ISPC and COMPUTER.
if ispc
    set(hObject,'BackgroundColor','white');
else
    set(hObject,'BackgroundColor',get(0,'defaultUicontrolBackgroundColor'));
end

% --- Executes on selection change in popupmenu2.
function popupmenu2_Callback(hObject, eventdata, handles)
% hObject    handle to popupmenu2 (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)

% Hints: contents = get(hObject,'String') returns popupmenu2 contents as cell array
%        contents{get(hObject,'Value')} returns selected item from popupmenu2


% --- Executes during object creation, after setting all properties.
function popupmenu2_CreateFcn(hObject, eventdata, handles)
% hObject    handle to popupmenu2 (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    empty - handles not created until after all CreateFcns called

% Hint: popupmenu controls usually have a white background on Windows.
%       See ISPC and COMPUTER.
if ispc
    set(hObject,'BackgroundColor','white');
else
    set(hObject,'BackgroundColor',get(0,'defaultUicontrolBackgroundColor'));
end


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

% --- Executes on selection change in popupmenu1.
function popupmenu3_Callback(hObject, eventdata, handles)
% hObject    handle to popupmenu1 (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)

% Hints: contents = get(hObject,'String') returns popupmenu1 contents as cell array
%        contents{get(hObject,'Value')} returns selected item from popupmenu1


% --- Executes during object creation, after setting all properties.
function popupmenu3_CreateFcn(hObject, eventdata, handles)
% hObject    handle to popupmenu1 (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    empty - handles not created until after all CreateFcns called

% Hint: popupmenu controls usually have a white background on Windows.
%       See ISPC and COMPUTER.
if ispc
    set(hObject,'BackgroundColor','white');
else
    set(hObject,'BackgroundColor',get(0,'defaultUicontrolBackgroundColor'));
end


% --- Executes on selection change in popupmenu4.
function popupmenu4_Callback(hObject, eventdata, handles)
% hObject    handle to popupmenu4 (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)

% Hints: contents = get(hObject,'String') returns popupmenu4 contents as cell array
%        contents{get(hObject,'Value')} returns selected item from popupmenu4


% --- Executes during object creation, after setting all properties.
function popupmenu4_CreateFcn(hObject, eventdata, handles)
% hObject    handle to popupmenu4 (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    empty - handles not created until after all CreateFcns called

% Hint: popupmenu controls usually have a white background on Windows.
%       See ISPC and COMPUTER.
if ispc
    set(hObject,'BackgroundColor','white');
else
    set(hObject,'BackgroundColor',get(0,'defaultUicontrolBackgroundColor'));
end


% --- Executes on selection change in popupmenu5.
function popupmenu5_Callback(hObject, eventdata, handles)
% hObject    handle to popupmenu5 (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)

% Hints: contents = get(hObject,'String') returns popupmenu5 contents as cell array
%        contents{get(hObject,'Value')} returns selected item from popupmenu5


% --- Executes during object creation, after setting all properties.
function popupmenu5_CreateFcn(hObject, eventdata, handles)
% hObject    handle to popupmenu5 (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    empty - handles not created until after all CreateFcns called

% Hint: popupmenu controls usually have a white background on Windows.
%       See ISPC and COMPUTER.
if ispc
    set(hObject,'BackgroundColor','white');
else
    set(hObject,'BackgroundColor',get(0,'defaultUicontrolBackgroundColor'));
end


% --- Executes on selection change in popupmenu2.
function popupmenu6_Callback(hObject, eventdata, handles)
% hObject    handle to popupmenu2 (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)

% Hints: contents = get(hObject,'String') returns popupmenu2 contents as cell array
%        contents{get(hObject,'Value')} returns selected item from popupmenu2


% --- Executes during object creation, after setting all properties.
function popupmenu6_CreateFcn(hObject, eventdata, handles)
% hObject    handle to popupmenu2 (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    empty - handles not created until after all CreateFcns called

% Hint: popupmenu controls usually have a white background on Windows.
%       See ISPC and COMPUTER.
if ispc
    set(hObject,'BackgroundColor','white');
else
    set(hObject,'BackgroundColor',get(0,'defaultUicontrolBackgroundColor'));
end


% --- Executes on selection change in popupmenu2.
function popupmenu7_Callback(hObject, eventdata, handles)
% hObject    handle to popupmenu2 (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)

% Hints: contents = get(hObject,'String') returns popupmenu2 contents as cell array
%        contents{get(hObject,'Value')} returns selected item from popupmenu2


% --- Executes during object creation, after setting all properties.
function popupmenu7_CreateFcn(hObject, eventdata, handles)
% hObject    handle to popupmenu2 (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    empty - handles not created until after all CreateFcns called

% Hint: popupmenu controls usually have a white background on Windows.
%       See ISPC and COMPUTER.
if ispc
    set(hObject,'BackgroundColor','white');
else
    set(hObject,'BackgroundColor',get(0,'defaultUicontrolBackgroundColor'));
end

function ntermos_Callback(hObject, eventdata, handles)
% hObject    handle to ntermos (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)

% Hints: get(hObject,'String') returns contents of ntermos as text
%        str2double(get(hObject,'String')) returns contents of ntermos as a double


% --- Executes during object creation, after setting all properties.
function ntermos_CreateFcn(hObject, eventdata, handles)
% hObject    handle to ntermos (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    empty - handles not created until after all CreateFcns called

% Hint: edit controls usually have a white background on Windows.
%       See ISPC and COMPUTER.
if ispc
    set(hObject,'BackgroundColor','white');
else
    set(hObject,'BackgroundColor',get(0,'defaultUicontrolBackgroundColor'));
end

% --------------------------------------------------------------------

function AboutMenuItem_Callback(hObject, eventdata, handles)
% hObject    handle to AboutMenuItem (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)
open('About.fig');

% --------------------------------------------------------------------
function ContactMenuItem_Callback(hObject, eventdata, handles)
% hObject    handle to ContactMenuItem (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)
open('Contact.fig');

% --------------------------------------------------------------------
function SobreMenuItem_Callback(hObject, eventdata, handles)
% hObject    handle to SobreMenuItem (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)


Contact us