Guião Prático #3

Propaganda
Mestrado em Ciências da Fala e da Audição
Conceitos de Sinais e Sistemas
Guião Prático #3
Sistemas, Linearidade, Invariância Temporal e Resposta no tempo
1
Representação de Sistemas em MATLAB
Em MATLAB podem definir-se novas funções para representar sistemas.
• Implemente uma função em MATLAB simulando o efeito de um sistema que amplifique o sinal de
entrada, multiplicando por um factor A. Experimente o sistema com uma sinusóide como entrada.
• Modifique a função anterior prevendo o efeito de saturação. Valores superiores a um certo valor
M AX não são amplificados. Considere que valores abaixo de −M AX sofrem o mesmo efeito.
Experimente com sinusóides de amplitude inferior e superior a M AX.
• Implemente uma função em MATLAB simulando o efeito de um sistema que não altera os valores
positivos de um sinal e multiplica por −1 os valores negativos. Experimente o sistema com uma sinusóide como entrada. [Nota: este sistema designa-se geralmente de rectificador de onda completa].
2
Propriedades de sistemas discretos
Os sistemas discretos são muitas vezes caracterizados em termos de um conjunto de propriedades como:
linearidade, invariância temporal, estabilidade, causalidade e invertibilidade.
No(s) problema(s) seguinte(s), é dita a propriedade qu o sistema não satisfaz e as entradas que o demonstram. Para cada um, defina os vectores representando a entrada e a saída. Depois, efectue a sua representação gráfica, e com base nela, explique como essas figuras demonstram a não satisfação pelo sistema da
propriedade.
• O sistema y[n] = sin((π/2)x[n]) é não linear. Use os sinais x1=[1 0 0 ...] e x2=2* x1.
3
Convolução
A combinação da linearidade com a invariância temporal permite caracterizar completamente um sistema
pela sua resposta impulsional h[n], dado que a saída y[n] está relacionada com x[n] através da convolução,
que no caso discreto consiste em :
y[n] =
∞
X
h[n − m]x[m].
m=−∞
Em MATLAB a função conv calcula a soma de convolução assumindo que x[n] e h[n] são sequências
de duração finita.
• Considere o sinal x[n] = 1 para n = 0, 1, 2, 3, 4, 5 e 0 para todos os outros valores.
Calcule y[n] = x[n] ∗ h[n] [Nota: neste caso ∗ representa a convolução e não a multiplicação em
MATLAB.] Apresente os resultados usando a função stem.
Tente graficamente e com base na definição da convolução verificar o resultado obtido.
c
António
J S Teixeira, 2004
1
Mestrado em Ciências da Fala e da Audição
Conceitos de Sinais e Sistemas
• Considere o mesmo sinal x[n] da alínea anterior e h[n] = n para n = 0, 1, 2, 3, 4, 5 e 0 para todos os
outros valores.
Calcule a convolução de y[n] = x[n] ∗ h[n] [Nota: neste caso ∗ representa a convolução e não a
multiplicação em MATLAB.] Apresente os resultados usando a função stem.
Tente graficamente e com base na definição da convolução verificar o resultado obtido.
4
O comando filter
O comando filter permite obter a saída de sistemas causais, lineares e invariantes no tempo para uma
dada entrada quando o sistema é especificado por uma equação diferença linear de coeficientes constantes.
Por exemplo: para o sistema descrito pela equação diferença y[n]+2y[n−1] = x[n]−3x[n−1], poderá
obter-se a saída, y, fazendo a=[1 2], os coeficientes que multiplicam por y, b=[1 -3], os coeficientes
relativos a x[n] e x[n − 1] (por esta ordem), e, finalmente y=filter(b,a,x).
• Defina os vectores a1 e b1 para descrever o sistema causal, linear e invariante no tempo (LTI)
especificado por y[n] = 0.5x[n] + x[n − 1] + 2x[n − 1].
• Defina os vectores a2 e b2 para descrever o sistema causal, linear e invariante no tempo (LTI)
especificado por y[n] = 0.8y[n − 1] + 2x[n].
• Defina os vectores a3 e b3 para descrever o sistema causal, linear e invariante no tempo (LTI)
especificado por y[n] − 0.8y[n − 1] = 2x[n].
• Para cada um dos três sistemas anteriores, use filter para obter a resposta y[n] ao sinal x=[1 2
3 4]. O resultado deve ser:
y1=
0.5000 2.0000 5.5000 9.0000
y2=
2.0000 5.6000 10.4800 16.3840
y3=
0 2.0000 5.6000 10.4800
Nota: A função filter pode calcular a convolução fazendo-se b = h e a = 1, ou usando y=filter(h,1,x).
Pode repetir, caso o tempo o permita, os exercícios anteriores em que se utilizou o comando conv.
5
Resposta Impulsional de alguns sistemas
Considere o sinal x=[1 zeros(1,20)] - uma representação em MATLAB do sinal geralmente designado por impulso . A resposta, saída, de um sistema quando se coloca este sinal como entrada é a chamada
resposta impulsional.
• Obtenha o sinal à saída do sistema definido por z[n] = 0.5x[n] + 0.5x[n − 1].
• Obtenha o sinal à saída do sistema definido por z[n] = x[n] − x[n − 1]
• Obtenha o sinal à saída do sistema definido por y[n] = 0.8y[n − 1] + 2x[n].
Para cada alínea tente responder às seguintes questões: Qual é a resposta impulsional deste sistema?
Alguma relação com a definição do sistema? Os valores não nulos são em número finito ?
c
António
J S Teixeira, 2004
2
Mestrado em Ciências da Fala e da Audição
6
Conceitos de Sinais e Sistemas
Efeito de alguns sistemas no sinal de voz
Grave um sinal de voz a 20000 amostras/segundo e defina um vector em MATLAB com as suas amostras
(wavread).
• Obtenha o sinal de voz depois de processado pelo sistema definido por z[n] = 0.5x[n] + 0.5x[n − 1].
• Obtenha o sinal de voz depois de processado pelo sistema definido por z[n] = 0.33x[n] + 0.33x[n −
1] + 0.33x[n − 2].
• Obtenha o sinal de voz depois de processado pelo sistema definido por z[n] = x[n] − x[n − 1], isto
é a diferença entre uma amostra e a anterior.
7
Resposta a uma sinusóide
Considere, a título de exemplo, a sinusóide e 10 Hz com duração de 2 segundos amostrada a 500 amostras
por segundo.
• Para o sistema definido por h=[0.5 -0.5], com a ajuda do comando conv obtenha quando se
coloca na entrada a sinusóide. Quais as características do sinal que obteve na saída? O que se
manteve? o que se alterou ?
• Repita considerando um sistema com uma resposta mais “complicada” h=rand(1,10). Alguma
alteração significativa às observações anteriores ?
• Repita considerando um sistema em que a=[1 rand(1,3)] e b=rand(1,4). Neste caso tem
de usar filter Alguma alteração significativa às observações anteriores ? Nota: deve repetir
várias vezes a execução do código MATLAB que desenvolveu. Obterá resultados diferentes em cada
execução.
c
António
J S Teixeira, 2004
3
Download