Prévia do material em texto
Laboratório de Sinais e Sistemas Engenharia 2015 Wesley Oliveira Maia Zélia Myrian Assis Peixoto 14/03/2015 1 L a b o r a t ó r i o d e S i n a i s e S i s t e m a s 2015 2 L a b o r a t ó r i o d e S i n a i s e S i s t e m a s 2015 Sumário 1. Introdução ao MATLAB ......................................................................................................... 6 1.1. Fundamentos Teóricos .................................................................................................. 6 1.2. Atividade Prática ........................................................................................................... 8 2. Comandos Básicos e Operações com Matrizes ................................................................... 10 2.1. Fundamentos Teóricos ................................................................................................ 10 2.2. Atividade Prática ......................................................................................................... 12 3. Ramificações e Laços ........................................................................................................... 14 3.1. Fundamentos Teóricos ................................................................................................ 14 3.2. Atividade Prática ......................................................................................................... 15 4. Composição e Decomposição de Sinais .............................................................................. 17 4.1. Fundamentos Teóricos ................................................................................................ 17 4.2. Atividade Prática ......................................................................................................... 17 5. Energia e Potência de Sinais ................................................................................................ 21 5.1. Fundamentos Teóricos ................................................................................................ 21 5.2. Atividade Prática ......................................................................................................... 22 6. Sinais Periódicos e Não Periódicos ...................................................................................... 24 6.1. Fundamentos Teóricos ................................................................................................ 24 6.2. Atividade Prática ......................................................................................................... 25 7. Convolução Linear Discreta ................................................................................................. 28 7.1. Fundamentos Teóricos ................................................................................................ 28 7.2. Atividade Prática ......................................................................................................... 29 8. Sistemas no Domínio S ........................................................................................................ 33 8.1. Fundamentos Teóricos ................................................................................................ 33 8.2. Atividade Prática ......................................................................................................... 34 9. Resposta em Frequência ..................................................................................................... 38 9.1. Fundamentos Teóricos ................................................................................................ 38 9.2. Atividade Prática ......................................................................................................... 39 10. Composição de Sinais ...................................................................................................... 42 10.1. Fundamentos Teóricos ............................................................................................ 42 10.2. Atividade Prática ..................................................................................................... 43 11. Transformada Rápida de Fourier .................................................................................... 45 11.1. Fundamentos Teóricos ............................................................................................ 45 3 L a b o r a t ó r i o d e S i n a i s e S i s t e m a s 2015 11.2. Atividade Prática ..................................................................................................... 46 12. Transformada Rápida Inversa ......................................................................................... 48 12.1. Fundamentos Teóricos ............................................................................................ 48 12.2. Atividade Prática ..................................................................................................... 48 13. Teorema da Amostragem ................................................................................................ 53 13.1. Fundamentos Teóricos ............................................................................................ 53 13.2. Atividade Prática ..................................................................................................... 55 14. Reconstituição de um Sinal Analógico ............................................................................ 61 14.1. Fundamentos Teóricos ............................................................................................ 61 14.2. Atividade Prática ..................................................................................................... 62 15. Filtro Digital FIR ............................................................................................................... 64 15.1. Fundamentos Teóricos ............................................................................................ 64 15.2. Projeto de Filtros ..................................................................................................... 65 15.3. FDATool ................................................................................................................... 67 15.4. Atividade Prática ..................................................................................................... 68 Referências .................................................................................................................................. 70 Apêncide A – Biblioteca de Blocos do Simulink .......................................................................... 72 A.1. Sinks ................................................................................................................................. 72 A.2. Sources ............................................................................................................................. 72 A.3. Math Operations .............................................................................................................. 73 A.4. Continuous ....................................................................................................................... 73 A.5. Discrete ............................................................................................................................ 74 Apêndice B – Sisotool .................................................................................................................. 75 B.1. Fundamentos Teóricos ..................................................................................................... 75 B.2. Controle de Temperatura ................................................................................................77 B.3. Controlador Proporcional ................................................................................................ 77 B.4. Sintonia do Controlador ................................................................................................... 79 Apêndice C – Kit FRDM-KL25Z: Usando a Saída PWM como um Conversor Digital-Analógico .. 84 C.1. Fundamentos Teóricos ..................................................................................................... 84 C.2. Projeto do Filtro Passa-Baixas .......................................................................................... 86 C.3. Implementação do Projeto no CodeWarrior ................................................................... 89 C.4. Resultados Experimentais ................................................................................................ 91 4 L a b o r a t ó r i o d e S i n a i s e S i s t e m a s 2015 PREFÁCIO Esta apostila tem o objetivo de auxiliar os alunos do curso de Engenharia Elétrica nos estudos da disciplina de Laboratório de Sistemas Lineares, onde a pretensão é simplesmente facilitar o entendimento e compreensão do conteúdo de Sinais e Sistemas. Este material teve como referência a apostila do Laboratório de Sinais e Sistemas, elaborada pelos professores Antonius Henricus Maria de Knegt e Alessandra Lopes Carvalho (com colaboração de Cicéli Martins). Além disso, as bibliografias abaixo foram utilizadas como material complementar: HAYKIN, Simon; VAN VEEN, Barry. Sinais e Sistemas. Porto Alegre: Bookman, 2001. OPPENHEIM, Alan V.; WILLSKY, Alan S.. Sinais e Sistemas. São Paulo: Prentice Hall, 2010. ROBERTS, Michael J.. Fundamentos em Sinais e Sistemas. São Paulo: McGrae-Hill, 2009. Como é apenas a primeira versão, não sendo realizada uma revisão mais criteriosa do material, desta forma, correções e sugestões são bem vindas podendo ser encaminhadas para o responsável da elaboração desta. Desejo que este material possa contribuir de forma agradável e eficiente para a formação dos alunos deste curso. Sejam Bem Vindos e Bons Estudos! WESLEY OLIVEIRA MAIA Professor do Curso de Engenharia de Controle e Automação FACIT ZÉLIA MYRIAN ASSIS PEIXOTO Professora do Programa de Pós-Graduação em Engenharia Elétrica PUC Minas 5 L a b o r a t ó r i o d e S i n a i s e S i s t e m a s 2015 Cronograma de Aulas Aula Capítulo(s) Data Observações 1 1 e 2 2 3 3 4 e 5 4 6 5 7 6 8 7 Primeira Avaliação 8 9 9 10 10 11 11 12 12 13 13 14 14 15 15 Segunda Avaliação 6 Introdução ao MATLAB L a b o r a t ó r i o d e S i n a i s e S i s t e m a s 2015 1. Introdução ao MATLAB 1.1. Fundamentos Teóricos Segundo Chapman (2006), o MATLAB é um programa de computador de uso específico para a execução de cálculos científicos e de engenharia. Foi, inicialmente, concebido como um programa para operações matemáticas sobre matrizes, mas ao longo dos anos, com o incremento de suas funcionalidades, tornou-se um sistema computacional com recursos para soluções de problemas técnico-científicos, em geral. A seguir são listados alguns itens que constam no ambiente MATLAB: Recursos O MATLAB oferece uma ampla biblioteca de funções predefinidas: sin(x); fft(x). feedback(C,G) Comunicação com outros programas: Excel; Java; PSIM. Interface com kits de desenvolvimento: Code Composer Studio/ C6000 / C2000 (Texas Instruments); VisualDSP++ / Blackfin (AnalogDevices); Green Hills MULTI / MPC5500 (Freescale). Toolboxes O MATLAB possui uma família de aplicativos específicos (toolboxes), que são coleções de funções usadas para resolver determinados problemas, tais como: Controle de Processos e Otimização; Processamento de Sinais; Eletrônica de Potência; Redes Neurais, dentre outros. Aplicações Gerais Verificação de softwares para detectar, em tempo de execução, erros antes da compilação ou testes; Análise de projetos através de simulação, antes da implementação e teste; Desenvolvimento de códigos C ou HDL para execução em sistemas embarcados via DSPs, ASICs e FPGAs. Sistemas Embarcados Verificação de projetos antes da implementação e teste; Geração de códigos para prototipagem e produção; 7 Introdução ao MATLAB L a b o r a t ó r i o d e S i n a i s e S i s t e m a s 2015 Processamento Digital de Sinais Aquisição de dados e análise de sinais; Desenvolvimento de algoritmos de processamento de sinais para aplicações em comunicação, áudio e vídeo. Gerar códigos C ou HDL para execução em sistemas embarcados: DSPs, ASICs e FPGAs. Sistemas de Controle Criar modelos para a representação de plantas; Projeto de compensadores e lógica de controle; Verificar o projeto de controle através de simulação. Área de Trabalho do MATLAB Integra diversas ferramentas para gerenciar arquivos, funções e variáveis internas, com a possibilidade de leitura/escrita em arquivos externos ao ambiente. Principais ferramentas presentes na área de trabalho ou que podem ser acessadas a partir dela: CommandWindow (Janela de Comandos); CommandHistory (Janela de Histórico de Comandos); Workspace (Navegador do Espaço de Trabalho); Figure (Janela de Figuras); Editor (Janela de Edição / Depuração). Figura 1 - Área de trabalho do MATLAB. Fonte: Arquivo Pessoal. Obtendo Ajuda O usuário pode obter ajuda de três maneiras distintas: Navegador de Ajuda; Digitar “lookfor” seguido de uma palavra-chave do problema; 8 Introdução ao MATLAB L a b o r a t ó r i o d e S i n a i s e S i s t e m a s 2015 Ex.: lookfor integral <enter> Digitar “help” seguido do nome da função na janela de Comandos. Ex.: help sin <enter> Comandos Importantes clc – limpa o conteúdo da Janela de Comandos; clf – limpa o conteúdo da Janelas de Figuras; clear all – limpa as variáveis do Espaço de Trabalho; close all – fecha todas as janelas de Figuras; whos – lista todas as variáveis e matrizes atuais; ctrl+c – interrompe o programa em execução. 1.2. Atividade Prática A. Assumindo que r = 5 (Ω) e i = 2 (A), calcule o valor de V através da Lei de Ohm, utilizando a Janela de Comandos. >> r = 5; <enter> >> i = 2; <enter> >> v = r*i <enter> B. O comando trapz é utilizado para cálculo de integração numérica através da aproximação trapezoidal. Com a ajuda do help do MATLAB, descubra como esse comando pode ser utilizado para o cálculo da área abaixo da curva figura abaixo. 2y t 0 1 2 3 4 5 6 7 8 9 10 0 2 4 6 8 10 12 14 16 18 20 t y 9 Introdução ao MATLAB L a b o r a t ó r i o d e S i n a i s e S i s t e m a s 2015 C. O comando polyfit encontra os coeficientes de um polinômio p(x) de grau n que se ajuste a um conjunto de dados pré-definidos, no sentido dos mínimos quadrados. Dados os vetores x e y, determine os coeficientes do polinômio usando este comando. x 0 1 2 3 4 5 6 7 8 9 ; y 1 2.5 2 3 3 3 2.5 2.5 2 1 ; 10 Comandos Básicos e Operações com Matrizes L a b o r a t ó r i o d e S i n a i s e S i s t e m a s 2015 2. Comandos Básicos e Operações com Matrizes 2.1. Fundamentos Teóricos A. Iniciando Variáveis no MATLAB No MATLAB as variáveissão criadas automaticamente quando iniciadas. Existem três formas comuns de iniciar uma variável: Associar dados à uma variável usando a declaração de valores: Ex.: r = 10; Ex.: r = [1 2 3 4]; Ex.: r = [1 2 3 4 ; 5 6 7 8]; Fornecer dados à variável pelo teclado: Ex.: i = input('Entre com o valor da corrente (A):'); Ler dados de um arquivo. Ex.: v = tensao.mat B. Expressões O MATLAB é uma linguagem de expressões que são interpretadas e avaliadas pelo sistema. As expressões são compostas por operadores e outros caracteres especiais, de funções e dos nomes das variáveis. As avaliações das expressões produzem matrizes, que podem (ou não) ser mostradas na tela e atribuídas às variáveis para uso futuro. É importante ressaltar que o MATLAB faz distinção entre letras maiúsculas e minúsculas, assim a e A não são as mesmas variáveis. Além disso, todas as funções devem ser escritas em letras minúsculas: inv(A) calcula a inversa de A, mas INV(A) é uma função indefinida. C. Matrizes A unidade fundamental de dados, em qualquer programa MATLAB, é a matriz. Matriz é uma coleção de dados organizados em linhas e colunas, conhecidos por um único nome. Matrizes podem ser classificadas como vetores e matrizes: 11 Comandos Básicos e Operações com Matrizes L a b o r a t ó r i o d e S i n a i s e S i s t e m a s 2015 Vetor – matriz com somente uma dimensão; 1 2 3 1 2 3 [ ]i T i a a a a a a a a (1) Matriz – matriz com i linhas e j colunas (separar linhas com ; ) 11 1 1 j ij i ij a a A a a (2) D. Operações com Escalares Tabela 1 - Operações no MATLAB Operação Forma Algébrica Forma MATLAB Soma a + b a + b Subtração a - b a - b Multiplicação a x b a* b Divisão a / b a / b Exponencial ab a^b E. Operações com Matrizes As operações com matrizes no MATLAB são realizadas de duas formas distintas: Operações Estruturais – São operações entre matrizes executadas elemento a elemento. Podem também ocorrer entre uma matriz e um escalar. Operações Matriciais – São operações entre matrizes executadas segundo as regras normais da álgebra linear. O MATLAB utiliza um ponto (.) antes do símbolo da operação para diferenciar operações estruturais de operações matriciais. 12 Comandos Básicos e Operações com Matrizes L a b o r a t ó r i o d e S i n a i s e S i s t e m a s 2015 2.2. Atividade Prática A. A profundidade de um poço, em metros, pode ser determinada deixando-se cair uma pedra dentro dele (com velocidade inicial zero) e aguardando-se até que ela atinja o fundo do mesmo. Isso ocorre após a distância: 21 2 d gt Onde t é o tempo de queda livre do objeto e g = 9,8m/s2. Plote a curva dxt de queda livre de um objeto para um intervalo de 0 a 10s. Solução Script MATLAB %===================================================================== % Laboratório de Sinais e Sistemas % FACIT / PUC MINAS %===================================================================== % LAB 2a - Comandos Básicos e Operações com Matrizes %===================================================================== % Ajuste interface % Menu VIEW -> Desktop Layout -> Default %===================================================================== clc; % Limpa a janela de comando clear all; % Remove todas as variáveis e funções da memória do MATLAB close all; % Fecha todas as janelas de figuras abertas %===================================================================== t = 0:1:9; % Vetor t com os valores de tempo g = 9.8; % Aceleração da gravidade d = (1/2)*g*t.^2; % Cálculo da distância %===================================================================== % Plotando figura(s) figure(1) plot(t,d) title('Gráfico de Distância em Queda Livre') xlabel('tempo(s)') ylabel('Distância (m)') grid on %===================================================================== 13 Comandos Básicos e Operações com Matrizes L a b o r a t ó r i o d e S i n a i s e S i s t e m a s 2015 Figura(s) B. O circuito mostrado na figura seguinte representa um gerador com resistência interna (R1) e uma carga com resistência variável ( 2 0 200R ) conectada externamente. Determine o valor de R2 para a máxima transferência de potência através da curva PxR2. C. A figura seguinte mostra um circuito elétrico composto de resistores e fontes de tensão. Determine a corrente de cada malha usando a Lei de Kirchhoff para tensões e o método das correntes de malha. 0 1 2 3 4 5 6 7 8 9 10 0 50 100 150 200 250 300 350 400 450 500 Gráfico de Distância em Queda Livre tempo(s) D is tâ n c ia ( m ) R1 100Ω R2 50%V1 20 V R1 100Ω V1 20 V R2 220Ω R3 200Ω R 4 150Ω V2 10 V R 5 330Ω R 6 100Ω 14 Ramificações e Laços L a b o r a t ó r i o d e S i n a i s e S i s t e m a s 2015 3. Ramificações e Laços 3.1. Fundamentos Teóricos As ramificações são declarações do MATLAB que permitem selecionar e executar seções específicas de um código. O MATLAB disponibiliza três variações desse tipo de construção (CHAPMAN, 2003): IF / ELSE; SWITCH / CASE; TRY / CATCH. O comando IF tem a seguinte forma: if condicao1 Comandos1 Comandos2 ... elseif Comandos3 Comandos4 ... else Comandos5 Comandos6 ... end A primeira condição é sempre escrita com IF, a última com ELSE e todas as intermediárias com ELSEIF. A estrutura SWITCH permite selecionar um bloco específico do código para ser executado, com base no valor de um único inteiro, caractere ou expressão lógica. A forma geral é: switch(expressao) case expressao_case_1, Comandos1 Comandos2 ... case expressao_case_2, Comandos1 Comandos2 ... otherwise, Comandos1 Comandos2 ... end 15 Ramificações e Laços L a b o r a t ó r i o d e S i n a i s e S i s t e m a s 2015 O MATLAB contém dois comandos para gerar loops, o comando FOR e o comando WHILE. O laço FOR executa um bloco de comandos durante um número especificado de vezes. Ele tem a seguinte forma: for indice = expressao Comandos1 Comandos2 ... end O laço WHILE é um bloco de comandos que se repetem indefinidamente, enquanto uma condição for satisfeita. Sua forma geral é: while expressao Comandos1 Comandos2 ... end 3.2. Atividade Prática A. Desenvolva um script MATLAB que leia três valores de temperatura em graus Fahrenheit, converta essa temperatura para um valor absoluto em Kelvin e Celsius e mostre o resultado. 5( 32) 9 F C T T 5 32 273,15 9 F K T T Solução Script MATLAB %===================================================================== % Laboratório de Sinais e Sistemas % FACIT / PUC MINAS %===================================================================== % LAB 3a - Ramificações e Laços %===================================================================== % Ajuste interface % Menu VIEW -> Desktop Layout -> Default %===================================================================== clc; % Limpa a janela de comando clear all; % Remove todas as variáveis e funções da memória do MATLAB closeall; % Fecha todas as janelas de figuras abertas %===================================================================== for i=1:1:3 Tf = input('Entre com o valor de temperatura em graus Fahrenheit(F):'); Tc = (5*(Tf-32))/9; 16 Ramificações e Laços L a b o r a t ó r i o d e S i n a i s e S i s t e m a s 2015 Tk = (5/9)*(Tf-32)+273.15; fprintf('A temperatura em graus Celsius = %6.2f \n',Tc) fprintf('A temperatura em graus Kelvin = %6.2f \n',Tk) end %===================================================================== B. Construa uma rotina para determinar a soma dos n primeiros termos da série: 1 ( 1) 2 kn k k Execute a rotina para n = 4 e n = 20. C. A função sin(x) pode ser escrita em termos da série de Taylor, como: 2 1 0 ( 1) sin( ) (2 1)! k kx x k Escreva uma função que calcule sin(x) usando a série de Taylor. 17 Composição e Decomposição de Sinais L a b o r a t ó r i o d e S i n a i s e S i s t e m a s 2015 4. Composição e Decomposição de Sinais 4.1. Fundamentos Teóricos Um sinal de tempo ( )x t , contínuo no tempo, será um sinal par se atender a condição dada pela Equação 3, o que significa que sinais serão simétricos em relação ao eixo vertical (Haykin e Van Veen, 2001): ( ) ( )x t x t (3) Um sinal de tempo contínuo ( )x t será um sinal ímpar se o mesmo estiver de acordo com a Equação (4). Isto significa que sinais ímpares serão simétricos em relação à origem. ( ) ( )x t x t (4) O sinal qualquer ( )x t pode ser expresso como a soma das componentes par ( )px t e impar ( )ix t , da seguinte maneira: ( ) ( ) ( )p ix t x t x t (5) Desta forma, tem-se que: 1 ( ) ( ) ( ) 2 px t x t x t (6) 1 ( ) ( ) ( ) 2 px t x t x t (7) 4.2. Atividade Prática A. Considere o sinal descrito pela função 2( ) ty t e , com uma taxa de amostragem 0.01t e o intervalo [-3, 3]. Implemente um script para a construção dos seguintes gráficos: I. Sinal original; II. Componente par; III. Componente ímpar; IV. Reconstrução do sinal (componente par + componente ímpar). 18 Composição e Decomposição de Sinais L a b o r a t ó r i o d e S i n a i s e S i s t e m a s 2015 Solução Script MATLAB %===================================================================== % Laboratório de Sinais e Sistemas % FACIT / PUC MINAS %===================================================================== % LAB 4a - Composição e Decomposição de Sinais %===================================================================== % Ajuste interface % Menu VIEW -> Desktop Layout -> Default %===================================================================== clc; % Limpa a janela de comando clear all; % Remove todas as variáveis e funções da memória do MATLAB close all; % Fecha todas as janelas de figuras abertas %===================================================================== % Criar um vetor (Operador dois pontos) % prim:incr:ultm t = -3:0.01:3; % Sinal Original y = exp(-2*t); % Componente Par yp = 1/2*(exp(-2*t)+exp(2*t)); % Componente Impar yi = 1/2*(exp(-2*t)-exp(2*t)); %===================================================================== % Plotando figura(s) figure(1) subplot(3,1,1) plot(t,y); title('Sinal Original'); % Título da figura xlabel('t'); % Legenda para o eixo X ylabel('Y'); % Legenda para o eixo Y legend ('exp(-2t)'); % Legenda para o figura grid on subplot(3,1,2) plot(t,yp); title('Componente Par'); % Título da figura xlabel('t'); % Legenda para o eixo X ylabel('Yp'); % Legenda para o eixo Y legend ('Par'); % Legenda para o figura grid on subplot(3,1,3) plot(t,yi); title('Componente Impar'); % Título da figura xlabel('t'); % Legenda para o eixo X ylabel('Yi'); % Legenda para o eixo Y legend ('Impar'); % Legenda para o figura grid on 19 Composição e Decomposição de Sinais L a b o r a t ó r i o d e S i n a i s e S i s t e m a s 2015 % Reconstrução do sinal yrec = yp + yi; figure(2) plot(t,yrec,'*'); title('Reconstrução do sinal'); % Título da figura xlabel('t'); % Legenda para o eixo X ylabel('Yrec'); % Legenda para o eixo Y legend ('Sinal'); % Legenda para o figura grid on %===================================================================== Figura(s) -3 -2 -1 0 1 2 3 0 500 Sinal Original t Y exp(-2t) -3 -2 -1 0 1 2 3 0 200 400 Componente Par t Y p Par -3 -2 -1 0 1 2 3 -500 0 500 Componente Impar t Y i Impar -3 -2 -1 0 1 2 3 0 50 100 150 200 250 300 350 400 450 Reconstrução do sinal t Y re c Sinal 20 Composição e Decomposição de Sinais L a b o r a t ó r i o d e S i n a i s e S i s t e m a s 2015 B. Considere o sinal descrito pela função 3( ) 2 cos (10 )y t t t , com uma taxa de amostragem 0.01t e o intervalo [-5, 5]. Escreva um scriptpara a construção dos seguintes gráficos: I. Sinal original; II. Componente par; III. Componente ímpar; IV. Reconstrução do sinal (componente par + componente ímpar). C. Considere o sinal descrito pela função 3 3( ) (1 )cos (10 )y t t t , com uma taxa de amostragem 0.02t e o intervalo [-4, 4]. Desenvolva umscriptpara a construção dos seguintes gráficos: I. Sinal original; II. Componente par; III. Componente ímpar; IV. Reconstrução do sinal (componente par + componente ímpar). 21 Energia e Potência de Sinais L a b o r a t ó r i o d e S i n a i s e S i s t e m a s 2015 5. Energia e Potência de Sinais 5.1. Fundamentos Teóricos No processamento de sinais, informações de qualquer natureza (ex.: corrente elétrica, força, temperatura, etc.) são representadas matematicamente. Devido aos diversos tipos de sinais físicos existentes, a energia de um sinal é definida como a área sob a sua magnitude quadrática, independentemente da natureza do sinal como: 2 ( )E x t dt (8) Para muitos sinais, como por exemplo, os sinais periódicos, a integral da Equação 8 não converge e a energia de sinal resulta em um valor infinito. Isso ocorre devido ao sinal não ter comprimento finito no tempo (Roberts, 2011). Para sinais cuja energia é infinita, é mais conveniente lidar com a potência média, sobre um intervalo de tempo T. Para sinais periódicos, a determinação da potência de sinal média é definida como: 0 0 21 ( ) t T t P x t dt T (9) Similarmente, no caso de um sinal de tempo discreto x[n], a energia total é definida por: 2[ ] n E x n (10) E a potência média para um sinal periódico x[n], com período fundamental N amostras, é definida por: 1 2 0 1 [ ] N n P x n N (11) Um sinal é chamado de sinal de energia se, e somente se, a energia total do sinal satisfizer a condição: 0 E Um sinal é chamado de sinal de potência se, e somente se, a potência média do sinal satisfizer a condição: 0 P 22 Energia e Potência de Sinais L a b o r a t ó r i o d e S i n a i s e S i s t e m a s 2015 5.2. Atividade Prática A. Usando o MATLAB, calculea energia e potência de sinal para o sinal periódico mostrado abaixo. Este tem período fundamental igual a 10. Inicialmente, busque o Help para a função trapz. ( ) 3 , 5 5x t t t Solução Script MATLAB %===================================================================== % Laboratório de Sinais e Sistemas % FACIT / PUC MINAS %===================================================================== % LAB 5a - Energia e Potência de Sinais %===================================================================== % Ajuste interface % Menu VIEW -> Desktop Layout -> Default %===================================================================== clc; % Limpa a janela de comando clear all; % Remove todas as variáveis e funções da memória do MATLAB close all; % Fecha todas as janelas de figuras abertas %===================================================================== % Período Fundamental e passo de integração To = 10; dt = 0.1; % Cria um vetor (Operador dois pontos) t = -5:dt:5; % Calcula os valores da função y = -3*t; % Calcula o sinal y ao quadrado y_sq = y.^2; % Calculando a potência do sinal P = (1/To)*(trapz(t,y_sq)) % Calculando a energia do sinal E = (trapz(t,y_sq)) %===================================================================== % Plotando figura(s) figure(1) plot(t,y) title('Sinal'); % Título da figura xlabel('t'); % Legenda para o eixo X ylabel('Y'); % Legenda para o eixo Y grid on %===================================================================== Figura(s) 23 Energia e Potência de Sinais L a b o r a t ó r i o d e S i n a i s e S i s t e m a s 2015 B. Usando o MATLAB, calcule a energia para o sinal: [ ] 0,9 (2 n/ 4) n x n sen C. Usando o MATLAB, calcule a energia ou a potência média para os sinais abaixo: I. 5cos( ), 1 t 1 ( ) 0, t x t casocontrário II. cos[ n], 4 t 4 [ ] 0, x n casocontrário -5 -4 -3 -2 -1 0 1 2 3 4 5 -15 -10 -5 0 5 10 15 Sinal t Y 24 Sinais Periódicos e Não Periódicos L a b o r a t ó r i o d e S i n a i s e S i s t e m a s 2015 6. Sinais Periódicos e Não Periódicos 6.1. Fundamentos Teóricos A caracterização dos sinais quanto à simetria (par ou ímpar) ou periodicidade são de grande importância para o desenvolvimento de algoritmos eficientes. Quanto à periodicidade, para um sinal x(t) no domínio do tempo contínuo e x[n] no domínio do tempo discreto, tem-se que: A. Sinais de Tempo Contínuo Um sinal x(t) é periódico se satisfaz a condição: ( ) ( )x t x t T , *,t T (12) Ou seja, se esta condição for satisfeita para T = To, ela também será satisfeita para T = 2To, T=3To, (...). Assim, o menor valor de T que satisfaz a expressão 12 é chamado período fundamental e define a duração de um ciclo completo de x(t). A frequência do sinal é calculada como: 0 2 T [rad/s] Figura 2 - Forma de onda de um sinal periódico de tempo contínuo Fonte: Arquivo Pessoal. B. Sinais de Tempo Discreto Um sinal x[n] é periódico se satisfaz a condição: ( ) ( )x n x n N , *,n N (13) 0 0.005 0.01 0.015 0.02 0.025 0.03 0.035 0.04 -1 -0.8 -0.6 -0.4 -0.2 0 0.2 0.4 0.6 0.8 1 Sinal de Tempo Contínuo 25 Sinais Periódicos e Não Periódicos L a b o r a t ó r i o d e S i n a i s e S i s t e m a s 2015 O menor valor de N inteiro que satisfaz a expressão 13 é chamado período fundamental do sinal discreto x[n]. A frequência angular ou frequência fundamental é: 2 N [rad/amostra] (14) Figura 3 - Forma de onda de um sinal periódico de tempo discreto Fonte: Arquivo Pessoal. 6.2. Atividade Prática A. Um sinal discreto é descrito por: [ ] (0,3 )x n sen n I. Plote este sinal para 20 20n ; II. Este sinal é periódico? Se for qual o período fundamental? III. Repita I e II para o sinal: [ ] (0,3 )x n sen n Solução Script MATLAB %===================================================================== % Laboratório de Sinais e Sistemas % FACIT / PUC MINAS %===================================================================== % LAB 6a - Sinais Periódicos e Não Periódicos %===================================================================== 5 10 15 20 25 30 35 40 -1 -0.8 -0.6 -0.4 -0.2 0 0.2 0.4 0.6 0.8 1 Sinal de Tempo Discreto 26 Sinais Periódicos e Não Periódicos L a b o r a t ó r i o d e S i n a i s e S i s t e m a s 2015 % Ajuste interface % Menu VIEW -> Desktop Layout -> Default %===================================================================== clc; % Limpa a janela de comando clear all; % Remove todas as variáveis e funções da memória do MATLAB close all; % Fecha todas as janelas de figuras abertas %===================================================================== % Cria um vetor (Operador dois pontos) n = -20:1:20; % Calcula os valores da função y = sin(0.3*n); %===================================================================== % Plotando figura(s) figure(1) stem(y,'LineWidth',2);axis([1 41 -1 1]) title('y = sin(0.3*n)') % Título da figura grid on %===================================================================== Figura(s) B. Um sinal contínuo é descrito por: ( ) (2 )x t sen ft Onde f = 60 Hz e o sinal é amostrando amostrado com uma frequência fa= 1000 Hz. I. Plote este sinal para 0 0.1t ; II. Este sinal é periódico? Se for qual o período fundamental? III. Repita I e II para uma frequência de amostragem fa = 300π. 5 10 15 20 25 30 35 40 -1 -0.8 -0.6 -0.4 -0.2 0 0.2 0.4 0.6 0.8 1 y = sin(0.3*n) 27 Sinais Periódicos e Não Periódicos L a b o r a t ó r i o d e S i n a i s e S i s t e m a s 2015 C. Elabore o gráfico da função g[n]: [ ] 2 cos(9 / 4) 3 (6 / 5), 50 50g n n sen n n Com base no gráfico determine o período fundamental. 28 Convolução Linear Discreta L a b o r a t ó r i o d e S i n a i s e S i s t e m a s 2015 7. Convolução Linear Discreta 7.1. Fundamentos Teóricos Um sistema discreto é definido, matematicamente, como uma transformação ou um operador� que mapeia uma sequência de entrada �[�]em uma sequência de saída �[�], ou seja,(OPPENHEIM; SCHAFER, 2010): [ ] [ ]y n H x n (15) “Se um sistema atende às propriedades da linearidade (teorema da superposição) e invariância no tempo (qualquer deslocamento sobre o sinal de entrada implica em um mesmo deslocamento no sinal de saída), então o sistema é denominado linear e invariante no tempo (SLIT) e poderá ser completamente caracterizado por sua Resposta ao Impulso!” Genericamente, um sinal discreto qualquer pode ser expresso como sequência de impulsos deslocados no tempo e amplitude �[�], em � = �: [ ] [ ] [ ] k x n x k n k (16) Tomando a expressão (16) e indicando ℎ�[�] como a resposta do sistema ao impulso aplicado à entrada �[� − �], em � = �, a saída do SLIT poderá ser calculada conforme a seguinte expressão: [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] k k k k y n H x k n k y n x k H n k y n x k h n (17) Figura 4 - Sistema Discreto representado pelo operador H{}. Fonte: Arquivo Pessoal.29 Convolução Linear Discreta L a b o r a t ó r i o d e S i n a i s e S i s t e m a s 2015 7.2. Atividade Prática A. O exemplo a seguir tem por objetivo a aplicação do método gráfico para o cálculo manual da saída de um SLIT discreto cuja resposta ao impulso e sinal de excitação são dados a seguir: 3, 1 2, 0 [ ] 1, 1 0, . . n n h n n c c 4, 0 3, 1 [ ] 2, 2 0, . . n n x n n c c Solução Script MATLAB %===================================================================== % Laboratório de Sinais e Sistemas % FACIT / PUC MINAS %===================================================================== % LAB 7a - Convolução Discreta (Método Gráfico) % PROGRAMA DEMONSTRATIVO %===================================================================== % Ajuste interface % Menu VIEW -> Desktop Layout -> Default %===================================================================== clc; % Limpa a janela de comando clear all; % Remove todas as variáveis e funções da memória do MATLAB close all; % Fecha todas as janelas de figuras abertas %===================================================================== % Parte 1 n1 = -1:1; h = [-3 2 1]; fprintf('\n') fprintf('\n') fprintf('MÉTODO GRÁFICO PARA O CÁLCULO DA CONVOLUÇÃO \n'); fprintf('PROGRAMA DEMONSTRATIVO \n') fprintf('\n') fprintf('\n') fprintf('Pressione qualquer tecla para visualizar a Resposta ao Impulso: \n') fprintf('\n') fprintf('\n') pause 30 Convolução Linear Discreta L a b o r a t ó r i o d e S i n a i s e S i s t e m a s 2015 figure(1) stem(n1,h,'LineWidth',2); axis([-4 6 -3 3]) title('Resposta ao Impulso h[n]'); xlabel('Amostras'); ylabel('Amplitude'); grid on; fprintf('Pressione qualquer tecla para visualizar o Sinal de Excitação: \n') fprintf('\n') fprintf('\n') pause %===================================================================== % Parte 2 n2 = 0:2; x = [4 3 -2]; figure(2) stem(n2,x,'r','LineWidth',2); axis([-4 6 -3 4]) title('Sinal de Excitação x[n]') xlabel('Amostras'); ylabel('Amplitude'); grid on; %===================================================================== % Parte 3 fprintf('Pressione qualquer tecla para a Resposta ao Impulso espelhada: \n') fprintf('\n') fprintf('\n') pause hespelhado = [1 2 -3]; figure(3) stem(n1,hespelhado,'LineWidth',2); axis([-4 6 -3 3]) title('Resposta ao Impulso h[n] espelhada') xlabel('Amostras'); ylabel('Amplitude'); grid on; %===================================================================== %Parte 4 fprintf('Pressione qualquer tecla para visualizar os deslocamentos sucessivos entre os sinais. \n') fprintf('Os resultados parciais da convolução serão a soma dos produtos, ponto a ponto, dos impulsos. \n') fprintf('\n') fprintf('\n') pause %===================================================================== % Parte 5 for(i=0:6) n1 = -3:-1; n1 = n1+i; figure(4) stem(n1,hespelhado,'LineWidth',2) 31 Convolução Linear Discreta L a b o r a t ó r i o d e S i n a i s e S i s t e m a s 2015 hold on stem(n2,x,'r','LineWidth',2); axis([-4 6 -3 4]) xlabel('Amostras'); ylabel('Amplitude'); grid on; if i==0 title('Se n < 0, y[n] = 0') elseif i==1 title('y[0] = -12') elseif i==2 title('y[1] = -1') elseif i==3 title('y[2] = 16') elseif i==4 title('y[3] = -1') elseif i==5 title('y[4] = -2') else title('n > 5, y[5] = 0 ') end; pause close all end %===================================================================== %Parte 6 fprintf('Pressione qualquer tecla para o gráfico resultante da saída y[n]: \n') fprintf('\n') fprintf('\n') pause saida = [0 -12 -1 16 -1 -2 0]; eixox = [-1 0 1 2 3 4 5]; figure(5) stem(eixox,saida,'LineWidth',2); axis([-1 5 -15 20]); grid on; title('Saída y[n] resultante') xlabel('Amostras'); ylabel('Amplitude') %===================================================================== B. Considere os sinais x[n] e h[n]: [ ] [ ] [ 16]x n u n u n 1 1 2 2 [ ] 10 ( 4) ( 1) [ ] [ ] [ ] [ ] 0,1 ( ) ( 5) n n h n u n u n h n h n h n h n u n u n Resolver a convolução x[n]*h[n] usando a função conv() disponível no MATLAB. Construa os gráficos dos sinais x[n], h[n] e y[n]. Interprete. 32 Convolução Linear Discreta L a b o r a t ó r i o d e S i n a i s e S i s t e m a s 2015 C. Considere os sinais discretos h[n] = [-1 1 2 1], onde h[n] é a resposta ao impulso do sistema H, e x[n] é um sinal senoidal com amplitude máxima igual a 10V e frequência 100Hz. Construa os gráficos dos sinais x[n], h[n] e y[n]. Interprete. 33 Sistemas no Domínio S L a b o r a t ó r i o d e S i n a i s e S i s t e m a s 2015 8. Sistemas no Domínio S 8.1. Fundamentos Teóricos A Transformada de Laplace é, basicamente, um método dedicado à solução de equações diferenciais lineares, dentre outros (OGATA,2003). Operações como diferenciação e integração podem ser substituídas por operações algébricas no plano complexo, também chamado de Plano s . Assim, uma equação diferencial linear pode ser transformada em uma equação linear algébrica, função de uma variável complexa s (HAYKIN e VAN VEEN, 2001): s j (17) Se considerarmos uma exponencial complexa ste , cos sin st t te e t e t (18) então as parcelas real e imaginária de ste são, respectivamente, um cosseno e um seno exponencialmente amortecidos. A Transformada de Laplace de uma função ( )f t , no domínio do tempo contínuo, é definida como: L[ ( )] ( ) ( ) stf t F s f t e dt (19) Um sistema pode ser facilmente modelado por uma função de transferência ( )G s que relaciona algebricamente as transformadas de Laplace dos sinais de saída ( )Y s e entrada ( )X s , conforme equação 20, ( ) ( ) ( ) Y s G s X s (20) Esta abordagem ainda permite a modelagem do sistema através de um diagrama de blocos, relacionando a entrada, o sistema e saída, conforme a figura 5. Figura 5 - Representação por diagrama de blocos Fonte: Arquivo Pessoal 34 Sistemas no Domínio S L a b o r a t ó r i o d e S i n a i s e S i s t e m a s 2015 Um dos requisitos básicos para a análise e projeto de um sistema de controle é determinar a resposta no domínio do tempo desse sistema a uma dada entrada. Desta maneira, geralmente são selecionados entradas para teste padronizadas para verificação da resposta e se os requisitos de desempenho podem ser alcançados através de um simples ajuste nos parâmetros do sistema. Estas entradas de teste são mostradas na tabela 2 (NISE, 2002). Tabela 2 - Sinais de Teste Usados em Sistemas de Controle Entrada Função Gráfico Uso Impulso ( )t Modelagem de Resposta Transitória Degrau ( )u t Resposta transitória; Erro de Estado Estacionário Rampa ( )tu t Erro de Estado Estacionário Senóide ( )sen t Resposta transitória; Erro de Estado Estacionário Fonte: Nise (2002). 8.2. Atividade Prática A. Seja o sistema M(s) um motor CC controlador pela corrente de campo, cuja função de transferência é dada por: ( ) ( ) ( ) ( )( ) m f f f Ks M s V s s Js b L s R Onde, ( )s : Ângulo de rotação; ( )fV s : Tensão de campo; mK : Constante de torque do motor; J : Inércia; f(t) t f(t) t f(t) t f(t) t 35 Sistemas no Domínio S L a b o r a t ó r i o d e S i n a i s e S i s t e m a s 2015 b : Coeficiente de atrito viscoso; fL : Indutância da armadura; fR : Resistência da armadura. Os valores dos parâmetros são fornecidos na Tabela 3. Tabela 3 - Parâmetros do motor CC Parâmetros Valores Constante de torque do motor 5 N.m/A Inércia 1 N.m.s2 / rad Coeficiente de atrito viscoso 20 kg /m /s Indutância da armadura 1 mH Resistência da armadura 1 Ω Implemente um script que plote: I. A resposta do sistema quando submetido a um degrau unitário na entrada; II. A resposta do sistema quando submetido a um impulso unitário na entrada; III. Calcule a saída do sistema em resposta a uma entrada x(t) senoidal com frequência 5Hz amostrada com ta=0.01 durante 1 segundo. Solução Script MATLAB %===================================================================== % Laboratório de Sinais e Sistemas % FACIT / PUC MINAS %===================================================================== % LAB 8a - Sistemas no Domínio S %===================================================================== % Ajuste interface % Menu VIEW -> Desktop Layout -> Default %===================================================================== clc; % Limpa a janela de comando clear all; % Remove todas as variáveis e funções da memória do MATLAB close all; % Fecha todas as janelas de figuras abertas %===================================================================== s = tf('s') Km = 5; J = 1; b = 20; Lf = 1; Rf = 1; f = 5; t=0:0.01:1; y = sin(2*pi*f*t); M = Km/(s*(J*s+b)*(Lf*s+Rf)) %===================================================================== 36 Sistemas no Domínio S L a b o r a t ó r i o d e S i n a i s e S i s t e m a s 2015 % Plotando figura(s) figure(1) step(M) title('Resposta ao Degrau') grid on figure(2) impulse(M) title('Resposta ao Impulso') grid on figure(3) lsim(M,y,t) title('Resposta à Senoide') grid on %===================================================================== Figura(s) 0 0.5 1 1.5 2 2.5 3 x 10 4 0 1000 2000 3000 4000 5000 6000 7000 8000 Resposta ao Degrau Time (seconds) A m p lit u d e 0 1 2 3 4 5 6 0 0.05 0.1 0.15 0.2 0.25 Resposta ao Impulso Time (seconds) A m p lit u d e 37 Sistemas no Domínio S L a b o r a t ó r i o d e S i n a i s e S i s t e m a s 2015 B. O diagrama de blocos mostrado abaixo representa um sistema térmico com malha de realimentação unitária. Com base na função de transferência em malha aberta (FTMA), determine a constante de tempo (Tc), o tempo de assentamento (Ts) e erro de estado estacionário para uma entrada em degrau unitário. Compare estes resultados com aqueles obtidos para o sistema em malha fechada (FTMF). 0,01665 ( ) 0,002299 G s s FTMA FTMF Tc Ts Erro C. Considere o acréscimo de um controlador proporcional (KP) para melhorar a resposta do sistema. Determine o valor de KP de modo que o erro de estado estacionário seja de 1%, considerando a entrada degrau unitário. 0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1 -1 -0.8 -0.6 -0.4 -0.2 0 0.2 0.4 0.6 0.8 1 Resposta à Senoide Time (seconds) A m p lit u d e 38 Resposta em Frequência L a b o r a t ó r i o d e S i n a i s e S i s t e m a s 2015 9. Resposta em Frequência 9.1. Fundamentos Teóricos Para o levantamento prático da Resposta em Frequência de um sistema linear, varia-se a frequência de um sinal senoidal aplicado à sua entrada, dentro de uma faixa adequada à análise do sistema, e para cada valor aplicado obtém-se a amplitude e fase do sinal de saída. Considere o sistema linear, estável e invariante no tempo, mostrado na figura 6. Figura 6 - Sistema no domínio da frequência Fonte: Arquivo Pessoal Se a entrada x(t) for um sinal senoidal, a saída y(t) em regime permanente também será um sinal senoidal com a mesma frequência, mas possivelmente o módulo e o ângulo de fase serão diferentes, conforme figura 7. Figura 7 - Sinais senoidais de entrada e saída do sistema G(s) Fonte: Arquivo Pessoal A função G(jω), denominada Resposta em Frequência, é a Transformada de Fourier da Resposta ao Impulso do sistema e relaciona-se à sua Função de Transferência G(s) pela substituição da variável complexa � = � + �� por ��, ou seja, considerando o sistema em regime estacionário, no qual o fator de amortecimento é igual a zero (� = 0). ( ) ( ) ( ) Y j G j X j (21) G(jω) é uma função complexa que pode ser caracterizada na forma polar pelo seu módulo e fase, respectivamente, |�(��)| e �(�). O módulo é, usualmente, avaliado em decibéis (dB) conforme a expressão (22): 39 Resposta em Frequência L a b o r a t ó r i o d e S i n a i s e S i s t e m a s 2015 10( ) 20log ( ) dBG j G j (22) 9.2. Atividade Prática A. Dado o circuito RC mostrado na figura abaixo, obter a função de transferência G(jω) e plotar o diagrama de Bode deste filtro, identificando a frequência de corte. Solução Script MATLAB %===================================================================== % Laboratório de Sinais e Sistemas % FACIT / PUC MINAS %===================================================================== % LAB 9a - Resposta em Frequência %===================================================================== % Ajuste interface % Menu VIEW -> Desktop Layout -> Default %===================================================================== clc; % Limpa a janela de comando clear all; % Remove todas as variáveis e funções da memória do MATLAB close all; % Fecha todas as janelas de figuras abertas %===================================================================== s = tf('s'); R = 100; % Resistência C = 47e-6; % Capacitância G = 1/(R*C*s+1); % Função de transferência do circuito RC série %===================================================================== % Plotando figura(s) figure(1) bode(G) %===================================================================== Vs R1 100Ω C1 47µF 40 Resposta em Frequência L a b o r a t ó r i o d e S i n a i s e S i s t e m a s 2015 Figura(s) B. Suponha que um sinal a ser capturado por um sistema de aquisição de dados é conhecido por ter um espectro de amplitude que é plano até 100 kHz e decai a zero repentinamente a partir daí. Suponha ainda que a maior taxa na qual nosso sistema de aquisição de dados pode amostrar o sinal seja de 60 kHz. Projete um filtro antialiasingpassa-baixa RC que reduza o espectro de amplitude do sinal em 30 kHz para menos de 1% de seu valor nas freqüências muito baixas de maneira que o efeito aliasing seja minimizado. Com o auxílio do MATLAB, plotar o diagrama de Bode deste filtro. C. Os filtros ativos são implementados utilizando-se amplificadores operacionais, juntamente com resistores e capacitores. A figura abaixo mostra um filtro passa-alta (FPA) na topologia Sallen-Key, cuja principal característica é facilidade de implementação a partir da função de transferência. 10 1 10 2 10 3 10 4 -90-45 0 P h a s e ( d e g ) Bode Diagram Frequency (rad/s) -40 -30 -20 -10 0 System: G Frequency (rad/s): 212 Magnitude (dB): -3 M a g n itu d e ( d B ) U1 741 3 2 4 7 6 51 C1 C2 R1 R2 Vin Vo ut 41 Resposta em Frequência L a b o r a t ó r i o d e S i n a i s e S i s t e m a s 2015 2 2 2 1 2 1 2 2 1 2 ( ) 2 (2 ) 1 2 1 2 ( ) c c c c s H s f s s f Q f R R C C Q f R C C O fator de qualidade Q determina o formato da resposta do filtro: Bessel: Q=0,5; Butterworth: Q=0,707; Chebyshev: Q>0,707. Projete um FPA a partir da topologia anterior para uma frequência de corte 1cf kHz.Com o auxílio do MATLAB, plotar o diagrama de Bode deste filtro. 42 Composição de Sinais L a b o r a t ó r i o d e S i n a i s e S i s t e m a s 2015 10. Composição de Sinais 10.1. Fundamentos Teóricos Conhecendo os coeficientes da Série de Fourier é possível reconstruir um sinal periódico qualquer: 0 0 0 1 ( ) cos(2 ) (2 )n n n y t a a f nt b sen f nt , para n = 1, 2, 3, 4, 5, ... (23) Onde, f0: freqüência fundamental; n: harmônico atual; a0, an, bn: coeficientes. Para gerar uma onda triangular, considere: 0 02 1 ( ) cos(2 )ny t a a f nt n , para n = 1, 3, 5, 7, ... (24) 0 2 0 0 1 8 0; ;n nb a a T T Para gerar uma onda quadrada, considere: 1 2 0 0 ( 1) ( ) cos(2 ) n ny t a a f nt n , para n = 1, 3, 5, 7, ... (25) 0 1 2 0; ; 2 n nb a a Para gerar uma onda dente de serra, considere: ( 1) 0 ( 1) ( ) (2 ) n ny t a sen f nt n , para n = 1, 2, 3, 4, ... (26) 0 2 0; 0;n nb a a 43 Composição de Sinais L a b o r a t ó r i o d e S i n a i s e S i s t e m a s 2015 10.2. Atividade Prática A. Utilize os coeficientes da Serie de Fourier para traçar um onda triangular entre 0 e 3 seg com ta=0.01seg e frequência fundamental fo=1Hz. Solução Script MATLAB %===================================================================== % Laboratório de Sinais e Sistemas % FACIT / PUC MINAS %===================================================================== % % LAB 10a - Composição de Sinais % %===================================================================== % % Ajuste interface % Menu VIEW -> Desktop Layout -> Default % %===================================================================== clc; % Limpa a janela de comando clear all; % Remove todas as variáveis e funções da memoria do matlab close all; % Fecha todas as janelas de figuras abertas %===================================================================== A=1; Ta=0.01; fa=1/Ta; t=0:Ta:3; m = input('numero de harmonicos da serie: '); f0=1; T0=1/f0; w0=2*pi*f0; somatorio=zeros(1,length(t)); pause; for n=1:2:m; yatual=(1/(n^2))*cos(n*w0*t); % harmonico atual yy=yatual + somatorio; % soma anterior + yatual somatorio=yy; % atualizaçao do somatorio if n==1; z=[yatual' somatorio']; elseif n>1; z=[yatual' somatorio' z]; end; y=(A/T0) + (A*8/((pi^2)*T0))*z; figure(1),plot(t,y), grid on; pause; end; figure(2),plot(t,y(:,2)), grid on %===================================================================== 44 Composição de Sinais L a b o r a t ó r i o d e S i n a i s e S i s t e m a s 2015 Figura(s) B. Utilize os coeficientes da Serie de Fourier para traçar um onda quadrada entre 0 e 3 seg com ta=0.01seg e frequência fundamental fo=1Hz. C. Utilize os coeficientes da Serie de Fourier para traçar um onda dente de serra entre 0 e 3 seg com ta=0.01seg e frequência fundamental fo=1Hz. 0 0.5 1 1.5 2 2.5 3 0 0.2 0.4 0.6 0.8 1 1.2 1.4 1.6 1.8 2 45 Transformada Rápida de Fourier L a b o r a t ó r i o d e S i n a i s e S i s t e m a s 2015 11. Transformada Rápida de Fourier 11.1. Fundamentos Teóricos Em diversos problemas da engenharia, há a necessidade de analisar sistemas discretizados no tempo, excitados por sinais aperiódicos. A representação por Transformada de Fourier de Tempo Discreto (DTFT) é expressa como: [ ]j j n n X e x n e (27) A notação prática da DTFT é definida por: 1 / 0 [ ] [ ] ,0 1 N j nk N n X k x n e k N (28) Em (ROBERTS, 2009) é proposto o seguinte algoritmo para calcular computacionalmente a DTFT (escrito em script MATLAB), que implementa as operações realizadas na equação 13: % Calcular X[k] em um laço de repetição duplo aninhado for k = 0:N-1 for n = 0:NF-1 X(k+1) = X(k+1) + X(n+1)*exp(-j*2*pi*n*k/N); end end O cálculo computacional de uma DTFT utilizando este algoritmo requer N2 operações de soma e multiplicações complexas. Em 1965, Cooley e Tukey propuzeram um algoritmo mais eficiente em termos computacionais para grandes vetores de entrada cujo comprimento seja uma potência inteira de dois. Esse algoritmo é denominado de Transformada Rápida de Fourier (Fast Fourier Transform - FFT). Abaixo são destacadas algumas considerações importantes para a aplicação da FFT (PEIXOTO, 2013): Deve-se observar que se L < N, então o sinal [ ]x n deve ser preenchido com zeros até o comprimento N, adaptando o comprimento da sequência para o cálculo da DFT (zero-padding); Quanto maior é o número de zeros acrescentados a [ ]x n , mais a DFT se parece com a sua transformada de Fourier. Isto ocorre devido ao maior número de amostras tomadas no intervalo; A quantidade de zeros no preenchimento depende da complexidade aritmética permitida pela aplicação desejada, pois quanto maior o número de zeros maiores os requisitos computacionais e de memória envolvidos. 46 Transformada Rápida de Fourier L a b o r a t ó r i o d e S i n a i s e S i s t e m a s 2015 11.2. Atividade Prática A. O sinal y(t) é a soma de dois sinais senoidais, o primeiro com amplitude de 0,7 e frequência de 50Hz e o segundo com amplitude 1 e frequência de 120Hz. Usando o MATLAB, calcule a FFT do sinal y(t) para uma frequência de amostragem igual a 1kHz. Além disso, plote as figuras do sinal y(t) e da sua FFT. 0,7 (2 50 ) (2 120 )y sen t sen t Solução Script MATLAB %===================================================================== % Laboratório de Sinais e Sistemas % FACIT / PUC MINAS %===================================================================== % % LAB 11 - Transformada Rápida de Fourier % %===================================================================== % % Ajuste interface % Menu VIEW -> Desktop Layout -> Default % %===================================================================== clc; % Limpa a janela de comando clear all; % Remove todas as variáveis e funções da memoria do matlab close all; % Fecha todas as janelas de figuras abertas %===================================================================== Fs = 1000; % Frequência de amostragem T = 1/Fs; % Período de amostragem L = 1000; % Comprimento do sinal t = (0:L-1)*T; % Vetor de tempo % Soma de uma senoide de 50 Hz e umasenoide de 120 Hz y = 0.7*sin(2*pi*50*t) + sin(2*pi*120*t); NFFT = 2^nextpow2(L); % Calcula a potência de 2 mais próxima do % comprimento do vetor y Y = fft(y,NFFT)/L; % Calcula a FFT f = Fs/2*linspace(0,1,NFFT/2+1); %===================================================================== % Plotando figuras % Sinal y figure(1) subplot(2,1,1) plot(Fs*t(1:50),y(1:50)) title('Sinal y(t)') xlabel('Tempo (milisegundos)') 47 Transformada Rápida de Fourier L a b o r a t ó r i o d e S i n a i s e S i s t e m a s 2015 % Espectro de Amplitude de y(t) subplot(2,1,2) plot(f,2*abs(Y(1:NFFT/2+1))) title('Espectro de Amplitude de y(t)') xlabel('Frequência (Hz)') ylabel('|Y(f)|') %===================================================================== Figura(s) B. O sinal z(t) é a soma de dois sinais senoidais (y(t) e x(t)). Usando o MATLAB, calcule a FFT do sinal y(t) para uma frequência de amostragem igual a 1kHz. Além disso, plote as figuras do sinal y(t) e da sua FFT. ( ) 1,15 ( ) ( ) ( ) ( ) ( ) (3 ) 6 y t Vm sen t z t y t x t Vm x t sen t Considere: Vm = 10; f = 60. C. Na pasta da disciplina, no portal acadêmico, se encontram dois arquivos de extensão “.cvs” com os dados capturados, via osciloscópio, da forma de onda de tensão fase-fase e da corrente de saída de um inversor 3-níveis. Faça o upload desses dados para o MATLAB e, na sequência, calcule a FFT das duas formas de onda. 48 Transformada Rápida Inversa L a b o r a t ó r i o d e S i n a i s e S i s t e m a s 2015 12. Transformada Rápida Inversa 12.1. Fundamentos Teóricos As equações 29 e 30 são denominadas de par de transformação de Fourier no tempo contínuo, pois permitem a mudança do domínio do tempo para o domínio da freqüência (e vice-versa), conforme figura 8. A função X(jω) é conhecida como transformada de Fourier e a função x(t) é conhecida como transformada inversa de Fourier (OPPENHAIM; WILLSKY, 2010). ( ) ( ) j tX j x t e dt (29) 1 ( ) ( ) 2 j tx t X j e d (30) Figura 8 - Relação entre FFT e IFFT. Fonte: Arquivo Pessoal. 12.2. Atividade Prática A. O sinal y(t) é a soma de dois sinais senoidais (z(t) e x(t)). Usando o MATLAB, calcule a FFT do sinal y(t) para uma frequência de amostragem igual a 1kHz. Além disso, calcule da IFFT para recuperar o sinal a partir das componentes geradas pelo cálculo da FFT. 1 1 2 2 ( ) (2 ) ( ) ( ) ( ) ( ) (2 ) z t A sen f t y t z t x t x t A sen f t Considere: A1 = 0,7; A2 = 1; f1 = 25; f2 = 60. 49 Transformada Rápida Inversa L a b o r a t ó r i o d e S i n a i s e S i s t e m a s 2015 Solução Script MATLAB %===================================================================== % Laboratório de Sinais e Sistemas % FACIT / PUC MINAS %===================================================================== % % LAB 12 - Transformada Rápida Inversa de Fourier % %===================================================================== % % Ajuste interface % Menu VIEW -> Desktop Layout -> Default % %===================================================================== clc; % Limpa a janela de comando clear all; % Remove todas as variáveis e funções da memoria do matlab close all; % Fecha todas as janelas de figuras abertas %===================================================================== Fs = 1000; % Frequência de amostragem T = 1/Fs; % Período de amostragem L = 1024; % Comprimento do sinal t = (0:L-1)*T; % Vetor de tempo f1 = 25; % frequência 1 f2 = 60; % frequência 2 A1 = 0.7; % amplitude 1 A2 = 1; % amplitude 2 % PARTE 1 % Soma de uma senoide de 6 Hz e uma senoide de 20 Hz y = A1*sin(2*pi*f1*t) + A2*sin(2*pi*f2*t); %PARTE 2 NFFT = 2^nextpow2(L); % Calcula a potência de 2 mais próxima do % comprimento do vetor y Y = fft(y,NFFT)/L; % Calcula a FFT f = Fs/2*linspace(0,1,NFFT/2+1); %PARTE 3 w = (-NFFT/2:NFFT/2-1)*(Fs/NFFT); % intervalo de frequência centralizado Yshift = fftshift(Y); % PARTE 4 yf = ifft(fftshift(Yshift)); %===================================================================== % Plotando figuras % Sinal y 50 Transformada Rápida Inversa L a b o r a t ó r i o d e S i n a i s e S i s t e m a s 2015 figure(1) subplot(2,1,1) plot(t,y),title('Onda senoidal 25Hz + 60Hz');axis([0 0.4 -2 2]) grid on xlabel('Tempo (s)') ylabel('y(t)') % Espectro de Amplitude de y(t) subplot(2,1,2) plot(t,y,'r'),title('Sinal com Ruido') grid on plot(f,2*abs(Y(1:NFFT/2+1))) title('Espectro de Amplitude de y(t)') xlabel('Frequência (Hz)') ylabel('|Y(f)|') figure(2) plot(w,2*abs(Yshift)); grid on xlabel('Frequência (Hz)') ylabel('Amplitude') title('FFT centralizada') figure(3) subplot(2,1,1) plot(t,NFFT*real(yf));axis([0 0.4 -2 2]) title('Sinal Recuperado a partir das Componentes Geradas pela FFT') grid on xlabel('Tempo (s)') ylabel('y(t)') subplot(2,1,2) plot(t,y);axis([0 0.4 -2 2]) title('Sinal Original') grid on xlabel('Tempo (s)') ylabel('y(t)') %===================================================================== Figura(s) 0 0.05 0.1 0.15 0.2 0.25 0.3 0.35 0.4 -2 -1 0 1 2 Onda senoidal 25Hz + 60Hz Tempo (s) y (t ) 0 50 100 150 200 250 300 350 400 450 500 0 0.2 0.4 0.6 0.8 Espectro de Amplitude de y(t) Frequência (Hz) |Y (f )| 51 Transformada Rápida Inversa L a b o r a t ó r i o d e S i n a i s e S i s t e m a s 2015 B. O sinal y(t) é a soma de dois sinais senoidais (w(t), z(t) e x(t)). Usando o MATLAB, calcule a FFT do sinal y(t) para uma frequência de amostragem igual a 2kHz. Além disso, calcule da IFFT para recuperar o sinal a partir das componentes geradas pelo cálculo da FFT. 1 1 2 2 3 3 ( ) (2 ) ( ) (2 )( ) ( ) ( ) ( ) ( ) cos(2 ) z t A sen f t x t A sen f ty t z t x t w t w z A f t Considere: A1 = 0,7; A2 = 1; A3 = 2; f1 = 25; f2 = 60; f3 = 40. -500 -400 -300 -200 -100 0 100 200 300 400 500 0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 Frequência (Hz) A m p lit u d e FFT centralizada 0 0.05 0.1 0.15 0.2 0.25 0.3 0.35 0.4 -2 -1 0 1 2 Sinal Recuperado a partir das Componentes Geradas pela FFT Tempo (s) y (t ) 0 0.05 0.1 0.15 0.2 0.25 0.3 0.35 0.4 -2 -1 0 1 2 Sinal Original Tempo (s) y (t ) 52 Transformada Rápida Inversa L a b o r a t ó r i o d e S i n a i s e S i s t e m a s 2015 C. Seja o sinal x(t) amostrado com frequência de amostragem Fs = 10kHz. Considere f1=200Hz e f2=400Hz. Foram coletados 200 pontos. 1 2( ) 2 cos(2 ) cos(2 )x t f t f t Plote: I. O sinal no domínio do tempo; II. O sinal no domínio da freqüência; III. A transformada inversa de Fourier. 53 Teorema da Amostragem L a b o r a t ó r i o d e S i n a i s e S i s t e m a s 2015 13. Teorema da Amostragem 13.1. Fundamentos Teóricos De acordo com Oppenhaim e Willsky (2010), uma forma de representara amostragem de um sinal de tempo contínuo em intervalos regulares é por meio de um trem de impulsos periódico multiplicado pelo sinal de tempo continuo x(t) que se deseja amostrar. ( ) ( )px x t p t (31) Em que, ( ) ( )p t t nT (32) Desta forma, xp(t) é um trem de impulsos com amplitudes dos impulsos iguais às amostras de x(t) em intervalos espaçados de T: ( ) ( )px x nT t nT (33) De acordo com o Teorema de Nyquist, a frequência de amostragem Sf deve ser maior ou igual ao dobro da maior frequência contida no sinal amostrado mf , ou seja, 2S mf f . Desta forma o sinal amostrado pode ser reproduzido integralmente sem erro de alisiang, conforme é demonstrado na figura 9. Figura 9 - Amostragem de um sinal contínuo no tempo Fonte: Arquivo Pessoal. 0 0.5 1 1.5 2 2.5 3 3.5 4 4.5 5 x 10 4 -20 -10 0 10 20 Sinal y(t) 5 10 15 20 25 30 35 40 45 -20 -10 0 10 20 Sinal amostrado 54 Teorema da Amostragem L a b o r a t ó r i o d e S i n a i s e S i s t e m a s 2015 Na prática, como esses impulsos são difíceis de serem gerados e transmitidos, é utilizado o retentor de ordem zero (zero-order hold - ZOH). Este sistema, mostrado na figura 10, amostra o sinal x(t) em determinado instante e mantém esse valor durante um intervalo de tempo até a próxima amostragem. A frequência de amostragem determina esse intervalo de tempo entre as amostragens. Figura 10 - Sistema com retentor de ordem zero Fonte: Arquivo Pessoal. O resultado desse processo é mostrado na figura 11, onde um sinal senoidal x(t), com frequência de 50 Hz, é amostrado a uma taxa de 500 Hz, gerando o sinal xp(t). Figura 11 - Amostragem utilizando o retentor de ordem zero. Fonte: Arquivo Pessoal. Para digitalizar um sinal, precisamos de uma base de tempo e um conversor analógico digital (analog-to-digital converter - ADC), que fornece uma aproximação digital do sinal original, conforme figura 12. Essa aproximação digital é registrada em N–bits. A base de tempo determina a velocidade como que podemos amostrar a forma de onda e varia mais com o tipo de ADC. É possível ter uma precisão de 24 bits e frequências de 1 GHz, mas não simultaneamente. Em geral, quanto maior for o número de bits, mais lento o dispositivo. 55 Teorema da Amostragem L a b o r a t ó r i o d e S i n a i s e S i s t e m a s 2015 Figura 12 - Conversor analógico-digital. Fonte: Arquivo Pessoal. Nos microcontroladores, após o processo de conversão do ADC, as aproximações digitais de N-bits são armazenadas temporariamente na memória RAM do dispositivo. O bit mais significativo (MSB) é o que registra a maior variação de tensão, e o bit menos significativo (LSB) registra a menor variação de tensão. 13.2. Atividade Prática A. Considere o sinal x(t) , onde f1=20Hz e f2=90Hz. 1 2( ) 20 (2 ) 10 (2 )x t sen f t sen f t Plote: I. O sinal x(t) no domínio do tempo; II. O sinal x(t) com frequência de amostragem Fs = 300 Hz; III. O sinal x(t) com frequência de amostragem Fs = 600 Hz; IV. O sinal x(t) com frequência de amostragem Fs = 1200 Hz. Análise e compare os resultados obtidos para as diferentes frequências de amostragem. 56 Teorema da Amostragem L a b o r a t ó r i o d e S i n a i s e S i s t e m a s 2015 Solução Script MATLAB %===================================================================== % Laboratório de Sinais e Sistemas % FACIT / PUC MINAS %===================================================================== % % LAB 13a - Transformada Rápida de Fourier % %===================================================================== % % Ajuste interface % Menu VIEW -> Desktop Layout -> Default % %===================================================================== clc; % Limpa a janela de comando clear all; % Remove todas as variáveis e funções da memoria do matlab close all; % Fecha todas as janelas de figuras abertas %===================================================================== Fs = 300; % Frequência de amostragem Tamost = 1/Fs; % Período de amostragem dt = 1e-6; amost = 0; f1 = 20; f2 = 70; temp = []; sinal_cont = []; amost_Z = []; t_cont = []; for(t=0:dt:0.05) X = 20*sin(2*pi*f1*t); Y = 10*sin(2*pi*f2*t); Z = X + Y; if t>=amost; amost = amost + Tamost; temp = [temp; t]; amost_Z = [amost_Z; Z]; end sinal_cont = [sinal_cont; Z]; t_cont = [t_cont, t]; end %===================================================================== % Plotando figuras % Sinal y figure(1) 57 Teorema da Amostragem L a b o r a t ó r i o d e S i n a i s e S i s t e m a s 2015 plot(t_cont,sinal_cont,'LineWidth',2); title('Sinal x(t)') grid on % Sinal Amostrado figure(2) plot(amost_Z,'LineWidth',2); axis([1 15 -30 30]) title('Sinal Amostrado - Fs = 1200') hold on stem(amost_Z, 'r'); axis([1 15 -30 30]) grid on %===================================================================== Figura(s) B. Considere o sinal x(t) , onde f1=50Hz. 1( ) 10 (2 )x t sen f t Implemente no Simulink um modelo de simulação e plote: I. O sinal x(t) no domínio do tempo; II. O sinal x(t) com frequência de amostragem Fs = 200 Hz; 0 0.005 0.01 0.015 0.02 0.025 0.03 0.035 0.04 0.045 0.05 -30 -20 -10 0 10 20 30 Sinal x(t) 2 4 6 8 10 12 14 -30 -20 -10 0 10 20 30 Sinal Amostrado - Fs = 300 5 10 15 20 25 30 -30 -20 -10 0 10 20 30 Sinal Amostrado - Fs = 600 10 20 30 40 50 60 -30 -20 -10 0 10 20 30 Sinal Amostrado - Fs = 1200 58 Teorema da Amostragem L a b o r a t ó r i o d e S i n a i s e S i s t e m a s 2015 III. O sinal x(t) com frequência de amostragem Fs = 1000 Hz; 59 Teorema da Amostragem L a b o r a t ó r i o d e S i n a i s e S i s t e m a s 2015 Command Window >> plot(sinal(:,1),sinal(:,2)) >> hold on >> plot(sinal(:,1),sinal(:,3),'r') 0 0.01 0.02 0.03 0.04 0.05 0.06 0.07 0.08 0.09 0.1 -1 -0.8 -0.6 -0.4 -0.2 0 0.2 0.4 0.6 0.8 1 60 Teorema da Amostragem L a b o r a t ó r i o d e S i n a i s e S i s t e m a s 2015 C. Considere o sinal y(t): 1 1 2 2 ( ) (2 ) ( ) ( ) ( ) ( ) (2 ) z t A sen f t y t z t x t x t A sen f t Onde: A1 = 0,7; A2 = 1; f1 = 25; f2 = 60. Plote: I. O sinal y(t) no domínio do tempo; II. O sinal y(t) com frequência de amostragem Fs = 180 Hz; III. O sinal y(t) com frequência de amostragem Fs = 300 Hz; IV. O sinal y(t) com frequência de amostragem Fs = 600 Hz. Calcule a FFT e compare os resultados obtidos para as diferentes frequências de amostragem. 61 Reconstituição de um Sinal Analógico L a b o r a t ó r i o d e S i n a i s e S i s t e m a s 2015 14. Reconstituição de um Sinal Analógico 14.1. Fundamentos Teóricos De acordo com a teoria de Fourier, qualquer sinal pode ser decomposto em uma soma infinita de harmônicos em frequências múltiplas inteiras da frequência fundamental. Desta forma, a Série de Fourier pode ser utilizada para representar um sinal de onda quadrada, como o sinal proveniente da modulação por largura de pulso (PWM - pulse width modulation). Este