Buscar

Introdução ao Matlab para Sistemas Lineares


Continue navegando


Prévia do material em texto

UNIVERSIDADE TECNOLÓGICA FEDERAL DO PARANÁ 
CURSO DE ENGENHARIA DA COMPUTAÇÃO 
 
 
 
 
ADENILSON D. C. MUMBELLI 
EDEGAR KORB 
LUIS FELIPE BENEDITO 
 
 
 
 
 
SISTEMAS LINEARES 
MATLAB 
 
 
 
 
 
 
 
 
PATO BRANCO 
2012 
1. Introdução ao Matlab 
 
O software Matlab é um software interativo para computação envolvendo 
matrizes. O software foi desenvolvido no inicio da década de 80 por Cleve Moler, no 
departamento de Ciência da Computação da Universidade do Novo México nos 
Estados Unidos. 
No Matlab é disponível para o usuário, num ambiente interativo, algumas 
bibliotecas desenvolvidas através dos projetos linpack e eispack. Estes projetos têm 
por objetivo elaborar bibliotecas com domínio público para álgebra linear. A biblioteca 
linpack contém rotinas para solução de sistemas de equações lineares, enquanto que 
eispack possui rotinas destinadas à calculo de autovalores. 
O Matlab é voltado para o cálculo numérico, além disso, integram através de suas 
bibliotecas, cálculo com matrizes, processamento de sinais e construção e plotagem de 
gráficos, tudo envolvendo um ambiente de uso fácil, onde problemas e soluções são 
expressos como são escritos de forma matemática, se opondo a programação 
tradicional. O software possui como elemento básico uma matriz que não necessita de 
dimensionamento, este sistema permite o cálculo de muitos problemas numéricos em 
apenas uma parte do tempo que se gastaria implementando um programa semelhante 
em outros tipos de linguagens de programação como, por exemplo, Fortran, C++ ou 
Basic. Entretanto, as soluções são expressas exatamente como elas são escritas 
matematicamente. 
Além das bibliotecas projetadas através dos projetos linpack e eispack, o software 
dispõe também de um amplo programas de apoio, denominados toolboxes que 
proporcionam ao Matlab um aumento do número de funções incorporada ao 
software. Através do toolbox pode-se projetar algoritmos para processamento de 
sinais, de imagens, controle robusto, estática, análises financeiras, cálculo matemático 
simbólicos, redes neurais, lógica difusa, identificação de sinais, entre outros. 
Contudo, o objetivo inicial do estudo é implementar e apresentar algumas funções 
básicas do software, ajudando-nos na análise de sinais em sistemas lineares. 
 
1.1. Conceitos e comandos Matlab 
 
Ao executar o software, duas interfaces são apresentadas ao usuário, uma janela 
de comando (Command Windows) e uma janela gráfica (Graphic Windows). O prompt 
de comando é >>, este é exibido logo quando o Matlab é iniciado através da janela de 
comando. A partir disso o software espera por comandos ou tarefas, sendo que o 
Matlab distingue caracteres maiúsculos de minúsculos, sendo assim denominada uma 
linguagem de programação do tipo case sensitive. 
Os últimos comandos realizados são exibidos através da janela command history. 
Assim, quando é necessária a repetição de algum comando usado anteriormente basta 
navegar através das setas para cima e para baixo do teclado que o software mostra 
tais comandos na tela. 
Através do da janela workspace é possível visualizar as variáveis do algoritmo 
sendo implementado e seus respectivos valores. 
Nota-se ao iniciar o Matlab que por se tratar de um software manipulador de 
matrizes, este é por default inicializado com uma variável padrão do tipo matriz 1x1. 
O software ainda aceita que a declaração de variáveis pode ser feita de dois 
métodos, ou tipo, um pode se o método gráfico e o outro através de string, ou uma 
sequencia de caracteres. Estas variáveis podem ser declaradas no formato de matriz, 
onde as linhas são separadas por um ponto e virgula das colunas: 
 
M = [15 10; 5 1] 
 
A criação de uma matriz somente de zeros é feita através do comando zeros: 
 
M = zeros[15 10; 5 1] 
 
Como em muitas linguagens de programação, as variáveis devem ser declaradas 
iniciando sempre com letra, não podendo conter espaços ou caracteres de pontuação. 
A limpeza da tela do espaço de trabalho poder ser feita utilizando o comando clc, além 
de que as variáveis também podem ser excluídas da área de trabalho através do 
comando clear, porém podemos excluir apenas uma variável especifica, basta passar 
como parâmetro o nome da respectiva variável: 
 
clear <nome-da-variável> %exclui somente a variável especificada 
clear %exclui todas as variáveis do espaço de trabalho 
clc %limpa a tela do espaço de trabalho 
 
Alguma das operações básicas realizadas pelo Matlab pode ser visualizadas 
através do Quadro 1: 
 
Símbolo Operação Aritmética 
+ Adição 
- Subtração 
* Multiplicação 
/ Divisão 
^ Potenciação 
Quadro 1: Operações básicas do Matlab. 
 
Para realizar uma destas operações entre duas variáveis x e y, basta colocar entre 
as mesmas o símbolo da operação desejada, este valor pode ainda ser reservado numa 
outra variável r: 
 
r= x*y; %realiza a operação de multiplicação entre x e y 
r=x^y; %eleva a variável x ao expoente y 
 
O Matlab possui um conjunto muito grande de funções matemáticas que 
permitem resolver grande parte dos problemas de cálculo encontrados, tais como: 
funções exponenciais, logarítmicas, trigonométricas, etc. Para utilizá-las basta colocar 
a função com seu respectivo parâmetro entre parênteses: 
 
Y = Sin(pi) %a variável Y retorna o valor π da função seno 
Y = Log(x) %a variável Y retorna o valor logarítmico da variável x 
 
Quando as funções são aplicadas sobre matrizes a função é aplicada a cada um dos 
elementos. 
Abaixo podemos visualizar algumas funções matemáticas contidas nas bibliotecas 
do software: 
 
Função Descrição Função Descrição 
cos cosseno log logaritmo nepriano(base e) 
sin seno log10 logaritmo base 10 
tan tangente rem resto da divisão inteira 
acos arco-cosseno abs valor absoluto 
asin arco-seno sign sinal 
atan arco-tangente round arredonda para o mais próximo 
sqrt raiz quadrada floor arredonda par abaixo 
exp exponencial ceil arredonda para cima 
max máximo min mínimo 
real parte real de um imaginário abs módulo 
imag parte completa de um imaginário angle argumento de um complexo 
Quadro 2: Funções matemáticas do MATLAB 
 
Os comandos terminados com ponto e vírgula não exibem as variáveis de resposta 
na tela. Esse comando é usado quando se possui uma impressão do resultado na tela 
que não interessa, ou quando se possui muitos valores a serem mostrados, por 
exemplo, para uma matriz 20 × 20. 
O MATLAB segue certas regras na apresentação dos resultados. No caso de que 
nenhum formato esteja definido, se o resultado for um número inteiro, será mostrado 
o próprio. Quando um resultado é um número real, este mostra o resultado com uma 
aproximação de até quatro casas decimais. Se os dígitos significativos estiverem fora 
desta faixa, será apresentado o resultado em forma de notação científica. Porém, 
pode-se pré-definir um formato diferente utilizando os seguintes comandos: 
 
Format short %exibe cinco dígitos 
Format long %exibe dezesseis dígitos 
Format rat %exibe no formato racional 
 
Para realizar uma operação entre duas matrizes, basta apenas declarar uma 
segunda matriz dentro de outra variável, certificando-se que a dimensão é a mesma, e 
multiplicar uma variável pela outra, semelhante a uma operação com números 
constantes. 
Uma variável complexa no Matlab consiste em parte real mais a parte imaginária, a 
parte imaginária é identificada pela letra. 
Para melhor entendimento, ou esclarecimento de dúvida, muitas vezes é 
necessário a criação de gráficos contendo muitas informações quanto o estudo, para 
tanto, o software possui varias funções para geração de gráficos, entretanto, a função 
plot é a mais utilizada para gerar gráficos variando o seu comportamento consoante os 
parâmetrosde entrada. Estes gráficos são construídos a partir do comando ploat(x,y) 
criando um vetor X com as coordenadas do eixo das abscissas, em seguida escreve-se a 
função desejada, a partir do vetor X, a qual criará um novo vetor Y, das ordenadas. 
O comando linspace é responsável para criação prática de vetores conhecendo a 
quantidade de pontos necessários: 
 
vet = linspace (1, 10, 60); % vetor inicia em 1, termina em 10 e 
possui 60 pontos. 
 
Abaixo segue alguns exemplos da utilização dos vetores mencionados acima: 
 
vet = linspace (0,1,1000); %vetor inicia em zero e termina em 1 
possuindo 1000 pontos intermediários 
vet = linspace (1,0,1000); %vetor decrescente de 1 à zero com 1000 
pontos intermediários 
 
A formatação de cor e tipo de linha também pode ser configurada pelo usuário 
seguindo algumas especificações demonstradas na tabela 3: 
 
Cor Marcador Tipo de linha 
y (amarela) . ponto - sólida 
m (magenta) o círculo : pontilhada 
c (azul-claro)  xis -. traço ponto 
r (vermelha) + cruz -- tracejada 
g (verde) * estrela 
b (azul) s quadrado 
w (branca) d losango 
k (preta) v triângulo para baixo 
 ^ triângulo para cima 
 < triângulo para esquerda 
 > triângulo para direita 
 p pentagrama 
 h hexagrama 
Quadro 3: Parâmetros opcionais. 
 
Para utilizar essas configurações apresentadas basta digitar 
plot(x,y,’configuração’). Porém, para construção de gráficos com dados no formato 
discreto usa-se o comando stem da mesma forma que como é usado o comando plot. 
Para esclarecer a maior parte das dúvidas acerca da utilização de uma dada função 
do Matlab o comando help é de grande utilidade, ele apresenta detalhadamente todos 
os pacotes instalados, além de todos os comandos e suas utilizações. 
 
1.2. Exemplo Professor 
 
Antes de iniciarmos as atividades praticas do semestre, foi passado pelo professor 
um exemplo de algoritmo do Matlab com vários fundamentos do software para que 
pudéssemos entender um pouco sobre o real funcionamento da ferramenta: 
 
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 
% Programa Inicial - Sistemas Lineares % 
% Autor: Luis Felipe Benedito % 
% Data 03/04/2012 % 
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 
 
clear; %limpar as variaveis da memoria 
close all; %fecha todas as figuras 
 
%% Criacao de Sinais 
 
t=linspace(0, 10, 1000); %cria um vetor de tempo igualmente espacado 
a=exp(-0.3*t); %cria um sinal a(t) 
b=sin(5*t); %cria um sinal b(t) 
z1=a.*b; %cria um sinal z1=a(t)*b(t) 
 
%% Plotagem de Sinais 
 
figure 
plot(t,z1,t,a,t,b,t,-a); %Faz os graficos de cada sinal 
 
%% Encerra o Programa 
 
disp('Graficos Finalizados'); 
 
%% Novo Sinal 
clear; 
 
t=0:0.1:15; %vetor de tempo com incremento de 0.1 até 40 
c=1; 
for k=1:length(t) 
 x(k)=2; 
 if (t(k)-(c-1)*5>3)&(t(k)-(c-1)*5<5) 
 x(k)=-2; 
 end 
 
 if t(k)>5*c 
 c=c+1; 
 end 
 
end 
 
stem(t,x) 
 
%% Encerra Programa 
 
disp('Grafiscos Finalizados'); 
 
 
O código acima tem como finalidade exemplificar a representação de um sinal em 
tempo discreto, onde algumas condições e alguns limites foram impostos, porém pra 
melhor visualização do gráfico, a quantidade de pontos e o espaçamento entre eles, 
que inicialmente era, respectivamente, 0.1 e 40, foram alteras para 0.3 e 15, assim a 
visualização e entendimento do processo de criação do sinal periódico pelo leitor 
torna-se mais fácil: 
 
Gráfico 1: Exemplo de sinal de tempo discreto.
1.3. Exercícios propostos 
 
Para maior familiarização com o software Matlab, foram propostos durante o 
período letivo alguns exercícios a fim de exercitarmos não só a teoria, mas também a 
prática com a implementação de códigos capazes de realizar operações de sinais vistas 
teoricamente em sala de aula. 
Inicialmente, foi declarado um sinal para confecção dos gráficos referente ao 
tempo contínuo e tempo discreto do mesmo. 
Observe para o sinal Y(t) = sin (t): 
 
t = linspace (0, 10, 1000); %criação do vetor tempo 
y = sin(t); %função seno em relação ao tempo 
 
stem (t, y); %plotagem do gráfico tempo discreto 
 
 A partir do comando stem, é gerado um gráfico da função no tempo discreto: 
 
 
Gráfico 2: Sinal seno discreto com 1000 amostras. 
 
Como pode ser observado no Gráfico 2, quase não se percebe os pontos de forma 
separadas dando a impressão assim de um gráfico de tempo continuo. Alterando o 
gráfico, passando de 1000 para 70 o número de amostras no intervalo especificado, 
observa-se que as amostras do sinal ficaram mais espaçadas podendo ser visualizado 
como um sinal discreto: 
 
t = linspace (0, 10, 70); %criação do vetor tempo 
y = sin(t); %função seno em relação ao tempo 
 
stem (t, y); %plotagem do gráfico tempo discreto 
 
 
Gráfico 3: Sinal seno discreto com 70 amostras. 
 
Para um sinal seno contínuo, assim como no sinal discreto, basta declarar um t 
variante e retornar à uma variável y o valor de seno passando como parâmetro a 
própria variável t: 
 
t = linspace (0, 10, 70); %criação do vetor tempo 
y = sin(t); %função seno em relação ao tempo 
 
stem (t, y); %plotagem do gráfico tempo discreto 
 
 
Gráfico 4: sinal seno contínuo. 
 
De posse do conhecimento em relação à criação de um sinal, tanto discreto como 
contínuo, após a criação da função seno, efetuamos algumas operações de sinais. 
Inicialmente, realizamos a seguinte operação proposta pelo professor: 
 
 ( ) ( ) ( ) 
 
Implementando o algoritmo para que o sinal z(t) seja criado, obtêm-se: 
t = linspace(0,20,1000); %criação do vetor tempo 
z = exp((-0.3)*t).*(sin(3*t)); %multiplicação dos sinais 
 
plot (t, z); %criação do gráfico no tempo contínuo 
 
A partir do comando plot, o algoritmo acima retorna, de forma gráfica, o resultado 
da operação realizada entre os sinais: 
 
 
Gráfico 5: Multiplicação sinal exponencial e sinal seno 
 
Pode-se ainda, declarar duas variáveis, cada uma responsável por um sinal 
envolvido na operação, assim temos que: 
 
t=linspace(0,20,1000); %criação vetor tempo 
a=exp((-0.3)*t); %criação sinal exponencial 
b=sin(3*t); %criação sinal seno 
 
c=a.*b; %operação de multiplicação dos sinais 
 
plot (t, c); %geração do gráfico 
plot (t, c, t, a); 
plot (t, c, t, a, t, b, t, -a); 
 
Note que ao criar as variáveis separadamente para cada sinal, podemos utilizar o 
valor de cada uma, podendo efetuar outros tipo de operações, tais como soma, 
subtração, divisão, etc. Assim como podemos manipular as variáveis, é possível 
também criar gráficos de cada um dos sinais. 
Logo, podemos criar o gráfico contendo todos os sinais, tanto os sinais de entrada, 
como o sinal de saída do algoritmo apresentado logo acima. 
 
Gráfico 6: Apresentação de todos os sinais na operação de multiplicação. 
 
 
2. Introdução à convolução 
 
2.1. Integral de Convolução 
Sempre que existirem transformações lineares e invariantes de um determinado 
sinal, pode-se falar em convolução, ou seja, um sinal ao passar por um dispositivo 
qualquer, vai certamente sofrer uma transformação e é a essa transformação que 
chamamos de convolução. 
Sejam x(t) o sinal de entrada e h(t) é a resposta do sistema H ao sinal x(t), duas 
funções nulas para x<0. A convolução dessas duas funções x(t) e h(t) serão 
representadas pela notação x(t) *h(t) e é definida, no caso unidimensional, pela 
integral: 
 
 ( ) ∑ ( ) ( ) ∫ ( ) ( ) 
 
 
 1 
 
ou ainda: 
 
 ( ) ∫ ( )
 
 
 ( ) ( ) ( ) 2 
 
2.2. Propriedade comutativa 
A operação convolução é comutativa. Ou seja, x1(t) * x2(t) = x2(t) * x1(t). Essa 
propriedade pode ser provada pela mudança de variável. Fazendo z = t – e d = - dz, 
têm-se: 
 
 ( ) ( ) ∫ ( ) ( ) 
 
 
 
 ∫ ( ) ( ) 
 
 
 
 ( ) ( ) 3 
 
 
2.3. Propriedade distributiva 
Conforme a propriedade distributiva, têm-se que: 
 
 ( ) [ ( ) ( )] ( ) ( ) ( ) ( ) 4 
 
2.4. Propriedade associativa 
De acordo com a propriedade associativa, 
 
 ( ) [ ( ) ( )] [ ( ) ( )] ( ) 5 
 
As provas das equações 4 e 5 seguem diretamente da definição da integral de 
convolução. 
 
2.5. Propriedade de deslocamento 
 
Se 
 
 ( ) ( ) ( ) 6 
 
então, 
 
 ( ) ( ) ( ) ( ) ( ) 6.1 
 
e 
 
 ( ) ( ) ( ) 6.2 
 
Como prova, temos que: 
 
 ( ) ( ) ∫ ( )
 
 
 ( ) ( ) 7 
 
logo, 
 
 ( ) ( ) ∫ ( ) ( )
 
 
 ( ) 8 
 
2.6. Convolução com impulso 
 
A convolução de uma função x(t) de impulso unitário resulta na própria função x(t). 
Pela definição da convolução: 
 
 ( ) ( ) ∫ ( )
 
 
 ( ) 9 
 
Como ( ) é um impulso localizado em , de acordo com a propriedade de 
amostragem do impulso, a integral da equação 9 é o valor de x( ) para , ou seja, 
x(t). Portanto: 
 
 ( ) ( ) ( ) 10 
2.7. Propriedade da largura 
Se a duração (largura) de x1(t) e x2(t) forem finitas, dadas por T1 e T2, 
respectivamente, então a duração (largura) de x1(t) * x2(t), será T1 + T2: 
 
 
Figura 1: Propriedade da largura. 
 
 
2.8. Resposta de estado nulo e causalidade 
 
A resposta (de estado nulo) y(t) é um sistema LCIT é 
 
 ( ) ( ) ( ) ∫ ( ) ( )
 
 
 11 
 
Na determinação da equação 11, consideramos o sistema linear e invariante no 
tempo. Não houve outras restrições sobre o sistema ou o sinal de entrada x(t). Na 
pratica, a maioria dos sistemas e causal, de forma que suas respostas não podem 
começar antes da entrada. Além disso, a maioria das entradas também são causais, o 
que significa que elas começam em t = 0. 
A restrição de causalidade tanto dos sinais quanto dos sistemas simplifica ainda 
mais os limites da integração da equação 11. Pela definição, a resposta de um sistema 
causal não pode começar antes da entrada começar. Consequentemente, a resposta 
de um sinal causal ao impulso unitário ( ) (o qual esta localizado em t = 0) não pode 
começar antes de t = 0. Portanto, a resposta h(t) ao impulso unitário de um sistema 
causal é um sinal causal. 
É importante lembrar que a integração na equação 11 é executada com relação a 
(e não t). Se a entrada x(t) é causal, x(t) = 0 para t < 0. Portanto, x( ) = 0 para < 0, 
como mostrado a Figura 2a. Portanto, o produto x( ) h(t – ) = 0 em todo lugar exceto 
sobre o intervalo não sombreado 0 t mostrado na Figura 2a (presumindo t 0). 
Observe que se t for negativo, x( ) h(t – ) = 0 para todo como mostrado na Figura 
2b. Logo, a equação 11 se reduz a: 
 
 ( ) {
 ( ) ( ) ∫ ( ) ( ) 
 
 
 
 
 12 
 
O limite inferior da integração da equação 12 é considerado como sendo 0- para 
evitar a dificuldade da integração que podemos ter se x(t) contiver um impulso na 
origem. Esse resultado mostra que se x(t) e h(t) são ambos causais, a resposta y(t) 
também será causal. 
 
 
 
Por causa da propriedade cumulativa da convolução, também podemos expressar 
a equação 12, como: 
 
 ( ) {∫ 
( ) ( ) 
 
 
 
 
 13 
 
Daqui por diante, o limite inferior de 0- será deduzido mesmo quando o 
escrevermos como 0. Como na equação 13, esse resultado presume que a entrada e o 
sistema são causais. 
 
 
Figura 2: Resposta de estado nulo e causalidade. 
 
 
2.9. Implementação e resultados 
 
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 
% Sistemas Lineares – Convolução % 
% Autor: Luis Felipe Benedito % 
% Data 24/04/2012 % 
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 
 
%% Definicao Iniciais 
N=50; 
n=0:N-1; 
 
%% Definicao do sinal de entrada 
x=[0 1 1 1 1 zeros(1,N-5)]; 
subplot(311); 
stem(n,x) 
 
%% Definicao do resposta ao Impulso 
h=[1 2 1 zeros(1,N-3)]; 
subplot(312); 
stem(n,h) 
 
%% operacoes com sinal 
y=zeros(1,N); 
for n=1:N 
 for k=1:N 
 if k<n 
 y(n)=y(n)+x(k)*h(n-k); %convolução dos sinais 
 end 
 end 
end 
 
n=0:N-1; 
subplot(313) 
stem(n, [y(2:N) 0]) 
 
 
Note que inicialmente definimos uma variável contador n para controlarmos o 
numero de convolução desejadas. Logo, como n inicia-se em zero, esta recebe um 
incremento para que o número de convolução realmente seja 50 como definido pela 
variável constante N. 
Após determinar o número de convolução, são criados os sinais de entrada. Após a 
criação dos mesmos, é realizada as operações necessárias para a convolução definida 
no interior do loop. 
Posteriormente as operações de convolução serem realizadas pelo algoritmo, o 
software retorna os gráficos dos três sinais, tando os de entrada como os de saída para 
análise: 
 
 
Gráfico 7: Convolução de sinais. 
 
 
Analisando os resultados gráficos apresentados pelo software, nota-se que os 
resultados são aceitáveis, já que teoricamente os resultados seriam próximos dos 
encontrados. 
Para complementar o conhecimento sobre sinais, foi sugerido a construção de um 
algoritmo que fosse capaz de representar um triangulo equilátero sabendo que os 
sinais podem ser representados por somas de senoides ou rampas. 
Inicialmente, definimos os pontos onde uma função e outra começava e terminava 
através de condições definidas no interior de uma estrutura repetitiva (loop): 
 
 
 
 
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 
% Sistemas Lineares % 
% Autor: Luis Felipe Benedito % 
% Data: 04/04/2012 % 
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 
clear; 
close all; 
 
%% Declaracao das variaveis 
 
t=linspace(1,10,50) %criação vetor tempo 
po=2; %ponto inicial da rampa 
pf=8; %ponto final da rampa 
pm=((pf-po)/2)+2; %ponto em que a rampa assume o maior valor 
 
%% Criacao do Sinal 
 
for k=1:length(t) 
 if (t(k)>po)&(t(k)<=pm) %condicao para sinal crescente começar 
 x(k)=2*(t(k)-2); %sinal crescente 
 end 
 if (t(k)>pm)&(t(k)<pf) %condicao para sinal decrescente começar 
 x(k)=-2*(t(k)-8); %sinal decrescente 
 end 
 if t(k)>pf %condicao para sinal se anular 
 x(k)=0; %sinal nulo, x=0. 
 end 
end 
 
%% Plotagem do Sinal 
 
figure 
subplot(311); 
plot (t, x) 
subplot(312); 
stem (t, x) 
 
%% Encerra o Programa 
disp('Grafico Finalizado') 
 
Note no algoritmo que, enquanto o valor do vetor tempo t(k) definido no início é 
menor que o ponto inicial po, o valor do sinal é zero, porém, imediatamente quando o 
vetor tempo se torna maiorque o ponto inicial a rampa ascendente começa a ser 
criada até que o vetor tempo assuma um valor imediatamente maior que o ponto 
médio pm criando assim outra rampa, mas com característica descendente, tendo seu 
fim quando o vetor tempo passa a ser maior que o ponto final pf do triangulo 
assumindo um sinal constante de valor zero até o tamanho do vetor definido pela 
função linspace. 
Pode verificar a característica do sinal formado conforme o gráfico abaixo: 
 
 
Gráfico 8: Manipulação dos sinais para formação do sinal representado pelo triangulo equilátero. 
 
Computacionalmente, todos os sinais processados são representados por amostras 
periódicas do sinal, ou seja, de forma discreta. Mesmo os sinais contínuos mostrados 
em displays não deixam de ser discretos uma vez que ao aumentarmos o zoom sobre o 
sinal vê-se uma certa descontinuidade do sinal, portanto torna-se um sinal discreto. 
O sinal contínuo nada mais é do que um sinal discreto com frequência de 
amostragem tão grande que torna-se imperceptível à visão dessas descontinuidades 
do sinal amostrado. 
 
3. Referências 
[1] HAYKIN, Simon; VAN VEEN, Barry. Sinais e sistemas. Porto Alegre: Bookman, 2001. 
 
[2] LATHI, B. P. Sinais e sistemas lineares. 2. ed. Porto Alegre, RS: Bookman, 2007. 
 
[3] OGATA, Katsuhiko. Projetos de sistemas lineares de controle com MATLAB. Rio de 
Janeiro: Prentice-Hall, 1996. 
 
[4] Disponível em <http://ensino.univates.br/~chaet/Materiais/CURSOmatlab52.pdf>. 
Acessado em 20/10/2012. 
 
[5] Disponível em <http://www.mathworks.com/index.html>. Acessado em 
20/10/2012.