Escolar Documentos
Profissional Documentos
Cultura Documentos
te sinal:
stem(-6:6, (-6:6).^2);
1
EN2610 Processamento Digital de Sinais Aula 2 Professor Marcio Eisencraft janeiro 2012
A segunda amostra deste sinal x[5] = 25 . Este sinal tem 6 (6) + 1 = 13 amos-
tras.
Os exemplos acima mostram que um sinal de tempo discreto pode ser uma
sequncia de comprimento finito ou infinito. Alm disso, um sinal de compri-
mento finito definido no intervalo N1 n N 2 tem comprimento ou durao:
N = N 2N1 + 1 .
Exerccio
1. (CARLSON, 1998; p. 44) Um sinal chamado de simplesmente definido
(simply-defined) se ele representado por uma nica equao e chamado
2
EN2610 Processamento Digital de Sinais Aula 2 Professor Marcio Eisencraft janeiro 2012
(n + 1)
(c) x[n] = 2 , n
n 2 1, n 0
(d) x[n] =
n +1 0, n < 0
1 (1 + n ), n 0
(e) x[n] =
1 (1 n ) , n < 0
3
EN2610 Processamento Digital de Sinais Aula 2 Professor Marcio Eisencraft janeiro 2012
1.5.1 Produto
A operao produto entre duas sequncias x[n] e y[n] , representada por
w1 [n] = x[n] y[n] , consiste em multiplicar, para cada valor de n as amostras das
1.5.2 Soma
A operao soma entre duas sequncias x[n] e y[n] , representada por
w2 [n] = x[n] + y[n] , consiste em somar, para cada valor de n as amostras das se-
4
EN2610 Processamento Digital de Sinais Aula 2 Professor Marcio Eisencraft janeiro 2012
Exerccio
2. (MITRA, 2001; p. 106) Considere as seguintes sequncias de comprimento 7
definidas para 3 n 3 :
x[n] = {3; 2; 0; 1; 4; 5; 2}
y[n] = {0; 7; 1; 3; 4; 9; 2} .
w[n] = { 5; 4; 3; 6; 5; 0; 1}
5
EN2610 Processamento Digital de Sinais Aula 2 Professor Marcio Eisencraft janeiro 2012
A explicao do por que deste smbolo ser dada mais tarde quando for estu-
dado Transformadas z.
Exerccios
3. Um sinal de tempo discreto x[n] , definido para todo n inteiro dado por
x[n] = 2n + 1 . Ele passado por um atrasador, obtendo-se o sinal w[n] = x[n 1] .
Descreva as amostras para 0 n 10 dos sinais x[n] e w[n] e escreva uma frmu-
la fechada para as amostras do sinal w[n] .
5. (MITRA, 2001; p. 47) Descreva uma formula para o sinal y[n] obtido do fil-
tro mostrado em diagrama de blocos na figura a seguir:
6
EN2610 Processamento Digital de Sinais Aula 2 Professor Marcio Eisencraft janeiro 2012
7
EN2610 Processamento Digital de Sinais Aula 2 Professor Marcio Eisencraft janeiro 2012
Lembre-se: sempre que voc ficar na dvida sobre a utilizao de um comando, a fun-
o <help comando> pode lhe ajudar.
Exerccio
1. Gerar um vetor x de nmeros pares de 0 a 50.
Comandos:
8
EN2610 Processamento Digital de Sinais Aula 2 Professor Marcio Eisencraft janeiro 2012
Exemplos de utilizao
A. Gere um vetor de 1000 pontos com valores entre zero e 1 igualmente espaados.
>> v = linspace(0,1,1000);
b. Repita o exerccio anterior, mas com os valores em ordem decrescente.
>> v = linspace(1,0,1000);
Exerccio
2. Gere um vetor x de 5000 pontos com valores entre 0 e 2*pi.
Comandos:
Exerccio
3. Gere uma matriz 2x2 constituda por zeros.
Comandos:
9
EN2610 Processamento Digital de Sinais Aula 2 Professor Marcio Eisencraft janeiro 2012
Exerccio
4. Construa um vetor constitudo pelos nmeros pares de 0 a 10 seguido pelos nmeros m-
pares de 0 a 10.
Comandos:
10
EN2610 Processamento Digital de Sinais Aula 2 Professor Marcio Eisencraft janeiro 2012
L1.3 Grficos
Outra caracterstica muito interessante do Matlab para um engenheiro a facilidade
de se construir grficos complicados com ele de uma maneira muito simples. Dois comandos
muito utilizados so:
plot(vetor.abscissa, vetor.ordenada, modo);
stem(vetor.abscissa, vetor.ordenada);
O comando plot traa um grfico colocando seu primeiro argumento no eixo hori-
zontal e seu segundo argumento no eixo vertical. A string modo indica a forma como o
grfico ser traado. Veja help plot para mais detalhes.
Stem traa um grfico da sequncia em seu segundo argumento como palitos com
crculos no valor dos dados usando seu primeiro argumento como abscissa. Veja os exemplos.
Exemplos de aplicao
a. Faa um grfico da funo y ( t ) = sin(t ) para t 0, 4
>> t = linspace(0,4*pi,5000);
>> y = sin(t);
>> plot(t,y)
11
EN2610 Processamento Digital de Sinais Aula 2 Professor Marcio Eisencraft janeiro 2012
>> n = -5:5;
>> y = n.^2;
>> stem(n,y)
Exerccios
2 2
6. Faa um grfico de y [ n ] = sin (
12
n ) (
e z [ n ] = cos
12
n ) para 30 n 30 na
12
EN2610 Processamento Digital de Sinais Aula 2 Professor Marcio Eisencraft janeiro 2012
L1.4 Scripts
At este ponto, todas as nossas interaes com o Matlab tm sido atravs da linha de
comando. Entramos comandos ou funes na linha de comando e o Matlab interpreta
nossa entrada e toma a ao apropriada. Este o modo de operao preferencial quando
nossa sesso de trabalho curta e no repetitiva.
No entanto, o real poder do Matlab para anlise e projeto de sistemas vm da sua habili-
dade de executar uma longa sequncia de comandos armazenados num arquivo. Estes ar-
quivos so chamados de arquivos-M porque seus nomes tm a forma nomearq.m.
Um script um tipo de arquivo-M. Scripts so arquivos-textos comuns e podem ser cria-
dos usando um editor de texto.
Um script uma sequncia de comandos e funes comuns usados na linha de comando.
Um script invocado na linha de comando digitando-se o nome do arquivo. Scripts po-
dem invocar outros scripts. Quando um script invocado, o Matlab executa os comandos
e funes no arquivo como se eles tivessem sido digitados diretamente na linha de co-
mando.
O script opera sobre as variveis do espao de trabalho.
Suponha por exemplo que desejemos fazer um grfico da funo y (t ) = sin t em que
uma varivel que queremos variar.
Usando o editor de texto do Matlab (basta ditar edit na linha de comando), podemos
escrever um script chamado plotdata.m como mostrado a seguir.
% Este e um script para fazer um grafico da funcao y = sin(alfa*t)
% O valor de alfa precisa existir no espaco de trabalho antes
% de se chamar este script
t = 0:0.01:1;
y = sin(alfa*t);
plot(t,y);
xlabel ('tempo(s)');
ylabel('y(t) = sin(\alpha t)');
grid on;
importante salvar o scritpt no mesmo diretrio em que se est trabalhando na linha de
comando. Caso contrrio, ao tentar executar o script, o Matlab no encontrar o arquivo
e exibir uma mensagem de erro. Este erro muito comum quando estamos comeando a
trabalhar com scripts.
Uma vez digitado e salvo muito fcil utilizar o script. Veja os exemplos a seguir:
>> alfa = 50;
>> plotdata
13
EN2610 Processamento Digital de Sinais Aula 2 Professor Marcio Eisencraft janeiro 2012
Ao escrever scripts sempre interessante utilizar comentrios, linhas que comeam com
%. Se voc escrever linhas de comentrio antes do comeo das instrues do script, ao uti-
lizar o comando help nomearq o Matlab apresenta estas linhas na tela. Por exemplo,
>> help plotdata
Este e um script para fazer um grafico da funcao y = sin(alfa*t)
O valor de alfa precisa existir no espaco de trabalho antes
de se chamar este script
L1.5 Funes
Assim como os scripts, as funes definidas pelo usurio esto entre os recursos mais im-
portantes e utilizados do Matlab. Uma funo um script que recebe um ou mais par-
metros do teclado e pode devolver um ou mais parmetros ou executar uma tarefa.
O formato de uma funo no Matlab o seguinte
function [outarg1, outarg2,...] = fname(inarg1, inarg2,...)
% Um comentrio
% Mais um comentrio
....
(cdigo executvel)
....
14
EN2610 Processamento Digital de Sinais Aula 2 Professor Marcio Eisencraft janeiro 2012
fname o nome da funo criada e deve ser o nome do arquivo m em que foram grava-
das as instrues. inarg1, inarg2,... so os argumentos de entrada e ou-
targ1, outarg2,... so os argumentos de sada.
A seguir damos um exemplo bastante simples de funo. A funo somateste recebe
dois argumentos a, b e retorna a soma deles.
function res = somateste(a,b);
%Funcao para somar dois numeros a e b
res = a+b;
Uma vez que voc tenha salvado este arquivo como somateste no diretrio corrente,
voc pode us-lo como nos exemplos a seguir:
>> somateste(2, 4)
ans =
6
>> a = 5;
>> b = -3;
>> res = somateste(a,b)
res =
2
Exerccios
7. (a) Digite o script plotdata da Seo L1.4 e gere os grficos dos exemplos daquela
seo.
(b) Reescreva o script plotdata visto acima de forma que ele seja uma funo que re-
cebe a varivel alfa. Ou seja, escreva uma funo que faa um grfico da funo
y (t ) = sin t no intervalo 0 t 1 e um parmetro escolhido pelo usurio. Por
exemplo, o comando:
>> plotdada(50)
deve gerar o grfico
Resposta (listagem):
15
EN2610 Processamento Digital de Sinais Aula 2 Professor Marcio Eisencraft janeiro 2012
8. Gere um vetor de 100 valores aleatrios com distribuio uniforme no intervalo [0,1] .
Dica: use a funo rand (no sabe como usar? Para que serve o help?).
Comandos:
9. Escreva uma sequncia de comandos do Matlab que fornea um vetor contendo 100 va-
lores aleatrios uniformemente distribudos no intervalo -1 a 1 e que faa um grfico deste
sinal.
Comandos:
10. Escreva uma sequncia de comandos Matlab que gere um grfico do sinal
x[n ] = cos n + 0,2r [n ] onde r [n] um vetor de nmeros aleatrios com distribuio
8
uniforme entre -1 e 1. Faa 0 n 99 . (Dica: use o comando rand).
Comandos:
11. Escreva uma funo Matlab chamada pulso2graf cujas entradas sejam dois nmeros
inteiros a e b com a < b . A funo dever fazer o grfico de um pulso com amplitude 2
no intervalo a n b . O grfico deve comear em a 2 e terminar em b + 2 .
Por exemplo, ao digitarmos:
>> pulso2graf(2,8);
devemos obter a figura
Comandos:
16