·

Engenharia Elétrica ·

Processamento Digital de Sinais

Envie sua pergunta para a IA e receba a resposta na hora

Fazer Pergunta

Texto de pré-visualização

Processamento Digital de Sinais Laboratório 1 Sinais de Tempo Discreto Prof Vicente I Becerra Sablón 1 1 I INTRODUÇÃO MATLAB é uma ferramenta de software ideal para estudar processamento de sinal digital DSP Sua linguagem tem muitas funções comumente necessárias para criar e processar sinais A capacidade de plotagem do MATLAB torna possível visualizar os resultados do processamento e obter compreensão em operações complicadas No laboratório apresentamos alguns dos fundamentos do DSP no contexto do MATLAB Neste ponto alguns os exercícios são extremamente simples para que se adquira familiaridade com o ambiente MATLAB I1 SINAIS DE TEMPO DISCRETO No MATLAB podemos representar uma sequência discreta de duração finita por um vetor linha coluna Contudo este vetor não tem informação de referência sobre a informação n de cada amostra Por tanto a representação xn necessita de dois vetores um representando os valores das amostras e outro representando o valor da posição das amostras Por exemplo uma sequência de números x em que o nésimo número da sequência é indicado formalmente como Onde a seta indica que amostra esta na posição n 0 Com o MATLAB o vetor x e n podem ser definidos da seguinte forma n 32101234 x 21101437 Ou n 3 2 1 0 1 2 3 4 x 2 1 1 0 1 4 3 7 Exercício 1 Trace o gráfico da sequência a Utilize o comando stem n Processamento Digital de Sinais Laboratório 1 Sinais de Tempo Discreto Prof Vicente I Becerra Sablón 2 2 b Utilize o comando stem nx c Compare e comente os resultados Geralmente o vetor x será utilizado Quando a informação da posição das amostras não é necessária Quando a posição das amostras foi trivial por exemplo quando a sequência inicia em n0 Uma sequência infinita não pode ser representada com o MATLAB Exercício 2 Defina e faça o gráfico das seguintes funções Processamento Digital de Sinais Laboratório 1 Sinais de Tempo Discreto Prof Vicente I Becerra Sablón 3 3 2 SEQUÊNCIAS BÁSICAS Agora vamos estudar o toolbox de processamento de sinais Os comandos contidos neste pacote podem ser listados com help signal help dsp Os sinais básicos usados frequentemente no processamento de sinais digitais são impulso unitário exponenciais e ondas senoidais Os exercícios a seguir são direcionados À geração e representação desses sinais no MATLAB Como o único tipo de dado numérico no MATLAB é a matriz M x N os sinais devem ser representados como vetores ou M x 1 se é um vetor fila ou 1I x N se é um vetor coluna Uma segunda questão é o domínio de indexação associado a um vetor de sinal O MATLAB assume por padrão que o comprimento do vetor é indexado de 1 a N Em contraste um vetor de sinal é muitas vezes é o resultado da amostragem de um sinal em algum domínio onde a indexação vai de 0 a N 1 Processamento Digital de Sinais Laboratório 1 Sinais de Tempo Discreto Prof Vicente I Becerra Sablón 4 4 1 Sequência Impulso Unitário Exercício 3 a Trace o gráfico da sequência impulso usando o código a seguir Códigos do MATLAB A função zeros 1N gera um vetor linha de N zeros para gerar δn L pontos n 0 to n L1 Foi selecionado L 31 Observe que n 0 corresponde com imp 1 L 31 nn 0L1 imp zerosL1 imp11 stem imp b Trace o gráfico da sequência impulso usando o código a seguir Podemos também utilizar a função stem A sequência impulso é definida como uma sequência discreta onde o valor é 1 apenas para n 0 e 0 em todos os outros valores de n Definindo a sequência impulso x 1 zeros1 10 Plotando o gráfico da sequência impulso stemx axis1 10 05 15 ajustando os limites dos eixos Configurando os rótulos dos eixos xlabeln ylabelxn titleGráfico da Sequência Impulso c Compare e comente os resultados Processamento Digital de Sinais Laboratório 1 Sinais de Tempo Discreto Prof Vicente I Becerra Sablón 5 5 Processamento Digital de Sinais Laboratório 1 Sinais de Tempo Discreto Prof Vicente I Becerra Sablón 6 6 2 Sequência Impulso Unitário Deslocado Códigos do MATLAB A função lógica n0 e uma forma elegante de representar a δnn0 no intervalo Exercício 4 Criar a Função Impulso function x n impseqn0 n1 n2 Gera a função impulso xn delta nn0n1 n n2 n n1n2 x nn0 0 stem x a Trace o gráfico da sequência impulso unitário deslocado utilizando a função impseq 5 0 10 b Trace o gráfico da sequência impulso unitário deslocado usando a função stem Segue o código Obs Para traçar o gráfico da função impulso discreto unitário deslocado no Matlab podemos utilizar a mesma função stem e deslocar a função por um número inteiro k onde k é o deslocamento A função impulso discreto unitário deslocado é definida como uma sequência discreta onde o valor é 1 apenas para n k e 0 em todos os outros valores de n deslocada no tempo por um valor k Segue abaixo o código Matlab para plotar o gráfico da função impulso discreto unitário deslocado Definindo o vetor de tempo n 55 Definindo o deslocamento k k 2 Definindo a função impulso discreto unitário deslocado Processamento Digital de Sinais Laboratório 1 Sinais de Tempo Discreto Prof Vicente I Becerra Sablón 7 7 x zeros1 k 1 zeros1 lengthnk1 Plotando o gráfico da função impulso discreto unitário deslocado stemn x axis5 5 05 15 ajustando os limites dos eixos Configurando os rótulos dos eixos xlabeln ylabelxn titleGráfico da Função Impulso Discreto Unitário Deslocado c Compare e comente os resultados d Seja xn 2δn 2 δn 4 5 n 5 Trace o gráfico da sequencia xn utilizando a função impseq n 55 x 2impseq2 55 impseq4 5 5 stem n x title Sequencia xn xlabeln ylabelxn Processamento Digital de Sinais Laboratório 1 Sinais de Tempo Discreto Prof Vicente I Becerra Sablón 8 8 3 Sequência Degrau Unitário Exercício 5 a Trace o gráfico da sequência Degrau utilizando o código a seguir Código do MATLAB A função ones 1N gera um vetor linha de N uns para gerar un N31 nn 0N1 deg ones 1N stem deg b Trace o gráfico da sequência Degrau utilizando o código a seguir Definindo o vetor de tempo n 1010 Definindo a sequência degrau discreta x zeros1 10 ones1 11 Plotando o gráfico da sequência degrau discreta stem n x axis11 11 05 15 ajustando os limites dos eixos Configurando os rótulos dos eixos xlabeln ylabelxn titleGráfico da Sequência Degrau Discreta Obs O código Matlab apresentado define uma sequência degrau discreta com 21 amostras e a plota utilizando a função stem O comando n 1010 define o vetor de tempo que varia de 10 a 10 Processamento Digital de Sinais Laboratório 1 Sinais de Tempo Discreto Prof Vicente I Becerra Sablón 9 9 O comando x zeros1 10 ones1 11 cria um vetor com 21 elementos onde os primeiros 10 elementos são iguais a 0 e os 11 últimos elementos são iguais a 1 definindo assim a sequência degrau discreta O comando stemn x plota a sequência degrau discreta utilizando a função stem O comando axis11 11 05 15 ajusta os limites dos eixos para que o gráfico fique bem ajustado Os comandos xlabeln ylabelxn e titleGráfico da Sequência Degrau Discreta configuram os rótulos dos eixos e o título do gráfico O resultado deve ser um gráfico com uma linha horizontal em y0 para n 0 e uma linha horizontal em y1 para n 0 A linha vertical em n 0 é o ponto de transição da sequência de 0 para 1 c Compare e comente os resultados Processamento Digital de Sinais Laboratório 1 Sinais de Tempo Discreto Prof Vicente I Becerra Sablón 10 10 4 Sequência Degrau Unitário Deslocado Códigos do MATLAB A função lógica n 0 e uma forma elegante de representar a unn0 no intervalo Exercício 6 Criar a Função Degrau function x n stepseqn0 n1 n2 Gera a função Degrau unn0 n1 n0 n2 n n1n2 x nn0 0 stem x a Trace o gráfico da sequência degrau unitário deslocado utilizando a função stepseq 5 0 10 b Trace o gráfico da sequência degrau unitário deslocado utilizando o seguinte código Definindo o vetor de tempo n 1010 Definindo o valor de n0 n0 5 Definindo a sequência degrau discreto unitário deslocado n n0 x zeros1 n0 ones1 lengthn n0 Adicionando zeros no final do vetor x para que tenha o mesmo comprimento que n x x zeros1 lengthn lengthx Plotando o gráfico da sequência degrau discreto unitário deslocado n n0 Processamento Digital de Sinais Laboratório 1 Sinais de Tempo Discreto Prof Vicente I Becerra Sablón 11 11 stemn x Configurando os rótulos dos eixos xlabeln ylabelxn titleGráfico da Sequência Degrau Discreto Unitário Deslocado n n0 c Compare e comente os resultados d Seja xn n un un 10 10e03n 10 un 10 un 20 0 n 20 Trace o gráfico da sequencia xn utilizando a função stepseq n 020 x1 nstepseq0020 stepseq10020 x2 10exp03n10stepseq10020 stepseq20020 x x1 x2 stemnx titleSequencia de Degraus xlabeln ylabel xn Processamento Digital de Sinais Laboratório 1 Sinais de Tempo Discreto Prof Vicente I Becerra Sablón 12 12 5 Sequência Exponenciais Reais Códigos do MATLAB O operador é utilizado para a implementação do exponencial real Exercício 7 Represente a Usando o código a seguir n 010 x 09n stemnx b Usando o código a seguir n 010 y 09n stemn y xlabeln ylabel09n titleGráfico da função 09n c Compare os resultados Processamento Digital de Sinais Laboratório 1 Sinais de Tempo Discreto Prof Vicente I Becerra Sablón 13 13 6 Sequencia Senoidal Códigos do MATLAB Os sinais para serem tratados pelo computador devem estar na forma discreta embora possamos gerar gráficos como se eles fossem contínuos para isto basta que se use um número suficientemente grande de pontos do sinal contínuo Estes pontos ou amostras são obtidos pelo processo de amostragem que consiste em dividir o eixo do tempo por exemplo em intervalos com espaçamento uniforme Δt que é chamado de intervalo de amostragem O inverso do intervalo de amostragem é denominado de frequência de amostragem fs que indica a cadência com que uma dada variável é amostrada no caso mais comum esta variável é o tempo Para se gerar um vetor t no intervalo 01s com Δt 0001s fs 1 kHz usamse os seguintes comandos fs 1000 frequência de amostragem t 0 1fs 1 vetor com amostras separadas de 0001s 1 ms A função cos ou sin são utilizadas para gerar a função senoidal Exercício 8 Implemente uma função sinseq que trace a seguinte sequência function x sinseqn1n2 Senóide n n101n2 x 3cos01pin pi3 2sin05pin stem x sinseq 0 10 b Implemente a função usando o código a seguir e compare function x sinseqn1n2 Senóide n n101n2 x 3cos01pin pi3 2sin05pin stemn x xlabeln Processamento Digital de Sinais Laboratório 1 Sinais de Tempo Discreto Prof Vicente I Becerra Sablón 14 14 ylabelxn titleGráfico da Senóide Discreta end Processamento Digital de Sinais Laboratório 1 Sinais de Tempo Discreto Prof Vicente I Becerra Sablón 15 15 7 Comprovação dos Exercícios e Problemas Realizados em Sala 1 Represente as seguintes sequências A função 𝛿𝑛 representa um impulso unitário discreto que é definido como 𝛿𝑛 1 𝑛 0 0 𝑛 0 Você pode representar essa função usando o MATLAB da seguinte maneira n 1010 Definindo o eixo do tempo delta zeros110 1 zeros110 Criando um vetor para deltan stemndelta Plotando o gráfico xlabeln Adicionando rótulo no eixo x ylabelδn Adicionando rótulo no eixo y titleImpulso unitário discreto δn Adicionando título ao gráfico Neste código o vetor delta é criado usando a função zeros para criar um vetor de zeros com 10 elementos à esquerda e à direita de um elemento de valor 1 para 𝑛 0 Finalmente o gráfico é plotado usando a função stem A função 𝛿𝑛3 representa um impulso unitário discreto deslocado em 3 unidades para a direita que é definido como 𝛿𝑛3 1 𝑛 3 0 𝑛 3 Você pode representar essa função usando o MATLAB da seguinte maneira n 1010 Definindo o eixo do tempo delta zeros113 1 zeros17 Criando um vetor para deltan3 stemndelta Plotando o gráfico xlabeln Adicionando rótulo no eixo x ylabelδn3 Adicionando rótulo no eixo y Processamento Digital de Sinais Laboratório 1 Sinais de Tempo Discreto Prof Vicente I Becerra Sablón 16 16 titleImpulso unitário discreto δn3 Adicionando título ao gráfico Neste código o vetor delta é criado usando a função zeros para criar um vetor de zeros com 13 elementos à esquerda e 7 elementos à direita de um elemento de valor 1 para 𝑛 3 Finalmente o gráfico é plotado usando a função stem Para representar a sequência 𝑥𝑛𝛿𝑛𝛿𝑛3 usando o MATLAB podemos utilizar o seguinte códigon 019 Definindo o eixo do tempo x 1 0 0 1 zeros116 Definindo a sequência xn stemnx Plotando o gráfico xlabeln Adicionando rótulo no eixo x ylabelxn Adicionando rótulo no eixo y titleSequência xn deltan deltan3 Adicionando título ao gráfico Processamento Digital de Sinais Laboratório 1 Sinais de Tempo Discreto Prof Vicente I Becerra Sablón 17 17 b 𝑥𝑛𝑢𝑛𝑢𝑛5 A função 𝑢𝑛 é definida como 𝑢𝑛 1 𝑛 0 0 𝑛 0 Você pode representar essa função usando o MATLAB da seguinte maneira n 1010 Definindo o eixo do tempo u n 0 Criando um vetor de valores 1 e 0 para un stemnu Plotando o gráfico xlabeln Adicionando rótulo no eixo x ylabelun Adicionando rótulo no eixo y titleFunção degrau unitário un Adicionando título ao gráfico Neste código o vetor u é criado usando uma comparação lógica n 0 que produz um vetor de valores 1 e 0 para cada elemento do vetor n Quando n é maior ou igual a zero o valor correspondente de u é 1 caso contrário é 0 Em seguida o gráfico é plotado usando a função stem A função 𝑢𝑛5 é definida como 𝑢𝑛5 0 𝑛 5 1 𝑛 5 Você pode representar essa função usando o MATLAB da seguinte maneira n 1015 Definindo o eixo do tempo u n 5 Criando um vetor de valores 1 e 0 para un5 uneg u Invertendo o sinal de un5 unegn5 0 Zerando os valores negativos de un5 stemnuneg Plotando o gráfico xlabeln Adicionando rótulo no eixo x ylabelun5 Adicionando rótulo no eixo y titleFunção un5 Adicionando título ao gráfico Processamento Digital de Sinais Laboratório 1 Sinais de Tempo Discreto Prof Vicente I Becerra Sablón 18 18 Neste código o vetor u é criado usando uma comparação lógica n 5 que produz um vetor de valores 1 e 0 para cada elemento do vetor n deslocado 5 unidades para a direita Quando n é maior ou igual a 5 o valor correspondente de u é 1 caso contrário é 0 Em seguida o vetor uneg é criado invertendo o sinal de u e em seguida os valores negativos são zerados usando uma comparação lógica n5 Finalmente o gráfico é plotado usando a função stem Representar usando Matlab 𝑥𝑛𝑢𝑛𝑢𝑛5 A função 𝑥𝑛𝑢𝑛𝑢𝑛5 é definida como 𝑥𝑛 1 0 𝑛 5 0 𝑛 0 ou 𝑛 5 Você pode representar essa função usando o MATLAB da seguinte maneira n 1015 Definindo o eixo do tempo u1 n 0 Criando um vetor de valores 1 e 0 para un u2 n 5 Criando um vetor de valores 1 e 0 para un5 x u1 u2 Criando o vetor xn stemnx Plotando o gráfico xlabeln Adicionando rótulo no eixo x ylabelxn Adicionando rótulo no eixo y titleFunção xn un un5 Adicionando título ao gráfico Neste código os vetores u1 e u2 são criados usando comparações lógicas n 0 e n 5 respectivamente que produzem vetores de valores 1 e 0 para cada elemento do vetor n Em seguida o vetor x é criado subtraindo u2 de u1 o que resulta em um valor de 1 apenas para o intervalo de 𝑛 em que 0 𝑛 5 Finalmente o gráfico é plotado usando a função stem Processamento Digital de Sinais Laboratório 1 Sinais de Tempo Discreto Prof Vicente I Becerra Sablón 19 19 c Para representar a sequência 𝑥𝑛𝛿𝑛12 𝛿𝑛1122 𝛿𝑛2123 𝛿𝑛3 usando o MATLAB podemos utilizar o seguinte código n 1010 Definindo o eixo do tempo x zeros1lengthn Inicializando a sequência xn com zeros xn0 1 Atribuindo 1 na posição n0 xn1 12 Atribuindo 12 na posição n1 xn2 122 Atribuindo 122 na posição n2 xn3 123 Atribuindo 123 na posição n3 stemnx Plotando o gráfico xlabeln Adicionando rótulo no eixo x ylabelxn Adicionando rótulo no eixo y titleSequência xn deltan 12 deltan1 122 deltan2 123 deltan3 Adicionando título ao gráfico Processamento Digital de Sinais Laboratório 1 Sinais de Tempo Discreto Prof Vicente I Becerra Sablón 20 20 Relatório APRESENTAÇÃO DOS RESULTADOS Apresentar um relatório contendo 1 Titulo 2 Fundamentação Teórica mencionar a referência bibliográfica utilizada 3 Procedimento e Resultados Experimentais respondendo em cada experimento as perguntas realizadas 31 Comentar anexar os resultados dos Exercícios realizados no Laboratórios Exercícios 1 2 3 4 67 8 32 Use o MATLAB para 71 Representar e traçar as seguintes sequências exponenciais reais de comprimento 72 Implemente e trace os gráficos das seguintes sequências 73 Trace os gráficos das seguintes sequências e determine se estes sinais são periódicos ou não Processamento Digital de Sinais Laboratório 1 Sinais de Tempo Discreto Prof Vicente I Becerra Sablón 21 21 4 Conclusões mencionar a referencia bibliográfica utilizada 5 Bibliografia Consultada Nota Os relatórios deverão ser apresentados completos