Você está na página 1de 9

FACULDADE DE CIÊNCIA E TECNOLOGIA DE MONTES CLAROS

SINAIS E SISTEMAS

CONVOLUÇÃO

MARCOS FELIPE SOARES SANTOS

ENGENHARIA DE CONTROLE E AUTOMAÇÃO

RENATO DOURADO

Montes Claros
27 de maio de 2019

1
Sumário
1 CONVOLUÇÃO 3

2 OBJETIVO 3

3 BIBLIOTECAS E FUNÇÕES EM PYTHON 3

4 CÓDIGO FONTE 4
4.1 Biblioteca . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
4.2 Sinais . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
4.3 Tamanho do sinal da saı́da . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
4.4 Realização do somatório de convolução . . . . . . . . . . . . . . . . . . . . 4
4.5 Gráficos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5

5 GRÁFICOS DOS SINAIS 6


5.1 Gráfico do Sinal de entrada . . . . . . . . . . . . . . . . . . . . . . . . . . 6
5.2 Gráfico da resposa ao impulso . . . . . . . . . . . . . . . . . . . . . . . . . 6
5.3 Gráfico da resposa ao impulso . . . . . . . . . . . . . . . . . . . . . . . . . 7

6 DIFICULDADES E AJUDAS 7

7 CONCLUSÃO 7

8 REFERÊNCIAS BIBLIOGRÁFICAS 9

2
1 CONVOLUÇÃO

A convolução é a representação matemática de como um sistema linear opera sobre um


sinal: o sinal de saı́da é o resultado da convolução do sinal de entrada x[n] com a
resposta a impulso do sistema h[n].

y [n]=x [n ]h[n]

Se dois sistemas são diferentes de alguma forma, eles irão ter respostas a impulso
diferentes.

Assim, a resposta a impulso caracteriza completamente um sistema.

2 OBJETIVO
O trabalho que tem como objetivo, pegar dois sinais: um de entrada e outro para a
resposta ao impulso.

Com esses sinais realizar a convolução, para obter o sinal de saı́da.

Para isso, utilizo a ferramenta python e os recursos que ela pode oferecer para esse
desenvolvimento.

3 BIBLIOTECAS E FUNÇÕES EM PYTHON

Biblioteca Numpy utilizada na computação cientifica. Com ela podemos criar :


arrays, funções e realizar alguns cálculos matemáticos, como álgebra linear.

Biblioteca Matplotlib, com ela podemos desenvolver gráficos 2D, com eixo x e y.

3
4 CÓDIGO FONTE

4.1 Biblioteca
Utilizei duas bibliotecas para realização do programa: numpy e matplolib. A numpy
para desenvolver arrays e a matplolib para montar os gráficos.

1 import numpy a s np
import m a t p l o t l i b . p y p l o t a s p l t

4.2 Sinais
Sinais para realizar a convolução. x[n] e h[n].

x = np . a r r a y ( [ 1 , 2 , 3 , 2 ] )
2 h= np . a r r a y ( [ 2 , 1 ] )

4.3 Tamanho do sinal da saı́da


Pego o tamanho da x e do h. Somo e subtraio por 1. Realizo isso para saber o tamanho
que o sinal da saı́da irá ter.

contr = len (x) + len (h) − 1

4.4 Realização do somatório de convolução


Para realizar o somatório, utilizo 3 for. O primeiro fixo na coluna, os demais utilizo para
percorrer a linha do sinal de entrada e a resposta ao impulso.

Quando começa a percorrer a linha da entrada e da resposta ao impulso, os valores de n,


i e k receberão o valor 0.

Como no primeiro momento as variáveis valem 0 e a soma entre i e k, valem 0. Esses


valores serão adicionado no array. A cada mudança, verifica-se se a condição entre i + k

4
é igual a j. Caso seja, soma com o valor já armazenado quando começou o processo, ou
seja quando os valores i, k e j eram 0.

Está operação é realiza até o J atingir o tamanho do sinal de sinal, ou seja, quando
contr atingir 5, nesse caso especifico.

1 f o r j in range (0 , contr ) :
f o r i in range (0 , len (h) ) :
3 f o r k in range (0 , len ( x ) ) :
n = i + k
5 i f i+k==j :
y[n] = y[n] + h[ i ] ∗ x[k]

4.5 Gráficos
Utilizo os recursos da biblioteca matplolib para mostra e realizar a conversão dos
gráficos.

Ex :

plt . stem ( x )
2 plt . t i t l e ( ” Entrada ” )
plt . xlabel ( ’n ’ )
4 plt . ylabel ( ’x [n] ’ )
plt . show ( )

1 plt . stem ( h )
plt . t i t l e ( ” Resposta ao i m p u l s o ” )
3 plt . xlabel ( ’n ’ )
plt . ylabel ( ’h [ n ] ’ )
5 plt . show ( )

1 plt . stem ( x )
plt . t i t l e ( ” S i n a l de S a i d a ” )
3 plt . xlabel ( ’n ’ )
plt . ylabel ( ’y [n] ’ )
5 plt . show ( )

5
5 GRÁFICOS DOS SINAIS
5.1 Gráfico do Sinal de entrada

Figura 1: Sinal de entrada

5.2 Gráfico da resposa ao impulso

Figura 2: Sinal da resposta ao impulso

6
5.3 Gráfico da resposa ao impulso

Figura 3: Sinal da saı́da

6 DIFICULDADES E AJUDAS
Para a realização do trabalho tive bastante dificuldades em como transformar o processo
de convolução em código.

Então para solucionar este problema, com a ajuda de dois colegas de turma, Harry
Anderson e Hericles Freire Soares, chegamos a conclusão que era preciso utilizar 3 for
para resolver o problema, além de outros recursos da linguagem python, como a função
len, para determinar o tamanho que o sinal de saı́da irá ter.

Além disso, vı́deos e alguns PDF, auxiliaram no processo da realização do trabalho.

7 CONCLUSÃO
O desenvolvimento do trabalho possibilitou uma analise de como é feito o processo da
convolução. Além disso possibilitou utilizar novos recursos da linguagem python.

De modo geral, os resultados foram satisfatório. Onde podemos observar que se


conhecemos a resposta ao impulso de um sistema, podemos calcular a resposta ao

7
impulso de qualquer sistema.

As bibliotecas numpy e matplotlib, ajudaram a desenvolver os gráficos e funções para a


realização do trabalho.

Além dos recursos len, e da estrutura de repetição FOR, que auxiliaram para que
pudéssemos fazer a interpretação da saı́da.

O grupo de estudo, ajudou a tirar dúvidas, desevolver e aprender novos recursos que a
linguagem python pode oferecer.

Contudo, pesquisando e com auxilio de alguns colegas, permitiram que pudéssemos


desenvolver e calcular a convolução. Para determinar a saı́da de um sinal quando temos
a entrada e a resposta ao impulso.

8
8 REFERÊNCIAS BIBLIOGRÁFICAS
HAYKIN,Simon; VAN VEEN,Barry. Sinais e Sistemas:2.ed.Bookman.

Numpy Array. Disponı́venl em:


(http://pyscience-brasil.wikidot.com/docitem:numpy-array).Acesso em:01 maio 2018.

https://www.inatel.br/docentes/ynoguti/downloads-arquivos/dsp-s886637-1/18-
convolucao-s104246-1.

https://www.youtube.com/watch?v=jivpsuuSuSM

Grupo de estudos : Harry Anderson e Hericles Freire Soares