You are on page 1of 14

Processamento Digital de Sinais – Aula 05 – Professor Marcio Eisencraft – fevereiro 2012

Aula 05 - Sistemas de tempo discreto

Classificação
Bibliografia
OPPENHEIM, A.V.; WILLSKY, A. S. Sinais e Sistemas, 2a edição, Pearson, 2010. ISBN 9788576055044.
Páginas 25-36.
HAYKIN, S. S.; VAN VEEN, B. Sinais e sistemas, Bookman, 2001. ISBN 8573077417. Páginas 59-70.

2. Sistemas de tempo discreto no domínio do tempo

2.1 Sistema de tempo discreto

Em aulas passadas já foi discutido o conceito de sistema. Foi visto que um


sistema é uma interconexão de operações que transforma um sinal de entrada
em um sinal de saída. Neste curso, abordam-se particularmente os sistemas
em que os sinais são de tempo discreto. Estes sistemas são chamados de sis-
temas de tempo discreto.

• Matematicamente, se expressa um sistema por um operador. Por exemplo,


para dizer que um sinal y[n] é a saída de um sistema H cuja entrada é x[n] es-
creve-se:

y  n  = H  x  n  
Em diagrama de blocos:

x[n] y[n]
H

Exercícios

1. (LATHI, 2007; p. 295) A média móvel é usada para detectar a tendência de


uma variável que flutua muito rapidamente como as médias do mercado de
ações. Uma variável pode flutuar (para cima ou para baixo) diariamente,
mascarando a sua tendência de longo prazo.

1
Processamento Digital de Sinais – Aula 05 – Professor Marcio Eisencraft – fevereiro 2012

Podemos obter a tendência de longo prazo suavizando ou tomando a mé-


dia dos N últimos valores da variável. Para o mercado de ações, podemos con-
siderar uma média móvel de 3 dias y[n] como sendo a média dos valores de fe-
chamento do mercado de ações dos últimos três dias, x[n] , x[n − 1] e x[n − 2] .

(a) Escreva a equação de diferenças relacionando y[n] com a entrada x[n] .

(b) Usando elementos de atraso, faça um diagrama de blocos deste filtro de mé-
dia móvel.

2. (LATHI, 2007; p. 297) Resolva a seguinte equação iterativamente (primeiros


três termos apenas):

y[n] − 0,6 y[n − 1] − 0,16 y[n − 2] = 0 com y[− 1] = 25 , y[− 2] = 0 .

3. (LATHI, 2007; p. 297) Resolva a seguinte equação iterativamente (primeiros


três termos apenas):

y[n + 2] + 3 y[n + 1] + 2 y[n] = x[n + 2] + 3x[n + 1] + 3x[n]

com x[n] = 3 n u[n], y[-1] = 3 e y[-2] = 2 .

4. (LATHI, 2007; p. 295) A saída de uma caixa registradora y[n] representa o


preço total de n itens passados pela caixa. A entrada x[n] é o preço do n -
ésimo item.

(a) Escreva a equação de diferenças relacionando y[n] a x[n] .

(b) Esquematize a realização deste sistema usando APENAS UM elemento de


atraso.

2
Processamento Digital de Sinais – Aula 05 – Professor Marcio Eisencraft – fevereiro 2012

2.1.1 Classificação de sistemas

2.1.1.1 Memória

• Diz-se que um sistema possui memória se sua saída depende de valores pas-
sados ou futuros do sinal de entrada. A extensão temporal de valores passados
dos quais a saída depende define quão longe a memória se estende no passado.

• Em contrapartida, diz-se que um sistema é sem memória se seu sinal de saída


depende somente do valor presente do sinal de entrada.

• Por exemplo, o sistema de média móvel do Exercício 1 descrito pela relação


entrada-saída:

y[n] =
1
(x[n] + x[n − 1] + x[n − 2])
3

tem memória, uma vez que o valor do sinal de saída y[n] no instante n depende
do valor atual e de dois valores passados do sinal de entrada x[n] .

• Por outro lado, um sistema descrito pela relação:

y[n ] = x 2 [n ]

é sem memória uma vez que o valor do sinal de saída y[n] no tempo n depende
apenas do valor atual do sinal de entrada x[n] .

2.1.1.2 Causalidade

• Diz-se que um sistema é causal se o valor atual do sinal de saída depender


somente dos valores presentes e/ou passados do sinal de entrada. Em contrapar-
tida, o sinal de saída de um sistema não causal depende de valores futuros do
sinal de entrada.

• Por exemplo, o sistema de média móvel já descrito,

3
Processamento Digital de Sinais – Aula 05 – Professor Marcio Eisencraft – fevereiro 2012

y[n] =
1
(x[n] + x[n − 1] + x[n − 2])
3

é causal. Por outro lado, o sistema de média móvel descrito por:

y[n] =
1
(x[n + 1] + x[n] + x[n − 1])
3

é não causal uma vez que o sinal de saída y[n] depende de um valor futuro do
sinal de entrada, a saber, x[n + 1] .

2.1.1.3 Invariância no tempo

• Diz-se que um sistema é invariante no tempo se um retardo de tempo ou


avanço de tempo do sinal de entrada levar a um deslocamento idêntico no sinal
de saída. Isto implica que um sistema invariante no tempo reage de maneira
idêntica, não importa quando o sinal de entrada seja aplicado. Dizendo com ou-
tras palavras, as características de um sistema invariante no tempo não se modi-
ficam com o tempo. Caso contrário, diz-se que o sistema é variante no tempo.

• Por exemplo, o sistema y[n] = 2 x[n − 1] é invariante no tempo. Já o sistema


y[n ] = r n x(n ) é variante no tempo.

2.1.1.4 Linearidade

• Dizemos que um sistema é linear quando são válidos os princípios da super-


posição e da homogeneidade explicados a seguir. Caso contrário, o sistema é
chamado não linear.

4
Processamento Digital de Sinais – Aula 05 – Professor Marcio Eisencraft – fevereiro 2012

A. Princípio da superposição

Seja um sistema y[n] = H [x[n]] e sejam y1 [n] a resposta à entrada x1 [n] e y 2 [n] a
resposta à entrada x2 [n]. Um sistema satisfaz o princípio da superposição se,
quando aplicamos a ele a entrada x S [n] = x1 [n] + x 2 [n] sua saída é y S = y1 [n] + y 2 [n].

B. Princípio da homogeneidade

Seja um sistema y[n] = H [x[n]] e seja y1 [n] a resposta à entrada x1 [n] . Um sistema
satisfaz ao princípio da homogeneidade se quando aplicamos a ele a entrada
x H [n] = ax1 [n] , a ∈ R * , sua saída é y H [n] = ay1 [n] .

• Assim, para verificar se um sistema é linear é necessário testar as duas condi-


ções acima.

Exercícios

5. (1021) Um sistema linear e invariante no tempo tem a seguinte resposta à


entrada x[n] = δ [n] (resposta ao impulso):

Faça um esboço da saída y[n] deste sistema quando a entrada é:


(a) x[n] = 3δ [n]
(b) x[n] = δ [n − 2]
(c) x[n] = 2δ [n] + 0,5δ [n − 1]

5
Processamento Digital de Sinais – Aula 05 – Professor Marcio Eisencraft – fevereiro 2012

6. (1031) Um sistema de tempo discreto é definido pela seguinte equação de


diferenças:
y[n] = x[n](1 − x[n − 1])

(a) Este sistema é causal? Justifique.


(b) Este sistema tem memória? Justifique.
(c) Este sistema é linear? Justifique.
(d) Este sistema é invariante no tempo? Justifique.
(e) Determine iterativamente a resposta ao degrau deste sistema ( x[n] = u[n] ) para
0 ≤ n ≤ 5.

(f) Repita o item (e) para x[n] = u[n − 2]. .


(g) Repita o item (e) para x[n] = 3u[n].
Resp: (f) y[n] = {0; 0; 1; 0; 0; 0}, 0 ≤ n ≤ 5 ; (g) y[n] = {3; − 6; − 6; − 6; − 6; − 6}, 0 ≤ n ≤ 5

L2 - Sequências e equações de diferenças

L.2.1 Geração de Sinais Discretos (Sequências de Números)


Um sinal discreto é representado matematicamente como sequências de núme-
ros.
A sequência de números x , no qual o n -ésimo número é denotado por x[n] , é
representada por x = {x[n]}.
Segue-se um exemplo de como definir um sinal de tempo discreto usando o Ma-
tlab®.
a- Definir as variáveis (como o vetor de índices de tempo {n})
>> nn = 0:30; % vetor de índice de tempo com 31 pontos
%com intervalo inteiro = 1
b- Definir a função matemática que representa a sequência
>> seno = sin(nn/2+1)
c- Usa-se para apresentar graficamente sinais discretos a função stem
>> stem(nn,seno)

6
Processamento Digital de Sinais – Aula 05 – Professor Marcio Eisencraft – fevereiro 2012

L.2.1.1 Sinal impulso


Vejamos agora como representar um impulso de tempo discreto δ [n] no Ma-
tlab®. Como se definiu na aula anterior,
1, n = 0
δ [n] =  e
0, n ≠ 0

1, n = n0
δ [n − n0 ] = 
0, n ≠ n0

Exemplo 1
A seguinte sequência de comandos gera um impulso δ [n] para 0 ≤ n ≤ 30 .
>> clear
>> npontos = 31;
>> nn = 0:(npontos-1);
>> imp = zeros(npontos,1);
>> imp(1) = 1;
>> stem(nn,imp);
>> title('Sinal amostrado')
>> xlabel('Amostras no tempo')
>> ylabel('Amplitude')

Uma sequência pode ser formada por uma soma de impulsos ponderados deslo-
cados.

Exemplo 2
Gere o sinal x1[n] definido por x1[n] = 0,9δ [n − 5] , 0 ≤ n ≤ 19 .
clear
7
Processamento Digital de Sinais – Aula 05 – Professor Marcio Eisencraft – fevereiro 2012

npontos = 20;
nn = 0:npontos-1;
x1 = zeros(npontos,1);
x1(6) = 1*0.9;
stem(nn,x1);
title('Sinal X1 amostrado')
xlabel('Amostras no tempo')
ylabel('Amplitude')
grid

L.2.1.2 O sinal senoidal


A função cosseno é geralmente descrita por quatro parâmetros: amplitude, fre-
quência, instantes em que se deseja calcular seu valor e fase.
x[n] = A cos(ω 0 n + φ )

A seguinte função implementa a função x[n] = A cos(ω 0 n + φ ) no Matlab®.


function [x]=calccos(a,w,n,f);
% calcula o cosseno dados os parâmetros
% amplitude, frequência angular, vetor de intervalos
do tempo, e fase
x=a*cos(w*n+f);

8
Processamento Digital de Sinais – Aula 05 – Professor Marcio Eisencraft – fevereiro 2012

Exemplo 3
π
A seguir, a função descrita é utilizada para gerar o sinal x[n] = cos 
n  para
 17 
0 ≤ n ≤ 25 .
clear
a = 1;
w = pi/17;
fase = 0;
nn = 0:25;
x1=calccos(a,w,nn,fase);
stem(nn,x1);
title('Sinal Co-seno X1 amostrado')
xlabel('Amostras no tempo');
ylabel('Amplitude');
grid

L.2.1.3 O sinal degrau unitário


Viu-se também na aula passada que o sinal degrau unitário é definido por
1, se n ≥ 0
u[n] = 
0, se n < 0
A seguinte função pode ser usada para gerar sinais degraus
function [x,n]=step1(n0,n1,n2);
9
Processamento Digital de Sinais – Aula 05 – Professor Marcio Eisencraft – fevereiro 2012

% gera degrau quando x[n]=u[n-n0]; n1<=n<=n2


n = [n1:n2];
x =[(n-n0)>=0];

Exemplo 4
Como exemplo de sua utilização, a seguinte sequência de comandos gera um
sinal rampa x1[n] = nu[n] para 0 ≤ n ≤ 20 .
clear
n = [0:20]
x1 = n.*(step1(0,0,20))
stem(n,x1);
title('Sinal X1')
xlabel('Amostras no tempo')
ylabel('Amplitude')
grid

L.2.2 Equações de diferença lineares com coeficientes constantes


As equações de diferença lineares com coeficientes constantes são de extrema
importância para o processamento digital de sinais.
Os filtros digitais podem ser e são geralmente descritos por equações de diferen-
ça lineares com coeficientes constantes.
Os processadores digitais (DSP) possuem instruções para essas equações, para
mapeamento delas dentro de um programa.
10
Processamento Digital de Sinais – Aula 05 – Professor Marcio Eisencraft – fevereiro 2012

Uma equação de diferenças genérica pode ser descrita como


N M

∑ a y[n − k ] = ∑ b x[n − k ]
k =0
k
k =0
k

em que N é a ordem do sistema.


Utiliza-se a função filter do Matlab® para se obter a resposta de um sistema
quando aplicada uma excitação.
Por exemplo, para a equação:
y[n] + 0,9 y[n − 2] = 0,3x[n] + 0,6 x[n − 1] + 0,3x[n − 2]

em que x[n] é o sinal de entrada e y[n] é o sinal de saída,


pb=[0.3 0.6 0.3]; %coeficientes (b)
pa=[1 0 0.9]; %coeficientes (a)
y=filter(pb,pa,x); %Y = resposta do sistema quando aplicado uma excitação X

Exemplo 5
O seguinte programa calcula y[n] para a equação de diferenças
y[n] + 0,9 y[n − 2] = 0,3x[n] + 0,6 x[n − 1] + 0,3x[n − 2]

quando x[n] = δ [n] e 0 ≤ n ≤ 128 .


clf reset
n=0:128;
comprimento=max(size(n));
pb=[0.3 0.6 0.3];
pa=[1 0 0.9];
x = zeros(comprimento,1);
x(1) = 1;
y=filter(pb,pa,x);
stem(n(1:100),y(1:100));
title('Resultado')
xlabel('Indice (n)')
grid;

11
Processamento Digital de Sinais – Aula 05 – Professor Marcio Eisencraft – fevereiro 2012

L.2.3 Estabilidade de um sistema descrito por equações de diferença linea-


res com coeficientes constantes
Para verificar a estabilidade de um sistema descrito por equações de diferenças
lineares, aplica-se um impulso x[n] = δ [n] como entrada e verifica-se se sua saída
y[n] = h[n] obedece:

∑ h[n] → finito
n =0

Utiliza-se aqui a função sum(abs(h)) do Matlab® para verificar a somatória


da equação acima.

Exemplo 6
Verificar a estabilidade do sistema descrito pela equação de diferenças
y[n] + 0,9 y[n − 2] = 0,3x[n] + 0,6 x[n − 1] + 0,3x[n − 2]

clf reset
n=0:128;
npontos=max(size(n));
pb=[0.3 0.6 0.3];
pa=[1 0 0.9];
x = zeros(npontos,1);
x(1) = 1;
y=filter(pb,pa,x);
sum(abs(y))

12
Processamento Digital de Sinais – Aula 05 – Professor Marcio Eisencraft – fevereiro 2012

Rode a sequência de comandos acima, use comprimentos diferentes para n e


verifique se o sistema é estável ou não.

Exercícios
1. Gere e faça o gráfico de cada uma das seguintes sequências sobre seus res-
pectivos intervalos.
(a) x[n] = 2δ [n − 2] − δ [n − 4] , − 5 ≤ n ≤ 5
COMANDOS:

(b) x[n] = n{u[n] − u[n − 10]} + 10e −0,3[n −10 ] {u[n − 10] − u[n − 20]} , 0 ≤ n ≤ 20
COMANDOS:

2. Obtenha as respostas dos seguintes sistemas quando excitados com impulso


unitário e degrau unitário. Verifique também se o sistema e estável.
(a) y[n] = 2 y[n − 2] + x[n] , − 20 ≤ n ≤ 120
COMANDOS E RESPOSTA:

(b) y[n] = y[n − 1] − y[n − 10] + x[n], 0 ≤ n ≤ 200


COMANDOS E RESPOSTA:

3. (INGLE; PROAKIS, 2007, p. 39) Um diferenciador digital “simples” é dado


por:
y[n] = x[n] − x[n − 1]

13
Processamento Digital de Sinais – Aula 05 – Professor Marcio Eisencraft – fevereiro 2012

que computa a diferença de primeira ordem para trás da sequência de entrada.


Escreva comandos Matlab® que programem este diferenciador para as seguintes
sequências de entrada e faça gráficos dos resultados. Entregue os comandos e
gráficos obtidos.
(a) x[n] = 5[u[n] − u[n − 20]] : um pulso retangular
(b) x[n] = n(u[n] − u[n − 10]) + (20 − n )[u (n − 10) − u (n − 20)] : um pulso triangular
πn 
(c) x[n] = sin (u[n] − u[n − 100]) : um pulso senoidal
 25 

14