Baixe o app para aproveitar ainda mais
Prévia do material em texto
Análise de Sinais – 2007/2008 António Espírito Santo 1 Análise de Sinais (5001) Ficha Prática Laboratorial VII Curso: Eng. Electrotécnica Duração prevista: 2 horas Convolução de Sinais I. Sinais analógicos Operações matemáticas realizadas em sinais analógicos exigem que os sinais sejam definidos no mesmo intervalo em que a operação é realizada. Algumas das características dos sinais são referidos de seguida. Função impulso de Dirac Esta função é caracterizada pela sua duração nula, amplitude infinita, mas de área unitária. Matematicamente podem ser definidas as seguintes propriedades. 1. ( ) 0 0t t∂ = ⇐ ≠ 2. ( ) 1t dt +∞ −∞ ∂ =∫ A função de Dirac pode ser usada sempre que se pretenda formular a aquisição de um sinal, usando para isso a expressão ( ) ( ) ( )x t x t dτ τ τ +∞ −∞ = ∂ −∫ É assumido que a função x(t) é contínua e finita. Função degrau unitário A função é nula até ao momento t(0), nesse ponto apresenta uma descontinuidade e toma o valor unitário. 1 0 ( ) 0 0 se t u t se t ≥⎧= ⎨ <⎩ Análise de Sinais – 2007/2008 António Espírito Santo 2 Funções trigonométricas Este tipo de funções é central para a análise de sinais. São definidas pela frequência angular 2 fω π= , onde f é a frequência do sinal. 1. função coseno: ( ) cos( )x t tω= 2. função seno: ( ) sin( )x t tω= Função exponencial complexa Esta função pode ser escrita como a soma de duas partes: uma real; e a outra imaginária. ( ) cos( ) sin( )i tx t e t i tω ω ω= = + A relação de Euler pode aqui ser introduzida com vantagens 1. cos( ) 2 i t i te et ω ω ω −+= 2. cos( ) 2 i t i te et i ω ω ω −−= II. Sinais Discretos Regra geral, um sinal discreto é uma sequência de números reais ou complexos. Sendo cada elemento da sequência identificado por um índice. Por exemplo, xn-2, xn-1, xn, xn+1, xn+2. Podemos facilmente definir operações matemáticas nesses sinais. Assim, a soma, a multiplicação por uma constante ou por outro sinal, e a operação de atraso são conseguidas usando a identificação dos índices. Dadas as sequências [xn ] = [0.5 2.4 3.2 4.5] e [yn] = [0.0 2.2 7.2 5.5]. Podemos definir a adição dos sinais discretos como sendo [zn] = [xn] + [yn] = [0.5 4.6 10.4 10.0] A multiplicação por uma constante c = 2 resultará em: [wn] = 2 *[xn] = [1.0 4.8 6.4 9.0] Impulso de dirac O impulso unitário é sempre nulo com a excepção de na origem dos tempos ser unitário. Matematicamente pode ser definido por 1 0 0 0n n n ⇐ =⎧∂ = ⎨ ⇐ ≠⎩ com ] [,n∈ −∞ +∞ A função de impulso é muito útil e pode ser usada como o elemento constituinte de qualquer sinal discreto. Seja xn uma sequência, podemos definir o sinal xn como se segue. Análise de Sinais – 2007/2008 António Espírito Santo 3 n k n k k x x +∞ − =−∞ = ∂∑ Degrau unitário Este sinal é nulo para valores de índice negativo, e unitário para valores de índice não nulo. 1 0 0 0n n u n ⇐ ≥⎧= ⎨ ⇐ <⎩ com ] [,n∈ −∞ +∞ Funções trigonométricas A função trigonométrica discreta é definida como se segue. Sendo n o índice da sequência e ω a frequência angular. 1. função coseno: cos( )nx nω= 2. função seno: sin( )nx nω= Funções exponencial complexa Esta função pode ser escrita como a soma de duas partes: uma real; e a outra imaginária. ( ) i nx t e ω= A relação de Euler pode aqui ser introduzida com vantagens 1. cos( ) 2 i n i ne en ω ω ω −+= 2. cos( ) 2 i n i ne en i ω ω ω −−= III. Convolução de sinais contínuos A operação de convolução é definida em sistemas LTI (linear and Time-Invariant), ou seja, lineares e invariantes no tempo. Tendo presente o facto anterior podemos estabelecer que: - A resposta de um sistema a uma entrada a impulso possui também uma resposta na forma de impulso; - A resposta de um impulso deslocado no tempo leva a uma resposta também deslocada no tempo, devido à característica do sistema ser invariante no tempo; Análise de Sinais – 2007/2008 António Espírito Santo 4 - Se o impulso for afectado de um factor de escala, a resposta será também afectada desse mesmo facto de escala, justificada pela linearidade da multiplicação por um escalar; - A soma de um número de entradas de impulsos afectados de um factor de escala é igual à soma das respostas aos impulsos afectadas dos mesmos factores de escala, já que a operação de multiplicação é linear; Podemos reconhecer que a soma anterior corresponde a um integral, ou seja podemos converter os dois lados, entrada e saídas, em dois integrais. Reconhecendo que a entrada é a função f(t), também reconhecemos que a saída é o integral de convolução. Como já foi referido, o integral de convolução fornece um método matemático de expressar a saída de um sistema LTI baseada num sinal arbitrário de entrada x(t), e na sua resposta a impulso h(t). O integral de convolução é expresso por ( ) ( ) ( )y t x h t dτ τ τ+∞−∞= −∫ A operação de convolução pode ser alternativamente representado pelo operador * ( ) ( )* ( )y t x t y t= Esta operação matemática possui as propriedades: 1. Associativa - [ ] [ ]1 2 3 1 2 3( )* ( ) * ( ) ( )* ( )* ( )f t f t f t f t f t f t= 2. Comutativa - 1 2 2 1( )* ( ) ( )* ( )f t f t f t f t= 3. Distributiva - [ ]1 2 3 1 2 1 3( )* ( ) ( ) ( )* ( ) ( )* ( )f t f t f t f t f t f t f t+ = + 4. Deslocamento - 1 2 1 2( )* ( ) ( )* ( )f t f t f t f tτ τ− = − 5. Convolução com impulso - 1 1( )* ( ) ( )f t t f t∂ = 6. Duração do resultado de convolução – se duração de 1( )f t é T1 e a duração de 2 ( )f t é T2. Então a duração do resultado da convolução é T1+T2. Análise de Sinais – 2007/2008 António Espírito Santo 5 7. Casualidade – Se 1( )f t e 2 ( )f t são ambos sinais casuais então o resultado da convolução é também casual. IV. Convolução de sinais discretos O conceito da convolução de sinais discretos é em tudo idêntico ao dos sinais contínuos. Nesta situação, o integral é substituído por um somatório expresso por [ ] [ ] [ ] k y n x k h n k +∞ =−∞ = −∑ Tal como no caso da convolução contínua, é usado o operador *, de onde resulta a notação [ ] [ ]* [ ]y n x n y n= A operação de convolução contínua observa o mesmo conjunto de propriedades que a convolução contínua. Havendo a registar que agora a duração do resultado de convolução, no caso de 1( )f n possuir N1 amostras e 2 ( )f n possuir N2 amostras, ser igual é N1+N2 -1. V. Exemplo de convolução contínua Exemplo I Um sistema LTI é descrito por uma resposta a impulso dada por h(t) = exp(-t)u(t) (em que u(t) é um sinal em degrau). Uma entrada x(t) é aplicada ao sistema, esta entrada possui um valor de 0.6 no intervalo -1 < t < 0.5, um valor de 0.3 no intervalo 0.5 < t < 3, e um valor nulo no tempo restante (Fig. 1). Fig. 1 – Resposta a impulso h(t) e entrada x(t) Fig. 2 – Resposta a impulso h(t) e entrada x(t) invertida no tempo Para realizar a operação de convolução um dos sinais deve ser invertido no tempo. Neste caso optou-se por inverter no tempo o sinal x(t) (Fig. 2). Análise de Sinais – 2007/2008 António Espírito Santo 6 O próximo passo é deslocar temporalmente o sinal de entrada. Como os gráficos são feitos em ordem à variável τ, o sinal de entrada invertido e deslocado é dado por x(t-τ). O valor de t é a quantidade da qual o sinal invertido x(-τ) é deslocado no tempo. Correspondendo em simultâneo ao valor da saída y(t) fornecido por ( ) ( ) ( )y t x t h dτ τ τ+∞−∞= −∫ Valor negativos de τ deslocam o sinal para a esquerda, enquanto que valores positivos deslocam o sinal para a direita. Como o valor da saída num instante particular de tempo t corresponde à área do produtode h(τ) e x(t-τ), os limites de integração correspondem às definições dos sinais. Como x(t) está definido em segmentos de tempo, o integral pode ser fraccionado nesses pequenos intervalos de tempo. O primeiro segmento corresponde a um deslocamento suficientemente para a esquerda para que não ocorra qualquer sobreposição dos sinais (Fig. 3), e logo o resultado da multiplicação é nula e também o valor de y(t). O intervalo de tempo no qual a saída do sistema apresenta um valor nulo pode ser obtido observando os sinais. A entrada x(τ) é nula para τ < -1, então x(-τ) é nulo para τ > 1. A transição do sinal x(-τ) de 0.6 para 0 ocorre sempre para valores de τ = t+1. De igual forma, a transição de 0.3 para 0.6 ocorre em τ = t-0.5, e a transição de 0 para 0.3 ocorre em τ = t-3. Podemos então concluir que o intervalo de tempo no decorrer do qual não existe sobreposição corresponde a τ <= 0, ou seja, para t+1 < 0. Logo y(t) = 0 para valores de t < -1. Fig. 3 – Entrada deslocada para a esquerda sem sobreposição Fig. 4 – Sobreposição do primeiro segmento Para valores de t > -1 passa a haver sobreposição (Fig. 4). Nesta primeira situação haverá sobreposição com x(t) = 0.6. Isto ocorre para t+1 > 0 e para t-0.5 < 0. Os limites de integração serão o intervalo de sobreposição. O que corresponde o intervalo de τ = 0 até τ = t +1. O intervalo de tempo para definir y(t) é dado pelo integral de -1< t < 0.5, o que corresponde a saída y(t) = 0.6*[1 - 0.3679*exp(-t)]. Análise de Sinais – 2007/2008 António Espírito Santo 7 Fig. 5 – Sobreposição do segundo segmento Fig. 6 – Sobreposição de ambos os segmentos A próxima situação corresponde a x(t-τ) completamente sobreposto e x(t-τ) = 0.3 parcialmente sobreposto a h(τ) (Fig. 5). Isto ocorre quando t-0.5 > 0 e t-3 < 0. Os limites de integração são de 0 a t-0.5 com x(t-τ) = 0.3 e de t-0.5 a t+1 com x(t-τ) = 0.6. A expressão obtida para y(t) neste intervalo de tempo é y(t) = 0.3*[1 + 0.9130*exp(-t)]. Sendo válida para o intervalo de tempo 0.5 < t < 3. A última situação corresponde a ter uma sobreposição completa de todos os segmentos (Fig. 6). Isto ocorre para t-3 > 0. Uma vez que h(t) está definida e é não nulo para todos os valores finitos de tempo, o tipo de sobreposição não varia. Os limites de integração são de t-3 até t-0.5 para x(t-τ) = 0.3 e para t-05 até t+1 para x(t-τ) = 0.6. O intervalo é definido para t > 3, e a expressão resultante para a saída y(t)= 6.2995*exp(-t). Fig. 7 – Saída y(t) O problema está resolvido usando o código em Matlab listado no anexo I. Exemplo II A resposta a impulso h(t) e o sinal de entrada x(t) para um sistema LTI são fornecidas em seguida. Ambos os sinais são casuais já que são nulos para tempos negativos. O sinal de saída pode ser obtido efectuando a convolução analítica dos dois sinais. O que devolveria para a saída y(t) Análise de Sinais – 2007/2008 António Espírito Santo 8 Este resultado pode também ser obtido usando a função conv do MatLab. Mas devemos ter em atenção dois factores. O primeiro diz respeito a um factor de escala que devemos usar. Esta função aproxima o integral de convolução usando um somatório. Assumindo que os dados dos vectores x(t) e y(t) são amostras dos sinais no domínio contínuo, com um período de amostragem de dt segundo, o resultado obtido ao usar a função conv deve, neste caso, ser multiplicado por dt = 0.01 segundos. O segundo factor a que devemos prestar atenção diz respeito ao facto de que, quer o sinal de entrada x(t), quer o sinal de saída h(t), são representados por vectores de comprimento N. A aplicação da função conv devolve um vector de resultados com 2N-1 elementos, espaçados no tempo em dt segundos. A interpretação dos resultados deve ser a seguinte. - Os primeiros elementos correspondem ao resultado correcto, já que nesse intervalo de tempo possuímos valores que caracterizam a entrada e a resposta a impulso. - Os restantes N-1 elementos são calculados na assumpção de que ambos os sinais, x(t) e h(t), são nulos nos instante de tempo fora do intervalo representado pelos vectores. No nosso exemplo, ambos os sinais existem para os tempos t > 0, mas no MatLab apenas são representados nos primeiros 10 segundos. Como x(t) e h(t) não são nulos para além dos 10 segundos, apenas podemos considerar os primeiros N elementos do resultado vectorial devolvido pela função conv. Fig. 8 – Entrada x(t), resposta a impulso h(t), e saída y(t) Fig. 9 – Resultado da multiplicação para t = 2.6 seg O código do MatLab que resolve este problema pode ser encontrado no anexo II. VI. Exemplo de convolução discreta Uma aproximação gráfica da operação discreta pode ajudar a compreender a operação. Para isso vamos assumir que o sinal de entrada x[n] é casual e de comprimento m, e que h[n] é causal e de comprimento k. Sendo o sistema LTI, podemos escrever a soma finita como Análise de Sinais – 2007/2008 António Espírito Santo 9 1 0 [ ] [ ] [ ] m l y n x l h n l − = = −∑ De observar que para qualquer índice de amostra n, temos uma soma do produto da amostra x[l] com a amostra h[l-]. Ou seja, isto corresponde a multiplicar as amostras de x[n] pelas amostras de h[n] invertidas no tempo seguida da soma de todos os termos. O resultado final a obter pode ser representado graficamente por O processo de cálculo, passo a passo, pode ser representado graficamente através dos passos seguintes. Análise de Sinais – 2007/2008 António Espírito Santo 10 Este processo pode ser observado nas applets situadas em http://www.jhu.edu/~signals/ Análise de Sinais – 2007/2008 António Espírito Santo 11 Anexo I % ***** MATLAB Code Starts Here ***** % %convolution_01_mat % fig_size = [50 50 800 600]; th1 = linspace(0,10,1001); th = [0 th1]; % Impulse response h(t) h1 = exp(-th1); h = [0 h1]; % tx = [-1 -1 0.5 0.5 3 3]; % Input signal x(t) x = [0 0.6 0.6 0.3 0.3 0]; % figure(1),plot(th,h,tx,x),grid,xlabel('Time (s)'),ylabel('Amplitude'),... title('Impulse Response h(t) and Input Signal x(t)'),... axis([-5 10 0 1]),text(0.5,0.85,'h(t)'),text(3.2,0.25,'x(t)'),set(gcf,'Position',fig_size) % figure(2),plot(th,h,-tx,x),grid,xlabel('Time (s)'),ylabel('Amplitude'),... title('Impulse Response h(t) and Time-Reversed Input Signal x(-t)'),... axis([-5 10 0 1]),text(0.5,0.85,'h(t)'),text(-2.5,0.32,'x(-t)'),set(gcf,'Position',fig_size) % % Shifting x(t-tau) left 2 seconds (t = -2) % figure(3),plot(th,h,-tx-2,x),grid,xlabel('Tau (s)'),ylabel('Amplitude'),... title('Impulse Response h(tau) and Reversed & Shifted Input Signal x(t-tau)'),... axis([-5 10 0 1]),text(0.5,0.85,'h(tau)'),text(-2.5,0.62,'x(t-tau)'),text(6,0.65,'t = -2 s'),... set(gcf,'Position',fig_size) % % Shifing x(t-tau) right 1.5 seconds (t = -0.5) % figure(4),plot(th,h,-tx-0.5,x),grid,xlabel('Tau (s)'),ylabel('Amplitude'),... title('Impulse Response h(tau) and Reversed & Shifted Input Signal x(t-tau)'),... axis([-5 10 0 1]),text(0.5,0.85,'h(tau)'),text(-3,0.32,'x(t-tau)'),text(6,0.65,'t = -0.5 s'),... set(gcf,'Position',fig_size) % % Shifting x(t-tau) right 2.5 seconds (t = 2) % figure(5),plot(th,h,-tx+2,x),grid,xlabel('Tau (s)'),ylabel('Amplitude'),... title('Impulse Response h(tau) and Reversed & Shifted Input Signal x(t-tau)'),... axis([-5 10 0 1]),text(0.5,0.85,'h(tau)'),text(1.5,0.62,'x(t-tau)'),text(6,0.65,'t = +2 s'),... set(gcf,'Position',fig_size) % % Shifting x(t-tau) right 2 seconds (t = 4) % figure(6),plot(th,h,-tx+4,x),grid,xlabel('Tau (s)'),ylabel('Amplitude'),... title('Impulse Response h(tau) and Reversed & Shifted Input Signal x(t-tau)'),... axis([-5 10 0 1]),text(0.5,0.85,'h(tau)'),text(3.5,0.62,'x(t-tau)'),text(6,0.65,'t = +4 s'),... set(gcf,'Position',fig_size)% ty = [-1:0.01:0.5]; % 1st segment of y(t) y = 0.6*[1 - 0.3679*exp(-ty)]; % ty1 = [0.5:0.01:3]; % 2nd segment of y(t) y1 = 0.3*[1 + 0.9130*exp(-ty1)]; % ty2 = [3:0.01:10]; % 3rd segment of y(t) y2 = 6.2995*exp(-ty2); % ty = [-5 ty ty1 ty2]; % Combining the segments y = [0 y y1 y2]; Análise de Sinais – 2007/2008 António Espírito Santo 12 % figure(7),plot(ty,y),grid,xlabel('Time (s)'),ylabel('Amplitude'),... title('Output Signal y(t)'),axis([-5 10 0 0.5]),set(gcf,'Position',fig_size) % % % ***** MATLAB Code Stops Here ***** Análise de Sinais – 2007/2008 António Espírito Santo 13 Anexo II % ***** MATLAB Code Starts Here ***** % %CONVOLUTION_02_MAT % fig_size = [232 84 774 624]; t = 0:0.01:10; % time vector nt = length(t); dt = t(2); h = 2*t.*exp(-t) + exp(-2*t) - exp(-3*t); % impulse response x = 1 - exp(-1.5*t); % input signal % figure(1),clf,plot(t,x,t,h),grid,xlabel('Time (s)'),ylabel('Amplitude'),... title('Input x(t) and Impulse Response h(t)'),... text(2.5,0.95,'x(t)'),text(2.5,0.45,'h(t)'),set(gcf,'Position',fig_size) % figure(2),clf,plot(t,x,2.5-t,h),grid,xlabel('Time Tau (s)'),ylabel('Amplitude'),... title('Input x(tau) and Impulse Response h(t-tau), t = 2.5 s'),... text(2.5,0.95,'x(tau)'),text(2.25,0.65,'h(t-tau)'),set(gcf,'Position',fig_size) % % Calculation of the product of x(tau) & h(t-tau) for t = 2.5 s % tau = t(1:251); tmtau = 2.5 - tau; hx = (1 - exp(-1.5*tau)) .* ( 2*tmtau.*exp(-tmtau) + exp(-2*tmtau) - exp(-3*tmtau) ); % figure(3),clf,plot(t(1:251),hx),grid,xlabel('Time Tau (s)'),ylabel('Amplitude'),... title('Product of Input x(tau) and Impulse Response h(t-tau), t = 2.5 s'),... text(0.75,0.25,'Value of y(t) at t = 2.5 s equals the area under this curve'),... set(gcf,'Position',fig_size) % [numh,denh] = residue([0;2;1;-1;],[-1;-1;-2;-3],0); % calculation of transfer function [numx,denx] = residue([1; -1],[0; -1.5],0); % calculation of input transform [numy,deny] = series(numx,denx,numh,denh); % calculation of output transform % [resy,poly,ky] = residue(numy,deny); % partial fraction expansion for output % y1 = lsim(numh,denh,x,t); % calculation of output using "lsim" % figure(4),clf,plot(t,y1,t,x,t,h,t(251),y1(251),'r*'),grid,xlabel('Time (s)'),ylabel('Amplitude'),... title('Input x(t),Impulse Response h(t), and Output y(t)'),... text(2.5,0.9,'x(t)'),text(3.5,0.3,'h(t)'),text(3.5,1.6,'y(t)'),... text(2.7,y1(251),sprintf('y(t=2.5) = %g',y1(251))),set(gcf,'Position',fig_size) % y2 = conv(x,h) * dt; % calculation of output using "conv" y2 = y2(1:nt); % y3 = 0; figure(5),clf,plot(t,y1,'g-',t,y2,'r-.'),grid,xlabel('Time (s)'),ylabel('Amplitude'),... title('Output y(t) from LSIM and from CONV'),set(gcf,'Position',fig_size) % w = logspace(-2,3,501); % frequency vector % [magx,phx] = bode(numx,denx,w); % frequency domain data [magh,phh] = bode(numh,denh,w); [magy,phy] = bode(numy,deny,w); % Análise de Sinais – 2007/2008 António Espírito Santo 14 figure(6),clf,subplot(211),semilogx(w,20*log10(magx),w,20*log10(magh),... w,20*log10(magy)),grid,xlabel('Frequency (r/s)'),ylabel('Magnitude (db)'),... title('Frequency-Domain Magnitudes of Input Signal, System, and Output Signal'),... subplot(212),semilogx(w,phx,w,phh,w,phy),grid,xlabel('Frequency (r/s)'),ylabel('Phase (deg)'),... title('Frequency-Domain Phases of Input Signal, System, and Output Signal'),... set(gcf,'Position',fig_size) % % ***** MATLAB Code Stops Here *****
Compartilhar