Docsity
Docsity

Prepare-se para as provas
Prepare-se para as provas

Estude fácil! Tem muito documento disponível na Docsity


Ganhe pontos para baixar
Ganhe pontos para baixar

Ganhe pontos ajudando outros esrudantes ou compre um plano Premium


Guias e Dicas
Guias e Dicas


Processamento Digital de Sinais, Notas de aula de Engenharia Elétrica

Livro texto para ser usado em um curso de processamento digital de sinais

Tipologia: Notas de aula

2016

Compartilhado em 12/04/2016

Edilson.Camargo
Edilson.Camargo 🇧🇷

4.3

(4)

2 documentos

1 / 118

Toggle sidebar

Esta página não é visível na pré-visualização

Não perca as partes importantes!

bg1
Processamento
Digital de Sinais
pf3
pf4
pf5
pf8
pf9
pfa
pfd
pfe
pff
pf12
pf13
pf14
pf15
pf16
pf17
pf18
pf19
pf1a
pf1b
pf1c
pf1d
pf1e
pf1f
pf20
pf21
pf22
pf23
pf24
pf25
pf26
pf27
pf28
pf29
pf2a
pf2b
pf2c
pf2d
pf2e
pf2f
pf30
pf31
pf32
pf33
pf34
pf35
pf36
pf37
pf38
pf39
pf3a
pf3b
pf3c
pf3d
pf3e
pf3f
pf40
pf41
pf42
pf43
pf44
pf45
pf46
pf47
pf48
pf49
pf4a
pf4b
pf4c
pf4d
pf4e
pf4f
pf50
pf51
pf52
pf53
pf54
pf55
pf56
pf57
pf58
pf59
pf5a
pf5b
pf5c
pf5d
pf5e
pf5f
pf60
pf61
pf62
pf63
pf64

Pré-visualização parcial do texto

Baixe Processamento Digital de Sinais e outras Notas de aula em PDF para Engenharia Elétrica, somente na Docsity!

Processamento

Digital de Sinais

Índice

Conceitos Básicos

1 - Introdução 2 - Matlab 3 - Processamento Digital de Sinal 4 - Código Matlab aplicado a Processamento de Sinais

Processamento Digital

5 - Processamento Digital de Imagens 6 - Processamento de Imagens com Matlab 7 - Processamento Digital de Áudio com Matlab 8 - Sistemas Discretos

Analise de Sinais

9 - Análise de Fourier 10 - Transformada Z 11 - Filtros Digitais 12 - Filtros IIR

Projetos de Filtros

13 - Exercícios de Filtros 14 - Projetos de Filtros FIR 15 - Projeto de Filtros por Amostragem de Frequência 16 - Processador Digital de Sinal - DSP

d) Ação do processamento: função exercida pelo agente sobre o objeto.  Conformação (tempo/espaço) × Alteração espectral (frequência). e) Arquitetura genérica do processamento:  Sinal de entrada (ou estímulo ou excitação).  Condições iniciais (valores de todas as variáveis internas do sistema).  Sistema.  Sinal de saída (ou resposta). f) Nomenclatura usual: “Sinal” (sinal desejado) × “Ruído” (sinal indesejado).

1.3 Tipos de sinais a) Sinal: entidade que carrega informação. b) Visão matemática de sinal: variável funcionalmente dependente de uma ou mais variáveis independentes. Ex.: w = f(x, y). c) Visão física de sinal: grandeza física. d) Tipos de sinais de acordo com o número de variáveis independentes: unidimensional, bidimensional, tridimensional, multidimensional. Ex.: áudio = f(t), imagem = f(x, y), vídeo = f(x, y, t) e tomografia/sismologia = f(v1, v2, · · · , vN, t).

e) Tipos de sinais de acordo com o tipo das variáveis:  Sinal analógico: todas as variáveis são contínuas.  Sinal amostrado: discretização das variáveis independentes (amostragem).  Sinal quantizado: discretização da variável dependente (quantização).  Sinal digital: todas as variáveis são discretas (amostragem + quantização). f) Sinal amostrado e sinal digital: conjunto ordenado de valores numéricos (sequencia numérica).

1.4 Arquitetura de sistemas de processamento digital a) Sinal de entrada analógico: comumente, um sinal elétrico (tensão ou corrente).

b) Pré-processamento analógico:  Filtro anti-aliasing: com seletividade em frequência do tipo passa- baixa.  Amostragem e retenção (sample-and-hold ou S/H): responsável por manter fixo o valor da amostra durante o tempo necessário para que ela seja convertida em um número.  Conversor Analógico-Digital (A/D). c) Sinal de entrada digital: representação numérica computacional. d) Processador de sinal digital (Digital Sinal Processor ou DSP). e) Sinal de saída digital: representação numérica computacional. f) Pós-processamento analógico:  Conversor Digital-Analógico (D/A).  Filtro de suavização (smoothing): com seletividade em frequência do tipo passa-baixa. g) Sinal de saída analógico: comumente, um sinal elétrico (tensão ou corrente).

1.5 Implementações analógicas e digitais

1.5.1 Definição do problema Dado que um mesmo sistema pode ser implementado por sinais/componentes analógicos e digitais, naturalmente surge a questão de qual das opções é a melhor. Diversas são as comparações encontradas na literatura técnica entre implementações de sistemas que empregam sinais/componentes analógicos e digitais. Adeptos de ambos os tipos de implementação facilmente definem parâmetros que os favorecem e normalmente estabelecem comparações tentando mostrar que a sua implementação de preferencia é, realmente, a melhor opção. Antes de tecer meras comparações absolutas, muitas vezes passionalmente polarizadas, por um tipo ou outro de implementação, deve-se levar lembrar que estão sendo comparadas duas alternativas de implementação essencialmente diferentes. Logo, os parâmetros de comparação normalmente empregados fornecem apenas características individuais de cada tipo de implementação ao invés de estabelecer bases reais de comparação.

1.5.2 Características das implementações analógicas e digitais A seguir, levando-se em consideração uma implementação eletrônica, são apresentadas algumas características da implementação de sistemas para os casos analógico e digital. a) Sinais;  Analógico: valores contínuos de tensão e de corrente.  Digital: sequencias de números, representados por uma determinada codificação, contendo um número finito de símbolos. Normalmente, é utilizada uma codificação binária. b) Componentes básicos;  Analógico: componentes passivos (resistor, capacitor e indutor) e componentes ativos (transistor, Amp. Op.).  Digital: atrasador unitário (registrador), multiplicador e somador. c) Armazenamento de sinal por longo prazo;  Analógico: por ser um processo que envolve valores contínuos de grandezas físicas, sofre grande degradação.  Digital: uma vez que, geralmente, envolve codificação binária, sofre pequena degradação. d) Ocupação de área;  Analógico: de forma geral, menor ocupação.  Digital: de forma geral, maior ocupação. e) Repetitividade/reprodutibilidade;  Analógico: uma vez que os parâmetros são físicos e contínuos, necessita de um bom processo de fabricação.  Digital: dado que os parâmetros são matemáticos, a fabricação é repetitiva por construção. f) Variabilidade na fabricação;  Analógico: os componentes possuem um valor nominal e uma incerteza associada ao processo de fabricação. Devem ser utilizadas técnicas de projeto de sistemas que controlem a sensibilidade `a variação dos valores dos componentes.  Digital: valor matemático fixo, associado a quantidade símbolos utilizados na codificação numérica.

g) Variabilidade na operação;  Analógico: os componentes são influenciados por fatores ambientais (temperatura, humidade, etc.), podem ser sujeitos a envelhecimento (aging) e podem sofrer desgaste por uso. Devem ser utilizadas técnicas de projeto de sistemas que controlem a sensibilidade `a variação dos valores dos componentes.  Digital: operação baseada em valores matemáticos fixos, representados por uma quantidade finita de símbolos utilizados na codificação numérica. h) Variabilidade com as frequências envolvidas nos sinais;  Analógico: as dimensões e a funcionalidade dos componentes podem ser fortemente afetadas pela faixa de valores de frequência utilizada.  Digital: na o afetado. i) Fontes de erro;  Analógico: além da variação provocada por fatores ambientais, os componentes são diretamente afetados por ruídos dos mais variados tipos, provocados pelos mais diversos mecanismos, sendo intrínsecos aos próprios componentes e/ou induzidos por fontes externas.  Digital: devido ao número finito de símbolos usado na codificação numérica, surgem os seguintes problemas de aproximação numérica: quantização dos valores das sequencias, quantização dos valores dos coeficientes dos multiplicadores e aproximação dos valores finais das operações (soma e multiplicação). j) Programabilidade;  Analógico: componentes podem ser fixos e/ou variáveis. No caso de componentes fixos, devem ser desenvolvidas técnicas de projeto de sistemas que permitam o controle da variação de um ou mais parâmetros do sistema.  Digital: naturalmente programável. k) Complexidade funcional;  Analógico: implementada com dificuldade.  Digital: facilmente implementada. l) Multiplexação temporal de sinais;  Analógico: difícil implementação.

digitalizado por um conversor analógico para digital (A/D). Neste processo o sinal é amostrado em vários instantes, em intervalos de tempo constante. O intervalo de tempo é o período de amostragem (T), e o recíproco de T é a frequência de amostragem (fs= 1/T). A unidade de tempo do período de amostragem em geral é segundos, e a de Frequência é em Hz. 100 Hz significa que 100 amostras do sinal são tomadas em 1 segundo. Pode-se simular funções amostradas no Matlab. O exemplo abaixo mostra como se pode simular a amostragem de uma senóide no Matlab:

Exercício 1 Siga os passos descritos para simular a amostragem de uma onda senoidal no seguinte exemplo. Digite os comandos na Matlab, e observe os efeitos.

  1. Crie o eixo do tempo: t=0:0.05:1; O comando acima cria uma variável (vetor) com os elementos 0, 0.05, 0.1, ..., 1. O ponto e vírgula evita que a variável seja exibida na tela. Tente rodar o comando acima e observe o que acontece. Caso você tenha errado, e o vetor inteiro comece a aparecer na tela, você pode parar o processo usando CTRL-C. O comando size(t) exibe o tamanho da matriz t, e o comando length(t) mostrará o comprimento do vetor.

Experimente estes comandos.

  1. Crie a função: f=sin(2pit); O comando acima cria um vetor cujas componentes são a função senoidal calculada a cada valor do vetor t. Assim, no Matlab, você pode calcular o seno de um vetor, ou mesmo de uma matriz.

Execute este comando.

  1. Plotar a função: plot(t,f) Este comando faz a plotagem do sinal, tendo f no eixo y , e o correspondente t no eixo x.

Execute este comando.

  1. Coloque o Titulo e as variáveis dos eixos x e y : title(‘Funcao Senoidal’) xlabel(‘Tempo (segundos)’) ylabel(‘Amplitude (Volts)’) 3 Experimente os comandos acima. Tente também os seguintes comandos: plot(f,t) plot(f) plot(t) O que aconteceu no primeiro comando? No segundo comando, a senóide foi plotada, mas o eixo y mostrou simplesmente o número da amostra, mas não o tempo correspondente a cada abcissa y.

Explique o que acontece no terceiro exemplo. Tente também as seguintes opções: plot(t,f,’’) plot(t,f,’b’) plot(t,f,’.’) plot(t,f,’c.’) plot(t,f,’-’) plot(t,f,’y-’) Observe as cores e características dos gráficos. Agora digite help plot, e leia cuidadosamente as descrições da função plot.

Agora digite a seguinte função: grid Note o efeito da função, e digite help grid , para ver as características desta função. Agora gere uma segunda função: f2=sin(2pi2*t) E plote as funções f e f2 no mesmo gráfico: plot(t,f,t,f2) Verifique as cores dos gráficos. Agora digite:

Note o comando “ .* ”. Cada expressão entre parênteses é um novo vetor, e os vetores são multiplicados ponto a ponto, resultando no efeito desejado. Agora geraremos a função: y(x)=x3-6x2+11x-

Para isto, criamos primeiro o vetor representando a variável x, e em seguida a função em questão: x=0:0.05:4; y=x.^3-6x.^2+11x-6; plot(x,y) Note que o operador “.^” é também um operador ponto a ponto, que eleve cada elemento da matriz à potência desejada. Tente digitar x^2, e veja que este comando não funcionará. Tente descobrir porque (lembre-se que o Matlab sempre assume operações matriciais).

PROBLEMAS

  1. Gere e plot a função f(t)=exp(-t)sin(25pi*t), no intervalo 0<x<6. Use várias escolhas de intervalo para o eixo x: 0.1 sec., 0.05 sec., etc., e escolha o que tem melhor aparência.
  2. Ache graficamente as raízes da função y=x3+2x2-x+1. (Dica: procure, por tentativa e erro o intervalo, a o período de amostragem do eixo x, realizando sucessivas plotagens das tentativas).
  3. Plote a seguinte função: y=sin(x)*cos(2x)/(2+sin(x)). Escolha um eixo x apropriado (Não se esqueça que as multiplicações e divisões devem ser operações ponto a ponto).
  4. Gere a função f(t)=sin(2pi10*t), no intervalo 0<x<10. Qual é a freqüência desta senóide? Use as seguintes escolhas de freqüência de amostragem: 5 Hz, 10 Hz, 20 Hz, 40 Hz, e 200 Hz. Use a função stem. Observe bem o efeito, pois será analisado na próxima aula.
  5. Gere a função f(t)=exp(-t)sin(25pi*t), e depois plote um histograma da mesma. Dica: use a função intro , e observe o uso da função bar. Em seguida digite help bar , para analisar aquela função.

2.3 Exercícios de Aplicação

Nesta seção, veremos algumas funções extras do Matlab. Primeiramente, consideremos o seguinte trecho a seguir. Analise atentamente o programa abaixo (consulte o help para as funções que você não conhece):

% exemplo: geracão de uma forma de onda ruidosa t=0:0.01:pi; %linha 1 y=2sin(5t); %linha 2 figure(GCF) %linha 3 plot(t,y) %linha 4 pause %linha 5 ruido=randn(1,length(t)); %linha 6 plot(t,ruido) %linha 7 pause %linha 8 y_ruido=y+ruido; %linha 9 plot(t,y_ruido); %linha 10

Execute o programa. A linha 1 cria o vetor do tempo de amostragem. A linha 2 cria uma função senoidal (qual é a freqüência?). A linha três faz com que a janela com o gráfico seja colocada à frente de todas as outras. A linha 4 plota uma senóide, como mostrado abaixo:

O comando pause, na linha 5, causa uma pausa no programa. Para continuar o programa, o usuário deve pressionar . [Pergunta: o que acontece se este comando for substituído por pause(2)? Dica: use o comando help ].

pause length(A) length(B)

Após executar o código acima, realize manualmente, e em seguida usando o Matlab, as seguintes operações (indique quando a operação não é possível): AB= BA= AC= A^2= A.^2= C^2= C.^2= A’= Cinv(C)= [B B B]= [A;A;A]

Veremos agora alguns comandos estatísticos. Considere o seguinte trecho de código: % exemplo 3 A=[ 1 2 3 4 5 6 7] %linha 1 B=mean(A) %linha 2 C=std(A) %linha 3 Pause %linha 4 RUIDOSO=randn(1,5000); %linha 5 figure(gcf) %linha 6 plot(RUIDOSO) %linha 7 title('sinal ruidoso') %linha 8 pause %linha 9 MEDIA_RUIDOSO=mean(RUIDOSO) %linha 10 DP_RUIDOSO=std(RUIDOSO) %linha 11 Pause %linha 12 MAISRUIDO=5*randn(1,5000); %linha 13

MEDIA=mean(MAISRUIDO) %linha 14 DP=std(MAISRUIDO) %linha 15

Use o comando help para estudar os comandos mean , e std. Execute o programa. Tome cuidado de só incluir o ponto-e-vírgula quando necessário. Estes comandos calculam a média e o desvio padrão dos vetores em questão (relembre na literatura o que estes termos significam). Na linha 2, o resultado, B, será a média dos elementos do vetor A Na linha 3, o resultado C será o desvio padrão dos elementos do vetor A. Calcule A e B manualmente, e cheque os resultados com os resultados do Matlab. Na linha 5 um sinal de ruído normal é gerado, e é plotado na linha 6. A média e o desvio padrão são calculados e mostrados nas linhas 10 e 11. Note que a função randn gera ruído aleatório com média 0, e desvio padrão 1 (na verdade, próximos de 0 e 1). Para obter um ruído com maior intensidade (maior desvio padrão), basta multiplicar o ruído pelo desvio padrão desejado, como é feito nas linhas 13, 14 e 15. Analise com cuidado estas três últimas linhas.

EXERCÍCIOS

  1. Usando o comando help , aprenda a lidar com os comandos max, min, mean, median, sort.
  2. Usando o comando help , aprenda a usar os comandos fix, floor, ceil, round, mod, rem, sign.
  3. Gere uma senóide com freqüência de 50 Hz e amplitude 3V, amostrada a uma freqüência de amostragem de 1 kHz. Adicione a esta senóide ruído gaussiano com desvio padrão de 2V. Plote o sinal resultante. Determine os valores máximo e mínimo deste sinal. Não se esqueça de incluir título e unidades. Procure plotar o sinal de forma que suas características fiquem claras ao leitor (deve ficar claro que o sinal é uma senóide com ruído).
  4. Usando o comando help square , aprenda como gerar uma onda quadrada. Gere uma onda quadrada de 10 Hz, amostrada a uma freqüência de 1 KHz.

Os valores de amplitude de sinais contínuos ou discretos no tempo podem ser contínuos ou discretos. Se um sinal pode assumir qualquer valor dentro de um espaço finito ou infinito, ele é dito um sinal contínuo em valores. Sinais digitais são aqueles para os quais tanto o tempo quanto a amplitude são discretos. Ou seja, ele é discreto no tempo e só pode assumir valores dentro de um conjunto finito de possíveis valores (é discreto em valores ). Sinais também podem ser classificados em determinísticos ou aleatórios. Qualquer sinal que podem ser unicamente descritos por uma expressão matemática, uma tabela de dados ou uma regra bem definida é chamado determinístico. Esse termo é usado para destacar que quaisquer valores passados, presentes e futuros do sinal são conhecidos precisamente, sem incerteza. No entanto, em aplicações práticas, os sinais não podem ser representados precisamente por equações matemáticas ou suas descrições são muito complexas para uso. Isso indica que tais sinais têm comportamentos imprevisíveis sendo chamados de sinais aleatórios.

3.1 Principais Tipos de Sinais Em um estudo sobre processamento digital de sinais, alguns sinais são de mais importância. Dentre eles, temos o impulso unitário, d[n], definido como:

Um dos mais importantes aspectos do impulso é que uma sequência arbitrária pode ser representada como uma soma de impulsos escalonados e deslocados. Por exemplo, a sequência p[n] abaixo:

pode ser representada como:

De forma mais geral, qualquer sequência x[n] pode ser representada como:

Outra sequência importante é o degrau unitário, u[n]:

O degrau relaciona-se com o impulso como:

Uma forma alternativa de representar o degrau em termos de impulso é obtida interpretando o degrau em termos de uma soma de impulsos deslocados. Isso pode ser expresso como: