Você está na página 1de 4

Ministério da Educação

Universidade Tecnológica Federal do Paraná


PR
UNIVERSIDADE TECNOLÓGICA FEDERAL DO PARANÁ

Sinais e Sistemas Discretos


Experimento 01: Sinais Básicos e Operações Elementares

Alunos:

Objetivos
Neste experimento você trabalhará com a representação no MATLAB de alguns sinais
básicos e com a implementação de algumas operações elementares de sinais.

Referências
1. A. V. Oppenheim, A. S. Willsky, S. H. Nawab, Signals and Systems, 2nd Ed., Prentice-Hall, 1996.
2. V. K. Ingle, J. G. Proakis, Digital Signal Processing using MATLAB, Brooks/Cole, 2000.

Importante
O diretório PWS_DSP, do toolbox indicado pelo professor, deve fazer parte do caminho
padrão (path) do Matlab. O caminho padrão pode ser alterado em ‘file’, ‘set path’.

Procedimento
Um sinal discreto pode ser representado por uma seqüência de números. No MATLAB
podemos representar seqüências finitas através de vetores linha. Entretanto, tal vetor não
traz nenhuma informação quanto à posição da seqüência. Por isso, a representação de x[n]
requer dois vetores, um para x e outro para n. Por exemplo:
>> n=[-3,-2,-1,0,1,2,3,4]; x=[2,1,-1,0,1,4,3,7];
Em geral, não utilizaremos um vetor de instantes n apenas nos casos onde esta informação
é irrelevante.
Sinais Básicos
O impulso unitário é definido como:
1, n = n0
δ [n − n0 ] = 
0, n ≠ n0
Sendo n1 ≤ n0 ≤ n2 , podemos usar a seguinte função, presente no toolbox, para representar
o impulso unitário deslocado:
function [x,n]=impseq(n0,n1,n2)
% [x,n]=impseq(n0,n1,n2)
%
n=[n1:n2]; x=[(n-n0)==0];

O degrau unitário é definido como:


1, n ≥ n0
u[n − n0 ] = 
0, n < n0

Sendo n1 ≤ n0 ≤ n2 , podemos usar a seguinte função, também presente no toolbox, para


representar o degrau unitário deslocado:
function [x,n] = stepseq(n0,n1,n2)
% [x,n] = stepseq(n0,n1,n2)
%
if ((n0 < n1) | (n0 > n2) | (n1 > n2))
error('arguments must satisfy n1 <= n0 <= n2')
end
n = [n1:n2];
x = [(n-n0) >= 0];

Uma exponencial real como x[n ] = 0.9 n , onde 0 ≤ n ≤ 10 , pode ser representada em
MATLAB por:
>>n=[0:10]; x=(0.9).^n;

Uma exponencial complexa como x[n ] = e(2+ j 3)n , 0 ≤ n ≤ 10 , pode ser representada em
MATLAB por:
>>n=[0:10]; x=exp((2+3j)*n);

Por sua vez, um sinal senoidal como x[n] = 3 cos(0.1πn + π / 3) + 2 sin (0.5πn ) , 0 ≤ n ≤ 10 ,
pode ser reproduzido no MATLAB como:
>>n=[0:10]; x=3*cos(0.1*pi*n+pi/3)+2*sin(0.5*pi*n);
Operações Elementares
As operações de adição, multiplicação, deslocamento e reflexão de sinais podem ser
feitas utilizando-se as funções sigadd, sigmult, sigshift e sigfold. Digite help
nome_da_função para detalhes das sintaxes.
n2
As operações de somatório, como por exemplo ∑ x[n] = x[n ] + L + x[n ], e produtório,
n= n1
1 2

n2
como por exemplo ∏ x[n] = x[n ]× L × x[n ] , podem ser implementadas respectivamente
n = n1
1 2

como sum(x(n1:n2)) e prod(x(n1:n2)). As partes par e ímpar de um sinal podem ser


determinadas através da função evenodd.

Exemplo 1
Gere e trace a seqüência x[n] = 2δ [n + 2] − δ [n − 4] , − 5 ≤ n ≤ 5 .
>>n=[-5:5];
>>x=2*impseq(-2,-5,5)-impseq(4,-5,5);
>>stem(n,x);
>>title(‘Exemplo’);
>>xlabel(‘n’); ylabel(‘x[n]’);

Exemplo
2

1.5

1
x[n]

0.5

-0.5

-1
-5 -4 -3 -2 -1 0 1 2 3 4 5
n

Exercício 1. Gere e trace as seguintes seqüências:


a) x[n] = n(u[n] − u[n − 10]) + 10e −0.3( n −10) (u[n − 10] − u[n − 20]) , 0 ≤ n ≤ 20

c) x[n] = cos[0.04πn] , 0 ≤ n ≤ 50
Exemplo 2
Seja x[n] = [1,2,3,4,5,6,7,6,5,4,3,2,1] , − 2 ≤ n ≤ 10 . Trace x1 [n] = 2 x[n − 5] − 3x[n + 4]
>>x=[1,2,3,4,5,6,7,6,5,4,3,2,1];
>>n=[-2:10];
>>[x11,n11]=sigshift(x,n,5); [x12,n12]=sigshift(x,n,-4);
>>[x1,n1]=sigadd(2*x11,n11,-3*x12,n12);
>>subplot(211); stem(n,x); title(‘Exemplo 2’); xlabel(‘n’); ylabel(‘x[n]’);
>>subplot(212); stem(n1,x1); xlabel(‘n’); ylabel(‘x1[n]’);

Exemplo 2
8

6
x[n]

0
-2 0 2 4 6 8 10
n

20

0
x1[n]

-20

-40
-10 -5 0 5 10 15
n

Exercício 2. Considerando o mesmo x[n] acima, trace x1 [n] = x[3 − n] + x[n]x[n − 2] .

Exercício 3. Trace as partes real e imaginária, a magnitude e a fase do sinal


x[n] = e(−0.1+ j 0.3)n , − 10 ≤ n ≤ 10 .

Exercício 4. Seja x[n] = u[n] − u[n − 10] . Trace as partes par e ímpar de x[n].