Escolar Documentos
Profissional Documentos
Cultura Documentos
António Teixeira
AT 2006 1
• Convolução
– para sistemas discretos
• Representação de
sistemas por equações
diferença
• MATLAB
Aula – conv()
– filter()
AT 2006 2
Convolução
AT 2006 3
Sinais como somas de impulsos
• Qualquer sinal discreto pode ser representado
por uma soma pesada de impulsos
– ex:
–seria:
x[n]= 1 x impulso em t=1 + 2 x impulso em t=2 + 3 x
impulso em t=3
–ou:
x[n]= 1 [n-1] + 2 [n-2] + 3 [n-3]
AT 2006 4
Caso geral
• Generalizando:
– qualquer sinal discreto x[n] pode ser representado
em função de impulsos unitários através da
expressão
AT 2006 5
Sistemas lineares e invariantes no tempo
• Como resultado das propriedades de invariância
temporal e linearidade tem-se:
– sistema invariante
• [n] h[n] = > [n-k] h[n-k]
– sistema linear
• k[n]= [n-k] hk[n] = h[n-k] = >
AT 2006 7
Exemplo
• dconvdemo
AT 2006 8
Propriedades da convolução
• Comutativa
x[n] * h[n] = h[n] * x[n]
• Associativa
x[n] * ( h1[n] * h2[n] ) = ( x[n] * h1[n] ) * h2[n]
• Distributiva
x[n] * (h1[n] + h2[n]) = x[n] * h1[n] + x[n] * h2[n]
AT 2006 9
Convolução em MATLAB
• Existe a função conv ()
• exemplo de utilização
x=[1 1 1 1]
h=[3 2 1]
y=conv(x,h)
y2=conv(h,x)
subplot(221); stem(x)
subplot(222); stem(h)
subplot(223); stem(y)
subplot(224); stem(y2)
AT 2006 10
• O processo de convolução multiplica as
amostras presente e passadas do sinal de
entradas por um factor por forma a obter a
saída
• Este processo pode ser aplicado também a
amostras passadas do sinal de saída, tendo-se
em vez de
y=x *b , em que b é h[n]
a situação mais geral
y *a=x*b
AT 2006 11
• Se b=1 temos
y*a=x
ou seja
a[0] y[n]+a[1] y[n-1]+a[2] y [n-2]+ ...+a[p] y[n-p]=x[n]
Exemplo:
x=[4 2 1 3]
a=[0.5 0.2] % note que se assume a[0]=1
y[0]= x[0]-0.5 y[-1] – 0.2 y[-2] = ... = x[0] = 4
y[1]= x[1]-0.5 y[0] – 0.2 y[-1] = 2 – (0.5 x 4) – 0 = 0
y[2]= ... = 0.2
y[3]= ...
y[n]= x[n] - 0.5 y[n-1] – 0.2 y[n-2]
AT 2006 12
em MATLAB
• Tendo os vectores de coeficientes a e b obtem-se a saída
utilizando o comando filter()
y=filter(b,a,x) % note a ordem b,a !
Exemplo (anterior):
x=[4 2 1 3 zeros(1,100)]
a=[1 0.5 0.2]
zoom
y=filter(1,a,x)
stem(y)
verificando a resposta calculada manualmente ....
>> y(1:5)
ans =
4.0000 0 0.2000 2.9000 -1.4900
AT 2006 13
• Resposta impulsional deste último sistema
x=[1 zeros(1,100)]
a=[1 0.5 0.2 ]
y=filter(1,a,x)
stem(y)
AT 2006 14
Função de transferência
• Os factores multiplicativos aplicados ao sinal
de entrada e/ou à saída (em instantes
anteriores) definem a chamada função de
transferência do sistema
– porque estes coeficientes transformam um sinal de
entrada num sinal de saída
– são os responsáveis por deixar no sinal as marcas
do sistema no sinal
AT 2006 15
Relação com a produção de voz
• Segundo a teoria fonte filtro:
– o sinal de voz resulta da passagem do sinal gerado pela(s)
fonte(s) através do sistema/filtro constituído pelo tracto
vocal
• o nosso sinal de entrada x será a excitação glotal, fonte de ruído ou
ambos
• o a e b representarão o tracto
• Os pesos do vector a estão directamente relacionados
com as frequências das formantes
– Um modelo adequado para as vogais será y*a=x (a[0]=1)
– Para sons como as nasais temos ressonâncias e
antirresonâncias , um modelo mais apropriado será y*a =
b* x (a[0]=1)
• Este assunto será retomado ...
AT 2006 16
TPC
• Leitura da secção 5.6.1 de Harrington &
Cassidy
AT 2006 17