Processam
Processamento
ento Digital
Digital
de
de
Sinais
Sinais
Carlos Alexandre Mello
Carlos Alexandre Mello
Centro de Informática – UFPE
Centro de Informática – UFPE
2015
Processamento Digital de Sinais – Prof. Carlos Alexandre Barros de Mello Página 2
Agradecimentos à primeira turma de Processamento Digital de Sinais dos cursos de Engenharia da Computação e Ciência da Computação de 2010.1: Adriano Damascena, Bernardo Fonseca, Daker Fernandes, Daniel Brito, Fernando Rodrigues, Gabriel Carvalho, João Carlos Procópio, Lucas André Paes, Luis Felipe Pereira, Onildo Ferraz Filho, Rafael Menezes, Renan Pires, Rodolpho de Siqueira, Rodrigo Perazzo, Thiago Lima e Thiago Henrique Fernandes.
Processamento Digital de Sinais – Prof. Carlos Alexandre Barros de Mello Página 3
Índice
Índice
1. Processamento Digital de Sinais ... 6
1.1 Principais Tipos de Sinais ... 7
1.2 Sistemas Discretos no Tempo ... 9
1.3 Sistemas Lineares e Invariantes no Tempo ... 10
1.4 Operações entre sequências... 14
1.5 Sistemas LTI como Filtros Seletores de Frequência ... 16
1.6 Representação de Sequências pela Transformada de Fourier ... 19
1.6.1 Propriedades da Transformada de Fourier ... 23
1.7 Códigos do MatLab (Sinais e Operações) ... 25
1.8 Exercícios ... 34
1.8 Bibliografia Complementar ... 37
2. A Transformada Z ... 38
2.1 Propriedades da Transformada Z ... 40
2.2 Pares de Transformadas Z ... 43
2.3 Exemplos de Cálculo da Transformada Z ... 43
2.4 Propriedades da Região de Convergência ... 51
2.5 A Transformada Z Inversa ... 52
2.6 Exercícios ... 61
2.7 Bibliografia Complementar ... 63
3. Teorema da Amostragem ... 64
3.1 Teorema de Shannon ... 69
3.2 Re-Obtenção do Sinal a partir de suas amostras ... 74
4. Filtros Digitais ... 77 4.1 Filtros Digitais ... 79 4.2 Filtros FIR ... 83 4.3 Filtros IIR ... 106 4.4 Exercícios ... 112 4.5 Bibliografia Complementar ... 113
5. Técnicas de projeto de filtros ... 114
5.1 Projeto de Filtros FIR ... 117
5.1.1 Projeto usando janelas ... 118
5.1.2 Técnicas de Projeto por Amostragem em Frequência ... 144
5.1.3 Projeto Equirriple Ótimo ... 146
5.2 Projeto de Filtros IIR ... 149
5.2.1 Escala Relativa ... 150
5.2.2 Características de Protótipos Analógicos ... 153
5.3 Transformações em Frequência ... 162
5.4 Comparação entre Filtros FIR e IIR ... 164
5.5 Exercícios ... 166
5.6 Bibliografia Complementar ... 167
6. Transformada Discreta de Fourier ... 168
6.1 A Série Discreta de Fourier ... 169
6.2 A Transformada Discreta de Fourier ... 174
Processamento Digital de Sinais – Prof. Carlos Alexandre Barros de Mello Página 4
6.4 A Transformada Discreta Bi-Dimensional de Fourier ... 179
6.5 O Espectrograma ... 181
6.6 Exercícios ... 185
6.7 Bibliografia Complementar ... 187
7. Transformada Rápida de Fourier (FFT-Fast Fourier Transform ) ... 188
7.1 Algoritmos Rápidos ... 188
7.2 Algoritmo de Cooley-Tukey ou Decimação no Tempo ... 190
7.3 Outras FFTs ... 201
7.4 Exercícios ... 203
7.5 Bibliografia Complementar ... 204
8. Análise Wavelet ... 2058.1 A Transformada Wavelet ... 208
8.2 Análise em Multiresolução... 212
8.3 Sobre os coeficientes das wavelets ... 215
8.4 Wavelets no MatLab ... 220
8.5 Exercícios ... 227
8.6 Bibliografia Complementar ... 229
9. Processamento Digital de Imagens ... 230
9.1 Digitalização ... 233
9.2 Sistema Computacional de Cores ... 236
9.3 Histograma ... 240
9.4 Filtragem de Imagens Digitais ... 242
9.5 Compressão de Imagens ... 250
9.6 Processamento de Imagens no MatLab ... 252
9.7 Exercícios ... 256
9.8 Bibliografia Complementar ... 257
10. Técnicas de Codificação de Áudio e Vídeo ... 25810.1 Teoria dos Códigos ... 258
10.2 Algoritmos de Compressão ... 262
10.2.1 Código de Huffman ... 263
10.2.2 Run-length ... 266
10.2.3 Algoritmo de Lempel-Ziv-Welch ... 266
10.3 Algoritmos de codificação multimídia ... 267
10.3.1 Codificação de Vídeo ... 268
10.3.2 Codificação de Áudio ... 282
10.4 Implementações no MatLab ... 287
10.4.1 Processamento de Vídeo no MatLab ... 287
10.4.2 Processamento de Áudio no MatLab ... 293
10.5 Exercícios ... 303
10.6 Bibliografia Complementar ... 304
11. Processamento de Voz ... 305
11.1 Amostragem e Quantização ... 312
11.2 Técnicas Temporais para Processamento de Voz ... 31911.2.1 Energia de Curta Duração ... 321
11.2.2 Magnitude de Curta Duração ... 323
Processamento Digital de Sinais – Prof. Carlos Alexandre Barros de Mello Página 5
11.2.4. Função de Autocorrelação ... 326
11.3 Análise Cepstral ... 329
11.4 Exercícios ... 334
Processamento Digital de Sinais – Prof. Carlos Alexandre Barros de Mello Página 6
1. Processamento Digital de Sinais
1. Processamento Digital de Sinais
Sinais estão presentes em diversas situações do dia-a-dia do ser humano. Um sinal pode ser definido como uma função que carrega uma informação. A forma mais comum para nós é a comunicação por sinal de voz. Nesse exemplo, temos o sinal gerado pelo trato vocal e o sinal recebido pelo sistema auditivo. Apesar de ser o mesmo sinal transmitido a forma como ele éprocessado é inerente ao receptor. O processamento de sinais lida com a representação, transformação e manipulação dos sinais e da informação que eles contêm. Até a década de 60, a tecnologia para processamento de sinais era basicamente analógica. A evolução de computadores e microprocessadores juntamente com diversos desenvolvimentos teóricos causou um grande crescimento na tecnologia digital, surgindo o processamento digital de sinais (PDS). Um aspecto fundamental do processamento digital de sinais é que ele é baseado no processamento de sequências de amostras. Para tanto, o sinal contínuo no tempo é convertido nessa sequência de amostras,i.e., convertido em um sinal discreto no tempo.
Após o processamento digital, a sequência de saída pode ser convertida de volta a um sinal contínuo no tempo.
A maior parte do processamento de sinais envolve processar um sinal para obter outro sinal. Normalmente, isso é conseguido por um processo conhecido como filtragem.
Sinais podem ser classificados em quatro diferentes categorias dependendo de características de tempo e dos tipos de valores que eles podem assumir. Sinais
contínuos no tempo (ou analógicos) são definidos para qualquer valor de tempo
e eles assumem valores no intervalo contínuo (a, b), onde a pode ser -∞ e b
pode ser +∞. Podem ser representados por uma função de variáveis contínuas.
Sinaisdiscretos no tempo são definidos apenas para certos valores específicos de tempo. Podem ser representados matematicamente por uma sequência de números reais ou complexos, x. O n-ésimo número dessa sequência é denotado por x[n]. Assim, x é formalmente escrito como:
Processamento Digital de Sinais – Prof. Carlos Alexandre Barros de Mello Página 7
x = {x[n]}, -∞ <n < ∞
onden é um inteiro. Tais sequências são geradas a partir de um processo de amostragem periódica de um sinal analógico. Assim, o valor numérico do n-ésimo número da sequência é igual ao valor do sinal analógico xa(t) no tempo nT ,i.e.:
x[n] = xa(nT), -∞ <n < ∞
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 sinalcontí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 descrito 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.
1.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, δ[n], definido como:
=
≠
=
1
,
0
0
,
0
]
[
n
n
n
δ
Processamento Digital de Sinais – Prof. Carlos Alexandre Barros de Mello Página 8
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:
p[n] = 3.δ[n+3] + 2.δ[n + 1] + 4.δ[n - 2] – 1.δ[n – 3]
De forma mais geral, qualquer sequência x[n] pode ser representada como:
∑
∞ −∞ =−
=
kk
n
k
x
n
x
[
]
[
]
δ
[
]
Outra sequência importante é o degrau unitário, u[n]:
<
≥
=
0
,
0
0
,
1
]
[
n
n
n
u
O degrau relaciona-se com o impulso como:
∑
−∞ ==
n k k n u[ ]δ
[ ]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:
∑
∞ =−
=
0 ] [ ] [ k k n n uδ
Por outro lado, o impulso relaciona-se com o degrau unitário como: δ[n] = u[n] – u[n – 1]
Processamento Digital de Sinais – Prof. Carlos Alexandre Barros de Mello Página 9
Uma sequência exponencial é importante na análise de sistemas discretos e invariantes no tempo. A forma geral de uma sequência exponencial é dada por:
x[n] = A.αn
1.2 Sistemas Discretos no Tempo
Um sistema discreto no tempo é definido matematicamente como uma transformação que mapeia uma sequência de entrada x[n] em uma sequência de saída y[n]. Isso pode ser denotado por:
y[n]=T{x[n]} como representado na Fig. 1.1.
Fig. 1.1.
Fig. 1.1. Representação de um sistema discreto no tempo Alguns exemplos ilustram sistemas simples:
1) Sistema de atraso ideal: y[n] = x[n – nd], -∞ <n < ∞
2) Média móvel:
∑
− =−
+
+
2 1 ] [ 1 1 2 1 M M k k n x M MA seguir, destacamos algumas importantes propriedades dossistemas .
1) Um sistema é dito sem memóriasem memória (memoryless systems ) se a saída y[n] a cada valor de n depende apenas da entrada x[n] no mesmo valor de n.
Ex: y[n] = {x[n]}
2
Processamento Digital de Sinais – Prof. Carlos Alexandre Barros de Mello Página 10 T{a.x1[n] + b.x2[n]} = a.T{x1[n]} + b.T{x2[n]} Ex: Acumulador:
∑
−∞ ==
n k k x n y[ ] [ ]3) Um sistema é invariante no tempoinvariante no tempo é um sistema no qual um deslocamento no tempo (ou atraso) da sequência de entrada gera um deslocamento correspondente na sequência de saída. Ou seja, suponha um sistema que transforma uma sequência de entrada x[n] na sequência de saída y[n]. Se a sequência de entrada sofre um deslocamento de n0, x[n] = x[n – n0], então a
sequência de saída torna-se y[n] = y[n – n0].
Ex: Um sistema de atraso ideal é um sistema invariante no tempo. Ex: O seguinte exemplo mostra um sistema que não é invariante no tempo:
y[n] = x[M.n], -∞ <n < ∞
4) Um sistema é dito causalcausal se ele não depende de valores futuros da sequência. Ou seja, o valor de y[n1] pode ser calculado apenas com valores de
x[n] para n ≤ n1.
Ex: Um sistema não causal: y[n] = x[n + 1] – x[n]
5) Um sistema é dito estávelestável se toda entrada limitada provoca uma saída limitada. Assim, se, para todo n, |x[n]| ≤ B < ∞, para algum valor finito B, então |y[n]| ≤ C < ∞, para algum valor finito C.
1.3 Sistemas Lineares e Invariantes no Tempo
Uma classe importante de sistemas consiste naqueles que são lineares e invariantes no tempo. Como dito acima, os sistemas lineares são aqueles que obedecem ao princípio da superposição. Se a propriedade da linearidade é