Você está na página 1de 118

• Pontifícia Universidade Católica do Paraná

• Centro de Ciências Exatas e de Tecnologia – CCET


• Engenharia Elétrica – Ênfase Telecomunicações

Processamento Digital de Sinais (PDS)


Prof. Marcelo E. Pellenz - PPGIA – Tel. 3271-1690
http://www.ppgia.pucpr.br/~marcelo
e-mail: marcelo@ppgia.pucpr.br

Período: 6º/8º Semestre: 1º./2º Ano: 2005

1 Ementa
• Introdução ao processamento digital de sinais
• Processo de digitalização de sinais analógicos: conversão A/D, teorema de Nyquist amostragem,
quantização, codificação e reconstrução do sinal analógico (Conversão D/A).
• Sinais e Seqüências Discretas: sinais senoidais discretos/contínuos, normalização de freqüências,
periodicidade de seqüências discretas senoidais, interpretação de freqüências altas e baixas,
interpretação da freqüência normalizada.
• Operações com seqüências discretas: seqüências discretas, impulso unitário, degrau unitário,
seqüências exponenciais reais/complexas, seqüência par e ímpar.
• Representação de Sinais e Sistemas Discretos no Domínio do Tempo/Freqüência: sistemas
discretos lineares invariantes no tempo (LTI), propriedades de sistemas LTI, convolução Linear,
equação de diferenças.
• Transformada de Fourier em Tempo Discreto (DTFT)
• Transformada Discreta de Fourier (DFT/FFT)
• Transformada-Z
• Projeto de Filtros Digitais FIR e IIR
• Estrutura de Filtros Digitais e Aspectos de Implementação
• Aplicações do Processamento Digital de Sinais em Sistemas de Comunicação Digital

2 Objetivos
Capacitar o aluno para a caracterização, projeto e implementação de filtros digitais, análise espectral
de sinais usando DFT e desenvolvimento de algoritmos para processamento digital de sinais
aplicados em sistemas de comunicação.

3 Bibliografia
• Digital signal processing using MATLAB, V. K. Ingle and J. G. Proakis, Brooks/Cole, 2000
• Digital signal processing: principles, algorithms, and applications, J. G. Proakis and D. G.
Manolakis, Prentice Hall, 1996
• Digital Signal Processing: A computer based approach, S. K. Mitra, McGraw-Hill, 1998
• Material didático (apostila) e técnico (artigos) fornecidos pelo professor

4 Procedimentos de Avaliação
• Três notas parciais no semestre, onde cada nota será composta pela nota da prova (peso 7) e da
nota dos trabalhos de laboratório (peso 3) correspondentes ao período avaliado.
• O conteúdo das provas é acumulativo e também englobará as atividades e conceitos
desenvolvidos em laboratório.
• Trabalhos serão desenvolvidos em sala de aula e em laboratório (Exercícios/Matlab/DSP), com a
entrega dos resultados e/ou relatórios ao final do experimento.
• As datas das avaliações serão estabelecidas com um prazo mínimo de uma semana de
antecedência.
• A média e freqüência mínimas para a aprovação serão regidas pelas regras da instituição.
Processamento Digital de Sinais: Teoria e Aplicações Prof. Marcelo E. Pellenz

5 Observações Importantes

• O desenvolvimento de alguns experimentos de laboratório será feito em grupo. Após a definição dos
grupos, eles não podem ser modificados. Um aluno do grupo será escolhido pelo professor para
defender o trabalho no momento da apresentação.
• Os relatórios devem ser entregues impreterivelmente na data e horário limite estipulado pelo
professor. Não serão aceitos relatórios fora do prazo.
• Os alunos que faltarem as aulas de laboratório deverão realizar o experimento extra classe e
entregar os resultados/relatórios impreterivelmente na próxima aula.

6 Material de Laboratório
• 2 fones de ouvido para desenvolvimento dos experimentos de laboratório no Matlab e no kit DSP

Processamento Digital de Sinais Prof. Marcelo E. Pellenz pg. 2


Processamento Digital de Sinais: Teoria e Aplicações Prof. Marcelo E. Pellenz

ÍNDICE
Introdução ao processamento digital de sinais .............................................................. 5
Digitalização de Sinais e Normalização de Freqüências ............................................... 28
Periodicidade de Seqüências Discretas ........................................................................ 30
Interpretação da Freqüência Normalizada ..................................................................... 31
Sinais de Freqüências Distintas com o mesmo Período ................................................ 32
Interpretação de Freqüências Altas e Baixas ................................................................ 33
Interpretação de Freqüências Altas e Baixas em Tempo Discreto ................................ 34
Operações com Seqüências Discretas .......................................................................... 35
Função Impulso Unitário ................................................................................................ 35
Função Degrau Unitário ................................................................................................ 35
Pré-Lab 1 – Representação e Operações com Seqüencias Discretas .......................... 36
Laboratório 1 – Representação e Operações com Sinais em Tempo Discreto ............. 37
Pré-Relatório para o Laboratório 2 ................................................................................. 40
Decomposição em Seqüência Par e Ímpar .................................................................... 40
Sinais de Energia e Sinais de Potência .......................................................................... 41
Escalonamento no Tempo (Down-Sampling) ................................................................. 41
Sistemas Discretos Lineares e Invariantes no Tempo (LTI) ........................................... 41
Estabilidade de Sistemas LTI ......................................................................................... 42
Sistema LTI Causal ........................................................................................................ 42
Correlação e Autocorrelação de Seqüências ................................................................. 42
Equação de Diferenças .................................................................................................. 43
Representação de sistemas usando diagrama de blocos .............................................. 43
Pré-Lab 2 – Sistema de Discagem por Tons (DTMF) .................................................... 43
Laboratório 2 – Sinais e Sistemas Discretos ................................................................. 44
Pré-Relatório para o Laboratório 3 ................................................................................. 46
Análise Espectral de Sinais Contínuos no Tempo .......................................................... 47
Análise Espectral de Sinais Discretos no Tempo ........................................................... 48
Transformada Discreta de Fourier (DFT) ........................................................................ 53
Representação de Sistemas LTI no Domínio da Freqüência ......................................... 56
Laboratório 3 – Transformada de Fourier Discreta (DFT) .............................................. 57
Transformada de Fourier Discreta (DFT) ....................................................................... 58
Transformada-Z .............................................................................................................. 61
Região de Convergência (ROC) ..................................................................................... 61
Transformada-Z Inversa usando Frações Parciais ......................................................... 63
Relação da Função de Transferência com a Equação de Diferenças ........................... 64
Projeto de Filtros Digitais FIR ......................................................................................... 65
Laboratório 4 – Aplicações do Processamento Digital de Sinais ................................... 70
Laboratório 5 – Transformada-Z ..................................................................................... 74
Projeto de Filtros FIR ...................................................................................................... 76

Processamento Digital de Sinais Prof. Marcelo E. Pellenz pg. 3


Processamento Digital de Sinais: Teoria e Aplicações Prof. Marcelo E. Pellenz

Prefácio

Este curso ter por objetivo apresentar os fundamentos da teoria de processamento digital de sinais
aplicados à área de transmissão digital, demonstrando os conceitos e algoritmos através de simulação no
®
software Matlab e da implementação prática (em tempo real) destes algoritmos usando o kit DSP
TMS320C5416. Os modernos dispositivos de comunicação (por exemplo: celulares/modems/rádios
digitais/placas de rede local/placas de WLAN (WiFi)/Bluetooth) realizam todo o processamento do sinal na
forma digital (modulação, demodulação, deteção de símbolo, recuperação de portadora, filtragem,
sincronismo, equalização, deteção e correção de erros) utilizando DSPs. Os circuitos analógicos são
utilizados apenas na conversão A/D-D/A, nos misturadores (mixers) para translação de freqüência e nos
estágios de amplificação de potência. Esta é a atual estratégia de desenvolvimento e implementação de
dispositivos de comunicação digital.

Processamento Digital de Sinais Prof. Marcelo E. Pellenz pg. 4


Processamento Digital de Sinais: Teoria e Aplicações Prof. Marcelo E. Pellenz

1. Introdução ao Processamento Digital de Sinais

Porque Processamento Digital ?


 As técnicas de processamento digital de sinais são
atualmente tão poderosas que é extremamente
difícil, se não impossível, que o processamento
analógico de sinais atinja desempenho similar.
 Exemplos:
 Filtros FIR com fase linear
 Filtros Adaptativos

fase

freqüência freqüência

f1 f2

AULA 1 1-1

Porque Processamento Digital ?

 O processamento analógico de sinais é feito através


do uso de componentes analógicos:
 Resistores.
 Capacitores.
 Indutores.

 As tolerâncias inerentes associadas com estes


componentes, temperatura, variações de tensão e
vibrações mecânicas podem afetar dramaticamente
a eficiência dos circuitos analógicos.

AULA 1 1-2

Processamento Digital de Sinais Prof. Marcelo E. Pellenz pg. 5


Processamento Digital de Sinais: Teoria e Aplicações Prof. Marcelo E. Pellenz

Porque Processamento Digital ?


ADC PROCESSA DAC

 Com o processamento digital de sinais é fácil:


 Alterar aplicações.
 Corrigir aplicações.
 Atualizar aplicações.
 Adicionalmente o processamento digital de
sinais reduz:
 Suscetibilidade ao Ruído.
 Tempo de Desenvolvimento.
 Custo.
 Consumo de Potência.

AULA 1 1-3

Programação
 1 Hardware = Muitas Tarefas

SOFTWARE 1 FILTRO PASSA-BAIXA


SINTETIZADOR MUSICAL
..
SOFTWARE 2 MESMO
HARDWARE ..
SOFTWARE N CONTROLE DE MOTOR

 Atualização e Flexibilidade
 DSP: Desenvolvimento de Novo Código Atualização do software
 Sistema Analógico Soldar novos componentes

AULA 1 1-4

Processamento Digital de Sinais Prof. Marcelo E. Pellenz pg. 6


Processamento Digital de Sinais: Teoria e Aplicações Prof. Marcelo E. Pellenz

Restrições ao uso do
Processamento Digital ?
 Sinais de alta freqüência não podem ser
processados digitalmente devido a duas
razões:
 Conversores Analógico-para-Digital (ADC) não
podem operar rápido o suficiente.
 A aplicação pode ser também muito complexa
para operar em tempo real.

AULA 1 1-5

Processamento em Tempo Real

 Os DSPs precisam realizar tarefas em tempo real,


portanto como podemos definir tempo real ?
 A definição de tempo real depende da aplicação.
 Exemplo: Um filtro digital FIR com 100 taps é
implementado em tempo real se o DSP pode
realizar e completar a seguinte operação entre duas
amostras:
99
y (n ) = ∑ a (k )x(n − k )
k =0

AULA 1 1-6

Processamento Digital de Sinais Prof. Marcelo E. Pellenz pg. 7


Processamento Digital de Sinais: Teoria e Aplicações Prof. Marcelo E. Pellenz

Processamento em Tempo Real

Tempo de Tempo de
Processamento Espera

n n+1
Tempo de Amostragem

 Podemos dizer que temos uma aplicação


em tempo real se:
 Tempo de Espera ≥ 0

AULA 1 1-7

Porque Precisamos de DSPs ?

 Porque não utilizar um processador para


aplicações gerais como um Pentium ao
invés do DSP ?
 Qual é o consumo de potência de um Pentium e
de um DSP ?
 Qual é o custo de um Pentium e de um DSP ?

AULA 1 1-8

Processamento Digital de Sinais Prof. Marcelo E. Pellenz pg. 8


Processamento Digital de Sinais: Teoria e Aplicações Prof. Marcelo E. Pellenz

Porque Precisamos de DSPs ?

 Use um DSP quando os seguintes requisitos forem


necessários:
 Redução de Custo.
 Tamanho Reduzido.
 Baixo consumo de potência.
 Processamento de muitos sinais de alta freqüência em
tempo real.
 Use um processador genérico quando for necessário:
 Grande memória.
 Sistemas operacionais avançados.

AULA 1 1-9

Quais são os algoritmos típicos de um DSP ?

 A soma de produtos é o elemento chave na maioria dos


algoritmos DSP:

Algorithm Equation
M
Finite Impulse Response Filte r ∑a
y (n ) = k x (n − k )
k =0

M N
Infinite Impulse Response Filter ∑a
y (n ) =
k=0
k x( n − k ) + ∑bk =1
k y( n − k )

N
Convolution ∑ x( k ) h ( n − k )
y (n ) =
k=0

N −1
Discrete Fourier Transform X (k ) = ∑ x( n) exp[ − j ( 2π / N ) nk ]
n= 0

N −1
π
Discrete Cosine Transform F (u ) = ∑ c (u ). f (x ). cos  2 N u(2 x + 1)
x =0

AULA 1 1-10

Processamento Digital de Sinais Prof. Marcelo E. Pellenz pg. 9


Processamento Digital de Sinais: Teoria e Aplicações Prof. Marcelo E. Pellenz

Digital Signal Processor (DSP)


O que é um DSP ?
Um pouco
Computador Analógico alto

Computador Digital
DSP

DAC SAÍDA
ADC
1010 1001

AULA 1 1-11

Sistema DSP Típico

MEMÓRIA
 Chip DSP
 Memória
 Conversores (Opcional)
ADC  Analógico para Digital
DSP  Digital para Analógico
 Portas de Comunicação
DAC  Serial
 Paralela

PORTAS

AULA 1 1-12

Processamento Digital de Sinais Prof. Marcelo E. Pellenz pg. 10


Processamento Digital de Sinais: Teoria e Aplicações Prof. Marcelo E. Pellenz

Multiplicação e Adição
Adição 1+2 = 3 Multiplicação 5*3 = 15

0001 0 x 8 x 0011 0000


1 x 4 x 0011 0011
+ 0010 0 x 2 x 0011 0000
1 x 1 x 0011 0011
0011 Deslocado e
adicionado =
5 3
múltiplas vezes

Operações Mais Comuns no DSP Operação MAC

A = B*C + D
Tipicamente 70 ciclos de clock
E = F*G + A em processadores normais
...
Tipicamente 1 ciclo de clock
Multiplica, Adiciona, e Acumula
em processadores digitais de
Instrução MAC sinais

AULA 1 1-13

Evolução nos Tempos de Multiplicação

TEMPO (ns)

600
500
400
300
200
100
0 5 ns

1971 1976 1998 ANOS

AULA 1 1-14

Processamento Digital de Sinais Prof. Marcelo E. Pellenz pg. 11


Processamento Digital de Sinais: Teoria e Aplicações Prof. Marcelo E. Pellenz

Sistemas DSP Práticos

 Equipamentos Hi-Fi
 Brinquedos
 Videofones
 Modem/xDSL
 Sistemas Telefônicos
 Placas Gráficas 3D
 Processamento de Imagens
 Telefones Celulares
 Câmeras de Vídeo

AULA 1 1-15

Vantagens de Sistemas Analógicas

 Baixo Custo e Simplicidade em Algumas Aplicações


• Atenuadores / Amplificadores
• Filtros Simples
 Grande Largura de Banda (GHz)
 Sinais de Baixo Nível
 Taxa de Amostragem Efetiva Infinita
• Infinita resolução em freqüência
 Infinita Resolução em Amplitude
• Sem ruído de quantização

AULA 1 1-16

Processamento Digital de Sinais Prof. Marcelo E. Pellenz pg. 12


Processamento Digital de Sinais: Teoria e Aplicações Prof. Marcelo E. Pellenz

Vantagens do
Processamento de Sinais (DSP)

 Invariabilidade
• Baixa sensibilidade para tolerâncias de componentes
• Baixa sensitividade para mudanças de temperatura
• Baixa sensitividade para efeitos de envelhecimento
• Desempenho praticamente idêntico de unidade para unidade
• Circuitos idênticos custam menos

 Alta imunidade ao ruído


 Na maioria das aplicações o DSP oferece maior
desempenho e baixo custo

AULA 1 1-17

Circuitos Analógicos no
Processamento Digital de Sinais

 A maioria dos transdutores são analógicos por natureza


• Microfones, alto-falantes, etc.
 Circuitos analógicos são necessários para pré-processar
sinais de baixo nível antes do ADC
 Filtros analógicos podem ser usados para limitar a banda
dos sinais
• Filtros anti-aliasing (antes do ADC) e filtros de reconstrução
(depois do DAC)
 Circuitos analógicos podem ser usados para acionar
transdutores de saída
• Um amplificador de potência é necessário para habilitar o
DAC à acionar um alto-falante

AULA 1 1-18

Processamento Digital de Sinais Prof. Marcelo E. Pellenz pg. 13


Processamento Digital de Sinais: Teoria e Aplicações Prof. Marcelo E. Pellenz

Sinais no Domínio do Tempo


e da Freqüência
Domínio do Tempo Domínio da Freqüência
AMPLITUDE
T1=1/f1
AMPLITUDE

TEMPO f1 FREQÜÊNCIA

T2=1/f2 AMPLITUDE

AMPLITUDE

TEMPO f2 FREQÜÊNCIA

T = período f = freqüência

AULA 1 1-19

Sinais Reais
AMPLITUDE

TEMPO

AMPLITUDE Sinais reais são uma combinação


de muitas freqüências
|A|

FREQÜÊNCIA
-fm fm

2fm

AULA 1 1-20

Processamento Digital de Sinais Prof. Marcelo E. Pellenz pg. 14


Processamento Digital de Sinais: Teoria e Aplicações Prof. Marcelo E. Pellenz

Amostragem
2  Pegar amostras de dados
1.8 (sinais) com variação contínua
1.6
1.4  O Período de amostragem é fixo
SHARE PRICES

1.2
1  This makes information
0.8 understandable
0.6
0.4  My share price hit its lowest
0.2 point in week 4
0
1 2 3 4 5 6 7 8 9 10 11 12 13 14  My share price reached its peak
TEMPO (SEMANAS) in week 9

Período de Amostragem – Período entre amostras


Tempo de Amostragem – Tempo para pegar uma
amostra

AULA 1 1-21

Informação Perdida
1.4
1.2  Amostras Não-Periódicas
1
 Pode perder informação
PREÇOS

0.8 PCOMPRA
0.6 A queda de preços entre
0.4 T3 e T4 fica imperceptível
0.2
0 TEMPO  A informação não pode ser
T1 T2 T3 T4T5 T6 interpretada facilmente
1.4
1.2  Amostragem Periódica
1
 Pode perder informação
PRIÇOS

0.8 PCOMPRA
0.6 A queda de preços entre
0.4 T2 e T3 fica imperceptível
0.2
0 TEMPO  Fácil para interpretar
T1 T2 T3 T4
A chave é a freqüência de
Variação Atual
Curva Inferida amostragem.

AULA 1 1-22

Processamento Digital de Sinais Prof. Marcelo E. Pellenz pg. 15


Processamento Digital de Sinais: Teoria e Aplicações Prof. Marcelo E. Pellenz

Pegando as Amostras Corretamente


TEMPO FREQÜÊNCIA
|A|
|A| fs- fa fs+ fa

CASO 1 t fs>>fa f
fa fs 2fs
fs = Freqüência de amostragem
fa = Freqüência do sinal
|A|
|A|

CASO 2 t fs=2fa f
fa fs 2fs

|A|
|A|

CASO 3 t fs<2fa f
fs
Alias
Sinal Inferido Sinal Original fa

AULA 1 1-23

Limitando o Espectro
|A|

 Sinais no mundo real possuem


muitas freqüências

f
fs fm fs  Componentes de freqüência
maiores que 1/2fs causam
Aliasing
aliasing (f>fm)

|A|  Elimine (filtragem) freqüências


acima de fm (sem aliasing)

fs>2fm  Assegure que a taxa de


amostragem seja maior que 2fm
f
fm

AULA 1 1-24

Processamento Digital de Sinais Prof. Marcelo E. Pellenz pg. 16


Processamento Digital de Sinais: Teoria e Aplicações Prof. Marcelo E. Pellenz

Digitalizando o Sinal
|A| amostre & retenha

 O objetivo é obter uma


representação discreta

ts 4ts 8ts t  Amostre o sinal periodicamente


|A|
11
 Retenha o valor amostrado até a
10
próxima amostra
01
00
 Quantize o sinal
ts 4ts 8ts t

|A| quantize  Mais níveis de quantização


11
? ? ? significam melhor precisão
10
01
Sinal = 10 10 01 01 00 00 01
00

ts 4ts 8ts t

AULA 1 1-25

Erro de Quantização
|A|
Erro de Quantização
 A quantização introduz erros

 Aumentar o número de níveis


não é sempre a solução
t

|A|
 Quantização Não-Uniforme

 Utiliza mais níveis onde existe


maior variação

 Utiliza menos níveis onde há


menos variações
t

AULA 1 1-26

Processamento Digital de Sinais Prof. Marcelo E. Pellenz pg. 17


Processamento Digital de Sinais: Teoria e Aplicações Prof. Marcelo E. Pellenz

Conversor Analógico-Digital
(ADC)
ADC por Aproximações Sucessivas Voltagem
V3 11
V2 10
Vin - LÓGICA DE Vin
V1 01
CONTROLE
+ V0 00
tempo
Comparador
APROXIMAÇÕES  Ajusta a saída DAC para V2 = 01
SUCESSIVAS
 DAC gera tensão analógica V2
10 (Vin>V2)
 Ajusta MSB para 1
DAC
 DAC gera agora V3
 Ajusta LSB para 0 dado que V3>Vin
 Digitaliza em dois ciclos
 n Bits = n Ciclos

AULA 1 1-27

Outros Tipos de ADC


Digitalização Paralela
ADC 0
1
LIMITAÇÃO AMOSTRA 0
DIGITALIZA 0
DE BANDA E RETÊM
ANALÓGICO 1
1

Dual Slope ADC


 Lento
 Caro

Flash ADC
 Requer componentes de precisão

Sigma Delta ADC


 Estável

AULA 1 1-28

Processamento Digital de Sinais Prof. Marcelo E. Pellenz pg. 18


Processamento Digital de Sinais: Teoria e Aplicações Prof. Marcelo E. Pellenz

Conversão Digital para o Analógico


 Para Controle Digital 10:
Chavear em R para fonte (Vcc)
2R para terra (GND)
Saída Analógica = (R1/R) * Vcc
“Voltage Source Multiplying DAC”
 Ganho = R1/Resistência de Entrada
CONTROLE DIGITAL TENSÃO DE SAÍDA

Vcc 10 VO = - [ Vin * ( R1/R) + Vin * (R1/2R) ]


R1 MSB LSB
R MSB = Bit mais significativo
VO
LSB = Bit menos significativo
2R -

+ SAÍDA
ANALÓGICA  Possíveis Entradas e Saídas para R1 = R

TERRA ENTRADA SAÍDA


11 1.5 Vcc
10 Vcc
01 0.5 Vcc
00 0

AULA 1 1-29

Suavizando a Saída
FILTRO
010001 DAC PASSA
BAIXA

ENTRADA DIGITAL AMOSTRA E RETÊM SAÍDA SUAVIZADA

|A| |A|

t t

 Converta a entrada digital para valor analógico

 Mantenha o valor analógico até a próxima entrada digital

 Suavize o sinal de saída

AULA 1 1-30

Processamento Digital de Sinais Prof. Marcelo E. Pellenz pg. 19


Processamento Digital de Sinais: Teoria e Aplicações Prof. Marcelo E. Pellenz

Computadores Digitais
Arquitetura Von Neuman
A
PROGRAMA UNIDADE
E DADOS ENTRADA/ A = ENDEREÇO
ARMAZENADOS SAÍDA LÓGICA
D ARITMÉTICA D = DADOS

Arquitetura Harvard
A A
UNIDADE ENTRADA/ DADOS
PROGRAMA
ARMAZENADO LÓGICA SAÍDA ARMAZENADOS
ARITMÉTICA
D D

AULA 1 1-31

Sistemas de Numeração
 Representação digital de números

Decimal 128 64 32 16 8 4 2 1
Digit Number 7 6 5 4 3 2 1 0
2 2 2 2 2 2 2 2 2
Digit Number 7 6 5 4 3 2 1 0

 Qualquer número pode ser representado como uma série de 1s e 0s

 Decimal 3 em binário
Decimal 0 0 0 0 0 0 2+ 1= 3
Digit Number 7 6 5 4 3 2 1 0
2 2 2 2 2 2 2 2 2
Digit Number 7 6 5 4 3 2 1 0
Binary 0 0 0 0 0 0 1 1 0000 0011

 Decimal 26 em binário
Decimal 0 0 0 16+ 8+ 0 2= 0 26
Digit Number 7 6 5 4 3 2 1 0
2 2 2 2 2 2 2 2 2
Digit Number 7 6 5 4 3 2 1 0
Binary 0 0 0 1 1 0 1 0 0001 1010

AULA 1 1-32

Processamento Digital de Sinais Prof. Marcelo E. Pellenz pg. 20


Processamento Digital de Sinais: Teoria e Aplicações Prof. Marcelo E. Pellenz

Binário e Hexadecimal
Decimal 0, 1, 2 , ……., 9
16 Decimal 0x10 Hex
Binário 0, 1
20 Decimal 0x14 Hex
Hexadecimal 0, 1, 2 ,……..,A,B,C,D,E,F

 4 bits do sistema binário são representados por


um único dígito hexadecimal:
Decimal 8+ 4+ 2+ 1= 15
2Digit Number 23 22 21 20
Binary 1 1 1 1 1111
Hex F F

 Decimal 26 em binário e hexadecimal:

Decimal 0 0 0 16+ 8+ 0 2= 0 26
2Digit Number 27 26 25 24 23 22 21 20
Digit Number 7 6 5 4 3 2 1 0
Binary 0 0 0 1 1 0 1 0 0001 1010
Hex 1 A 1A

AULA 1 1-33

Representação de Números
Inteiros com Sinal
 Magnitude de números inteiros com sinal

Signed
Decimal Binary
Hex
Sign Number
2 00 00 00 02 0 000 0000 0000 0000 0000 0000 0000 0010
3 00 00 00 03 0 000 0000 0000 0000 0000 0000 0000 0011
-2 80 00 00 02 1 000 0000 0000 0000 0000 0000 0000 0010
-3 80 00 00 03 1 000 0000 0000 0000 0000 0000 0000 0011

AULA 1 1-34

Processamento Digital de Sinais Prof. Marcelo E. Pellenz pg. 21


Processamento Digital de Sinais: Teoria e Aplicações Prof. Marcelo E. Pellenz

Notação Complemento de Dois


para Representação de Números
Inteiros com Sinal

2Digit number -27 26 25 24 23 22 21 20


Decimal -128 64 32 16 8 4 2 1
Binary 3 0 0 0 0 0 0 1 1
two’s complement
Decimal 0 0 0 0 0 0 +2 +1= 3
calculation
Binary -2 1 1 1 1 1 1 1 0
two’s complement
Decimal -128 +64 +32 +16 +8 +4 +2 +0= -2
calculation

AULA 1 1-35

Notação Complemento de Dois


 Conversão para a notação complemento de dois

Binary
Action Decimal
Sign Number
Signed integer -2 1 000 0000 0000 0000 0000 0000 0000 0010
Strip sign bit 0 000 0000 0000 0000 0000 0000 0000 0010
Invert 1 111 1111 1111 1111 1111 1111 1111 1101
Add one 1 1
Two’s complement 1 111 1111 1111 1111 1111 1111 1111 1110
Hex F F F F F F F E

 Adição usando a notação complemento de dois

Two’s Complement Binary


Decimal Hex
Sign Number
-2 FF FF FF FE 1 111 1111 1111 1111 1111 1111 1111 1110
3 00 00 00 03 0 000 0000 0000 0000 0000 0000 0000 0011
-2 + 3 = 1 00 00 00 01 0 000 0000 0000 0000 0000 0000 0000 0001

AULA 1 1-36

Processamento Digital de Sinais Prof. Marcelo E. Pellenz pg. 22


Processamento Digital de Sinais: Teoria e Aplicações Prof. Marcelo E. Pellenz

Notação de Ponto-Fixo
Convenções:
 Faixa do número está entre 1 e -1
 O ponto decimal está sempre numa localização fixa (ex: 0.74, 0.34, etc.)
 Multiplicando uma fração por uma fração sempre resulta em uma fração
e não irá produzir um overflow (ex: 0.99 x 0.9999 = menor que 1)
 Adições sucessivas podem causar overflow
Porque ?
 O processamento de sinais é intensivo em multiplicações
 A notação de ponto-fixo previne overflow
(útil com uma pequena faixa dinâmica de variação)
 A notação de ponto-fixo é mais barata
Como a notação de ponto-fixo é realizada no DSP ?
 A maioria dos DSPs de ponto-fixo são de 16 bits
 A faixa de números que podem ser representados é de 32767 até -32768
 O formato mais comum de ponto-fixo é denominado Q15

Notação Q15
Bit 15 Bits 14 to 0
sign two’s complement number

AULA 1 1-37

Formato Q15
Faixa Dinâmica no Formato Q15

Number Biggest Smallest


Fractional number 0.999 -1.000
Scaled integer for Q15 32767 -32768

Representação do Número no Formato Q15


Decimal Q15 = Decimal x 215 Q15 Integer
0.5 0.5 x 32767 16384
0.05 0.05 x 32767 1638
0.0012 0.0012 x 32767 39

Regras de operação

 Evite operações com números maiores que 1


2.0 x (0.5 x 0.45) = (0.2 x 0.5 x 0.45) x 10 = (0.5 x 0.45) + (0.5 x 0.45)
 Escale os números antes da operação
0.5 in Q15 = 0.5 x 32767 =16384
AULA 1 1-38

Processamento Digital de Sinais Prof. Marcelo E. Pellenz pg. 23


Processamento Digital de Sinais: Teoria e Aplicações Prof. Marcelo E. Pellenz

Operações no Formato Q15


Adição
Decimal Q15 Scale back
Q15 / 32767
0.5 + 0.05 = 0.55 16384 + 1638 = 0.55
18022
0.5 – 0.05 = 0.45 16384 – 1638 =

Multiplicação
2 x 0.5 x 0.45 =

Decimal Q15 Back to Q15 Scale back


Product / 32767 Q15 / 32767
0.5 x 0.45 = 0.225 16384 x 14745 = 7373
241584537
0.225 + 0.225 = 0.45 7373 + 7373 = 0.45
14746

AULA 1 1-39

Formato de Ponto Flutuante do TMS


Formato de Ponto Flutuante
31 ... 24 23 22 .............. 0 No. do Bit
e s f
8 bits 1 bit 23 bits

e = o expoente é um número de 8 bits com sinal na representação


complemento dois e determina a localização do ponto binário Q
s = sinal da mantissa (s = 0 positivo, s =1 negativo)
f = parte fracionária da mantissa; um valor 1.0 é adicionado a esta fração
mas não é alocado no campo de bit pois este valor está sempre presente
Equações de Conversão
Binary Decimal Equation
s=0 e e 1
X = 01.f x 2 X = 01.f x 2
s=1 e e 2
X = 10.f x 2 X = ( -2 + 0.f ) x 2

Caso Especial
s=0 X=0 e = -128 Expoente (e)
Decimal 0 1 127 -1 -128
Hex
two’s comp. 00 01 7F FF 80

AULA 1 1-40

Processamento Digital de Sinais Prof. Marcelo E. Pellenz pg. 24


Processamento Digital de Sinais: Teoria e Aplicações Prof. Marcelo E. Pellenz

Números Ponto-Flutuante
Calcula 1.0e0
Em hex 00 00 00 00
Em binária 0000 0000 0000 0000 0000 0000 0000 0000
s=0 Equação 1: X = 01.f x2e
f=0

01.0 x 20 e=0 = 1.0

Calcula 1.5e01
Em hex 03 70 00 00
Em binária 0011 0111 0000 0000 0000 0000 0000 0000
s=0 Equação 1: X = 01.f x2e

0011 e=3
s111 ... f = 0.5 + 0.25 + 0.125 = 0.875

X = 01.875 x 23 = 15.0 decimal

AULA 1 1-41

Ponto Flutuante
Calcula -2.0e0
Em hex 00 80 00 00
Em binário 0000 0000 1000 0000 0000 0000 0000 0000
s=1 Equação 2: X = ( -2.0 + 0.f ) x 2e
f=0

( -2.0 + 0.0 ) x 20 e=0 = -2.0

Adição
1.5 + (-2.0) = 0.5

Multiplicação
1.5e00 x 1.5e01 = 2.25e01 = 22.5

AULA 1 1-42

Processamento Digital de Sinais Prof. Marcelo E. Pellenz pg. 25


Processamento Digital de Sinais: Teoria e Aplicações Prof. Marcelo E. Pellenz

Faixa Dinâmica
Faixas dos Sistemas de Numeração

Two’s
Numbers Base 2 Decimal Complement
Hex
31
Largest Integer 2 -1 2 147 483 647 7F FF FF FF
31
Smallest Integer -2 -2 147 483 648 80 00 00 00
Largest Q15 15 32 767 7F FF
2 -1
15
Smallest Q15 -2 -32 768 80 00
-23 127 38
Largest Floating Point (2-2 )x2 3.402823 x 10 7F 7F FF FD
127 38
Smallest Floating Point -2 x 2 -3.402823 x 10 83 39 44 6E

 A faixa dinâmica da representação de ponto flutuante é muito ampla


 Conclusão
 Maior inteiro x (1.5 x 10 29 ) ~ = maior ponto flutuante
 Maior Q15 x (1.03 x 10 34 ) ~ = maior ponto flutuante

AULA 1 1-43

Ponto Fixo versus Flutuante


 Dispositivos DSP são projetados para ponto fixo ou ponto flutuante
 Dispositivos ponto-fixo são usualmente 16-bits, Ex: TMS320C5x
 Dispositivos ponto-flutuante são usualmente 32-bits, Ex: TMS320C3x
 Dispositivos ponto-flutuante possuem usualmente um conjunto completo de
instruções ponto-fixo
 Dispositivos ponto flutuante são mais fáceis de programar
 Dispositivos ponto-fixo podem emular operação ponto flutuante em software

Comparação
Characteristic Floating point Fixed point
Dynamic range much larger smaller
Resolution comparable comparable
Speed comparable comparable
Ease of programming much easier more difficult
Compiler efficiency more efficient less efficient
Power consumption comparable comparable
Chip cost comparable comparable
System cost comparable comparable
Design cost less more
Time to market faster slower

AULA 1 1-44

Processamento Digital de Sinais Prof. Marcelo E. Pellenz pg. 26


Processamento Digital de Sinais: Teoria e Aplicações Prof. Marcelo E. Pellenz

Família TMS320
Dispositivos 16-Bit Ponto Fixo Dispositivos 32-Bit Ponto
Flutuante
’C1x Controladores de Hard-Disk
’C3x Videofones
’C2x Fax
’C4x Processamento Paralelo
’C2xx Controle

’C5x Processamento de Voz Outros Dispositivos

’C54x Telefones Celulares Digitais ’C6x Processador Avançado


Estações Base Wireless
Modems

’C8x Vídeo Conferência

AULA 1 1-45

Processamento Digital de Sinais Prof. Marcelo E. Pellenz pg. 27


Processamento Digital de Sinais: Teoria e Aplicações Prof. Marcelo E. Pellenz

2. Digitalização de Sinais e Normalização de Freqüências

Considere a digitalização de um sinal analógico, xC (t ) , usando uma freqüência de


amostragem FS = 1 TS Hz (amostras/s). A seqüência amostrada (vetor de amostras) é representada
por
x[n] = xC (n TS )
n
onde t = n TS = são os instantes de amostragem do sinal analógico. Como exemplo considere a
FS
digitalização de um coseno com freqüência, F ,

xC (t ) = A ⋅ cos(2 π F t + θ ) = A ⋅ cos(Ω t + θ )

F (Hz ) Ω = 2π F (rad s )

 2π F n 
x[n] = xC (n TS ) = A ⋅ cos(2 π F n TS + θ ) = A ⋅ cos + θ 
 FS 

x[n] = A ⋅ cos(2 π f + θ ) w = Ω TS = 2 π f

f (ciclos amostra ) w (rad amostra )

Ω, F ⇒ Notação de freqüência para sinais analógicos

w, f ⇒ Notação de freqüência para sinais em tempo discreto (amostrados)

F
f = w = Ω TS = 2 π f ⇒ Normalização de freqüências
FS

Considerando a digitalização na taxa de Nyquist, FS = 2 FMAX , onde FMAX = F , teremos os


seguintes valores de freqüência normalizada:

F 1
f = = w = 2π f = π ⇒ Normalização de freqüências
2F 2

Portanto, a faixa de variação de valores para as freqüências do sinal em tempo contínuo e tempo
discreto são:

− ∞ < F < ∞ ⇔ − 1/ 2 < f < 1/ 2

− ∞ < Ω < ∞ ⇔ −π < w < π

Processamento Digital de Sinais Prof. Marcelo E. Pellenz pg. 28


Processamento Digital de Sinais: Teoria e Aplicações Prof. Marcelo E. Pellenz

Relação entre Freqüências do Sinal Contínuo e Discreto (Normalização)


Interpretação Considerando a Digitalização de Sinais Senoidais

Sinais em Tempo
Sinais em Tempo Discreto
Contínuo
Ω = 2 π F (rad s ) w = 2 π f (rad amostra )
F (Hz) f (ciclos/amostra)

w = Ω TS f = F FS − 1/ 2 < f < 1/ 2
−∞< F < ∞
−π < w < π
−∞< Ω< ∞

FS = 2 FMAX = 2 F

FS F
− ≤F≤ S − 1/ 2 < f < 1/ 2
2 2
Ω = w TS F = f ⋅ FS
π π
− ≤Ω≤ −π < w < π
TS TS

FS 1
FMAX = =
2 2 TS
π
Ω MAX = π FS =
TS
TABELA 1

EXEMPLO 2.1 – ANÁLISE DO DO EFEITO DE ALIASING

x1 (t ) = cos(2 π 10 t ) F1 = FMAX = 10 Hz FS = 40 Hz
x 2 (t ) = cos(2 π 50 t ) F2 = FMAX = 50 Hz FS = 40 Hz

  10   π 
x1 [n] = cos 2 π   n = cos n 
  40   2 
  50    5π   π  π 
x 2 [n] = cos 2 π   n  = cos n  = cos 2 π n + n  = cos n 
  40    2   2  2 

x1 [n] = x 2 [n] => ALIASING (indistinguível)

F2 ⇒ F1
alias
(F1 + FS ⋅ k ) alias
⇒ F1 k = 1, 2, 3, K (inteiro)

Fk = F0 + k ⋅ FS −∞ < k < ∞ Freqüências de alias


Processamento Digital de Sinais Prof. Marcelo E. Pellenz pg. 29
Processamento Digital de Sinais: Teoria e Aplicações Prof. Marcelo E. Pellenz

EXERCÍCIOS

1) x c (t ) = sen (2π 100t ) FS = 400 Hz Determine x[n]


π
2) x[n] = cos  n  FS = 1000Hz Determine Ω dado que x c (t ) = cos (Ω t )
4 
π
3) x c (t ) = cos (4000π t ) x[n] = cos  n  Determine FS
3 
π   2π 
4) x c (t ) = sen (20π t ) + cos (40π t ) x[n] = sen  n  + cos  n Determine FS
5   5 
5) Considere o sinal analógico x c (t ) = 3 ⋅ cos (100π t )
a) Determine a freqüência de amostragem mínima para evitar aliasing
b) Sendo FS = 200 Hz , determine o sinal x[n]
c) Sendo FS = 75Hz , determine o sinal x[n]

Processamento Digital de Sinais Prof. Marcelo E. Pellenz pg. 30


Processamento Digital de Sinais: Teoria e Aplicações Prof. Marcelo E. Pellenz

3. Periodicidade de Seqüências Discretas


Características dos sinais senoidais em tempo discreto:

a) Um sinal senoidal em tempo discreto é periódico, somente se a sua freqüência


normalizada, f , for um número racional (razão de inteiros)

x[n] = x[n + N ] ⇒ Condição de periodicidade para um sinal de período N

Para um sinal senoidal (em tempo discreto) de freqüência, f , ser periódico, tem que ser satisfeita a
seguinte relação

x[n] = cos(2 π f n ) = cos(2 π f (n + N )n )

x[n] = cos(2 π f n ) = cos(2 π f n + 2 π f N )

cos(θ ) = cos(θ + 2 π )

O termo, 2 π f N , deve ser múltiplo inteiro de 2 π , ou seja,

2π f N = 2π ⋅ k , k inteiro

k w k 2π k
f = f = = w=
N 2π N N

2π k
Podemos interpretar a relação w = da seguinte forma: existem N freqüências distintas para as
N
quais as seqüências correspondentes são periódicas com período N.

b) Sinais senoidais discretos, cujas freqüências são separadas por um múltiplo inteiro de
2 π , são idênticos

cos(( w + 2 π ) n + θ ) = cos(w n + θ )
EXEMPLO 3.1

π  1 2π k 1
x1 [n] = cos  n  f = k =1 w= = 2π
4  8 8 8

2π k
wk = k = 0,1, 2, 3, 4, 5, 6, 7
8

Contudo existem 8 sinais com freqüências diferentes, wk , e com o mesmo período N=8:
π π 3π
w0 = 0 w1 = w2 = w3 =
4 2 4
5π 3π 7π
w4 = π w5 = w6 = w7 =
4 2 4

Processamento Digital de Sinais Prof. Marcelo E. Pellenz pg. 31


Processamento Digital de Sinais: Teoria e Aplicações Prof. Marcelo E. Pellenz

4. Interpretação da Freqüência Normalizada


k
A freqüência normalizada, f = , indica em quantos períodos do sinal analógico, k , estão
N
contidos num período, N , do sinal em tempo discreto (amostrado).

EXEMPLO 4.1

A seguir são apresentadas três seqüências discretas amostradas com freqüências distintas, que
possuem a mesma freqüência normalizada:

 3   3 
x1 (t ) = 1,5 ⋅ cos 2π t  FS = 1 x1 [n] = 1,5 ⋅ cos 2π n 
 8   8 

 3  1  3 
x 2 (t ) = 1,5 ⋅ cos 2π t  FS = x 2 [n] = 1,5 ⋅ cos 2π n 
 16  2  8 

 3   3 
x 3 (t ) = 1,5 ⋅ cos 2π t  FS = 2 x3 [n ] = 1,5 ⋅ cos 2π n 
 4   8 

Processamento Digital de Sinais Prof. Marcelo E. Pellenz pg. 32


Processamento Digital de Sinais: Teoria e Aplicações Prof. Marcelo E. Pellenz

5. Sinais de Freqüências Distintas com o mesmo Período

0.5

0 1
w0 = 2π
-0.5 8
-1
0 5 10 15 20 25 30 35

0.5
2
0 w0 = 2π
-0.5
8
-1
0 5 10 15 20 25 30 35

0.5
3
0 w0 = 2 π
-0.5 8
-1
0 5 10 15 20 25 30 35

0.5

0 4
w0 = 2π
-0.5 8
-1
0 5 10 15 20 25 30 35

Processamento Digital de Sinais Prof. Marcelo E. Pellenz pg. 33


Processamento Digital de Sinais: Teoria e Aplicações Prof. Marcelo E. Pellenz

6. Interpretação de Freqüências Altas e Baixas


Para sinais contínuos, quando aumentamos a freqüência, aumentamos a oscilação.

x(t ) = cos(Ω 0 t + θ ) ↑ Ω 0 ↑ OSCILAÇÃO

Para sinais discretos, quando aumentamos a freqüência de 0 para π , aumentamos a


oscilação. Aumentando a freqüência de π para 2π , a oscilação diminui.

x[n] = A ⋅ cos(w0 n + θ )

0 ≤ w0 ≤ π ↑ w0 ↑ OSCILAÇÃO

π ≤ w0 ≤ 2 π ↑ w0 ↓ OSCILAÇÃO

Isso ocorre porque w0 = 0 é indistinguível de w0 = 2π , ou seja, freqüências em torno de


w0 = 0 são indistinguíveis de freqüências em torno de w0 = 2π .

Freqüências Baixas ⇒ w0 = 2πk

Freqüências Altas ⇒ w0 = π + 2πk

Exemplo

w0 = 0 = 2π
π π 15π
w0 = = 2π − =
8 8 8
π π 7π
w0 = = 2π − =
4 4 4

Exemplos de Sinais Periódicos:

π 
x1 [n] = cos n N =8
4 
 3π 
x 2 [n] = cos n N = 16
 8 
Neste caso aumentando a freqüência de w0 = 2π 8 para w0 = 3π 8 , o período também aumentou
de N = 8 para N = 16 . No caso de sinais contínuos, aumentando a freqüência, o período diminui.

Exemplo de Sinal não Periódico:

2πk
x 3 [n] = cos(n ) 1=
N
Não existe k inteiro tal que N seja inteiro.

Processamento Digital de Sinais Prof. Marcelo E. Pellenz pg. 34


Processamento Digital de Sinais: Teoria e Aplicações Prof. Marcelo E. Pellenz

7. Interpretação de Freqüências Altas e Baixas


em Tempo Discreto

0.5 w0 = 0 = 2π

0
0 5 10 15 20 25 30 35

0.5
π
0 w0 =
-0.5 8
-1
0 5 10 15 20 25 30 35

0.5
π
0 w0 =
-0.5
4
-1
0 5 10 15 20 25 30 35

0.5
π
0 w0 =
-0.5
2
-1
0 5 10 15 20 25 30 35

0.5

0 w0 = π
-0.5

-1
0 5 10 15 20 25 30 35

Processamento Digital de Sinais Prof. Marcelo E. Pellenz pg. 35


Processamento Digital de Sinais: Teoria e Aplicações Prof. Marcelo E. Pellenz

8. Operações com Seqüências Discretas

x[n] = {K, x[− 1], x[0], x[1],K} − ∞ < n < ∞

x1 [n] = {K, x1 [− 1], x1 [0], x1 [1], K}


x 2 [n] = {K, x 2 [− 1], x 2 [0], x 2 [1], K}

Multiplicação por escalar: y[n] = α ⋅ x1 [n] = {K,α x1 [− 1], α x1 [0],α x1 [1],K}

Multiplicação de seqüências: y[n] = x1 [n] ⋅ x 2 [n] = {K, x1 [− 1] ⋅ x 2 [− 1], x1 [0] ⋅ x 2 [0], x1 [1] ⋅ x 2 [1],K}

Adição de seqüências: y[n] = x1 [n] + x 2 [n] = {K, x1 [− 1] + x 2 [− 1], x1 [0] + x 2 [0], x1 [1] + x 2 [1],K}

Deslocamento no Tempo: y[n] = x[n − n0 ], n0 inteiro

x[n] y[n] = x[n − 2]

-2 -1 0 1 2 n 0 1 2 3 4 n

9. Função Impulso Unitário

A função impulso em tempo discreto desempenha o mesmo papel da função “delta de Dirac”
para sinais contínuos:

1, n = 0 1 δ [n]
δ[n] = 
0, n ≠ 0

-2 -1 0 1 2 n
Qualquer seqüência discreta, x[n] , pode ser escrita como um somatório de funções impulsos:
+∞
x[n ] = ∑ x[k ]⋅ δ[n − k ]
k = −∞

10. Função Degrau Unitário


1, n ≥ 0 +∞
u[n] =  u[n ] = ∑ δ[n − k ] δ[n] = u[n] − u[n − 1]
0, n < 0 k =0

Processamento Digital de Sinais Prof. Marcelo E. Pellenz pg. 36


Processamento Digital de Sinais: Teoria e Aplicações Prof. Marcelo E. Pellenz

PRÉ-LAB 1 – REPRESENTAÇÃO E OPERAÇÕES COM SEQUENCIAS DISCRETAS

- Leitura dos Capítulos 1 e 2


- Fazer o download do toolbox de funções do livro (trazer em disquete)
Link:

HTTP://WWW.BROOKSCOLE.COM/CGI-WADSWORTH/COURSE_PRODUCTS_WP.PL?FID=M20B&PRODUCT_ISBN_ISSN=0534371744&DISCIPLINE_NUMBER=9

- Leitura do Capítulo 2 pg. 8-20


- Trazer uma página, escrita a mão, descrevendo as funções para geração e operação com
seqüências discretas, com os respectivos parâmetros de passagem e retorno.

Processamento Digital de Sinais Prof. Marcelo E. Pellenz pg. 37


Processamento Digital de Sinais: Teoria e Aplicações Prof. Marcelo E. Pellenz

PROCESSAMENTO DIGITAL DE SINAIS (PDS)


LABORATÓRIO 1 – REPRESENTAÇÃO E OPERAÇÕES
COM SINAIS EM TEMPO DISCRETO
PROF. MARCELO PELLENZ

Atualmente o software MATLAB é uma ferramenta amplamente utilizada para o


desenvolvimento e simulação de algoritmos para processamento digital de sinais. As últimas
versões do software permitem simulações em tempo real e também possuem bibliotecas que
permitem o interfaceamento direto com determinados kits de DSP.
No MATLAB podemos representar uma seqüência discreta de duração finita por um vetor
linha (coluna). Contudo, este vetor não tem nenhuma informação de referência sobre a posição n de
cada amostra. Portanto, a representação correta de uma seqüência discreta x[n], necessita de dois
vetores, um representando os valores das amostras e outro representando a posição das amostras.
Exemplo - Considere a representação da seguinte seqüência:

x[n ] = {2 , 1 , - 1 , 0 , 1 , 4 , 3 , 7}

A seta indica que a amostra está na posição n=0. Os vetores x e n podem ser definidos no
MATLAB da seguinte forma:

>> n = [- 3 , - 2 , - 1 , 0 , 1 , 2 , 3 , 4]
>> x = [2 , 1 , - 1 , 0 , 1 , 4 , 3 , 7]
ou
>> n = [- 3 - 2 - 1 0 1 2 3 4]
>> x = [2 1 - 1 0 1 4 3 7]

Para traçar o gráfico da seqüência discreta utilize o seguinte comando:


>> stem(n, x)

Será utilizado apenas o vetor ‘x’ quando a informação da posição das amostras não é
necessária ou quando tal informação for trivial (um exemplo é quando a seqüência inicia em n=0).
Uma seqüência de duração infinita não pode ser representada no MATLAB.

EXERCÍCIO 1 – Defina e faça o gráfico das seguintes seqüências discretas:

x1 [n] = {3 , 0 , 2 , 1 , 5 , 7 , 0 , 0 , 1 , 1 , 10} x 2 [n] = {- 4 , - 3 , - 2 , - 1 , 0 , 1 , 2 , 3 , 4}


↑ ↑
x3 [n ] = {0 , 0 , 0 , 1 , 0 , 0 , 0}

x 4 [n] = {1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1}

EXERCÍCIO 2 – Geração de seqüências exponenciais reais: x[n] = k ⋅ a n , ∀ n ; a, k ∈ R
Representar e traçar as seguintes seqüências exponenciais reais:
x1 [n ] = (0.8) x 2 [n] = (1.5)
n n
N 1 = 100 N 2 = 50
x3 [n] = 2 ⋅ (0.5) x 4 [n] = 0.5 ⋅ (2 )
n n
N 3 = 30 N 4 = 200

As seqüências devem ter comprimento N, ou seja, 0 ≤ n ≤ N − 1 .


Processamento Digital de Sinais Prof. Marcelo E. Pellenz pg. 38
Processamento Digital de Sinais: Teoria e Aplicações Prof. Marcelo E. Pellenz

EXERCÍCIO 3 – Geração de seqüências exponenciais complexas

x[n] = e (σ+ j ω ) n , ∀ n ω = freqüência σ = fator de atenuação

Utilizando o programa em anexo, trace os gráficos das seqüências exponenciais complexas, para os
seguintes parâmetros:

σ = 0.5 ω = π/6 N = 50
σ = 1 ω = π / 4 N = 100
σ = -0.5 ω = π/4 N = 30
σ = 0 ω = π/6 N = 60

Como as seqüências são complexas (amostras complexas) devemos visualizar a parte real e
imaginária ou as componentes em módulo e fase. Na análise espectral de sinais usando a
Transformada Discreta de Fourier (DFT/FFT) trabalharemos com amostras complexas.
% Geração de uma seqüência exponencial complexa
clear; clc;
sigma=input('Digite o valor de sigma:');
w=input('Digite a frequencia: ');
N= input('Digite o comprimento da sequencia: ');
n=0:(N-1); c=sigma+w*i; x=exp(c*n);
figure(1)
subplot(2,1,1);
stem(n,real(x));
xlabel('n');
ylabel('Amplitude');
title('Parte Real');
subplot(2,1,2);
stem(n,imag(x));
xlabel('n');
ylabel('Amplitude');
title('Parte Imaginária');
figure(2)
subplot(2,1,1);
stem(n,abs(x));
xlabel('n');
ylabel('Módulo');
subplot(2,1,2);
stem(n,angle(x));
xlabel('n'); ylabel('Fase');

EXERCÍCIO 4 – Implemente um programa para gerar seqüências, x[n] = cos (ω 0 n ) , para as


seguintes freqüências:
ω 0 = 0, π / 4, 2π / 4, 3π/ 4, π
ω 0 = 5π/ 4, 6π / 4, 7π / 4, 2π

Interprete o conceito de freqüências altas e baixas. Se estas seqüências forem sintetizadas pelo
conversor D/A para uma freqüência de amostragem especificada, FS , quais as freqüências dos
sinais analógicos gerados (Hz) ?

ω0 = π / 4 ω 0 = 2π / 4 ω 0 = 3π / 4 ω0 = π ω 0 = 5π / 4
FS = 8 kHz
FS = 16 kHz
(Preencher Tabela)

Processamento Digital de Sinais Prof. Marcelo E. Pellenz pg. 39


Processamento Digital de Sinais: Teoria e Aplicações Prof. Marcelo E. Pellenz

EXERCÍCIO 5 – Implemente um programa para traçar a seguinte seqüência

x[n] = 5 ⋅ cos (0.5 π n + π/4) + 2 ⋅ sen (0.5 π n ) , − 20 ≤ n ≤ 20

EXERCÍCIO 6 – Analisar o funcionamento das seguintes funções, fornecidas com o livro Digital
Signal Processing using Matlab (V. K. Ingle and J. G. Proakis):

A biblioteca de funções do livro está disponível no endereço:


HTTP://WWW.BROOKSCOLE.COM/CGI-
WADSWORTH/COURSE_PRODUCTS_WP.PL?FID=M20B&PRODUCT_ISBN_ISSN=0534371744&DISCIPLINE_NUMBER=9

Gerar uma função impulso, x(t ) = δ(t − t o ) em tempo discreto, x[n] = δ(n − no ) , n1 ≤ n ≤ n2 .
[x,n]=impseq(n0,n1,n2)

x[n] = δ[n] − 20 ≤ n ≤ 20 x[n] = δ[n − 4] − 20 ≤ n ≤ 20

Gerar uma função degrau unitário, x(t ) = u (t − t o ) em tempo discreto, x[n] = u (n − no ) , n1 ≤ n ≤ n2 .


[x,n]=stepseq(n0,n1,n2)

x[n] = u[n] − 20 ≤ n ≤ 20 x[n] = u[n − 4] − 20 ≤ n ≤ 20

Somar dois sinais em tempo discreto, y[n] = x1 [n] + x 2 [n] : [y,n]=sigadd(x1,n1,x2,n2)


Multiplicar dois sinais em tempo discreto, y[n] = x1[n] ⋅ x 2 [n] : [y,n]=sigmult(x1,n1,x2,n2)

x1 [n] = {3 , 0 , 2 , 1 , 5 , 7 , 0 , 0 , 1 , 1 , 10} x 2 [n] = {- 4 , - 3 , - 2 , - 1 , 0 , 1 , 2 , 3 , 4}


↑ ↑

Deslocar um sinal em tempo discreto, y[n] = x[n − n0 ] : [y,n]=sigshift(x,n,n0)

x1 [n] = {3 , 0 , 2 , 1 , 5 , 7 , 0 , 0 , 1 , 1 , 10}
y[n] = x1 [n − 4]

Rebater um sinal em tempo discreto, y[n] = x[− n] : [y,n]=sigfold(x,n)

y[n] = x1 [−n]

EXERCÍCIO 7 – Implemente e trace o gráfico das seguintes seqüências utilizando as funções da


biblioteca do livro Digital Signal Processing using MATLAB (Vinay K. Ingle and John G. Proakis).

a) x[n] = 2 δ[n + 2] − δ[n − 4] − 20 ≤ n ≤ 20


b) x[n] = n ⋅ { u[n] − u[n − 10] } + 10 ⋅ exp[− 0.3 ⋅ (n − 10)] ⋅ { u[n − 10] − u[n − 20] } 0 ≤ n ≤ 50
11.
EXERCÍCIO 8 – Trace o gráfico das seguintes seqüências discretas e determine se estes sinais são
periódicos.

π   3π 
x[n ] = cos  n x[n ] = cos  n x[n] = cos (n ) 0 ≤ n ≤ 30
4   8 
Processamento Digital de Sinais Prof. Marcelo E. Pellenz pg. 40
Processamento Digital de Sinais: Teoria e Aplicações Prof. Marcelo E. Pellenz

12.
PRÉ-RELATÓRIO PARA O LABORATÓRIO 2
Resolver os problemas P2.1 (itens b,c), P2.2 (itens a, b,c) da pág. 35 do livro Digital Signal
Processing using MATLAB (Vinay K. Ingle and John G. Proakis).

OBS: O livro está disponível na biblioteca.

OBSERVAÇÃO SOBRE GERAÇÃO DE SEQÜÊNCIAS

x[n ] = {1 , 2 , 3 , 4 , 5 , 6 , 7 , 6 , 5 , 4 , 3, 2, 1}

x1 [n] = 2 ⋅ x[n − 5] − 3 * x[n + 4]

clear;
clc;
n = -2:10;
x = [1:7,6:-1:1];
[x11,n11] = sigshift(x,n,5);
[x12,n12] = sigshift(x,n,-4);
[x1,n1] = sigadd(2*x11,n11,-3*x12,n12);
figure(1);
subplot(2,1,1);
stem(n1,x1);

Processamento Digital de Sinais Prof. Marcelo E. Pellenz pg. 41


Processamento Digital de Sinais: Teoria e Aplicações Prof. Marcelo E. Pellenz

13. Decomposição em Seqüência Par e Ímpar

Uma seqüência discreta, x[n] , é classificada como par (simétrica) se xe [n] = xe [− n ] .


Uma seqüência discreta, x[n] , é classificada como ímpar (assimétrica) se xo [n] = − xo [− n] .
Qualquer sinal real pode ser escrito como x[n ] = xe [n] + xo [n ] , onde

1 1
xe [n ] = [x[n] + x[− n]] xo [n] = [x[n] − x[− n]]
2 2

14. Sinais de Energia e Sinais de Potência


+∞ +N

∑ x[n] ∑ x[n]
2 2
Ex = EN = E x = lim E N
n = −∞ n=− N N →∞

1 N
1
∑ x[n] = lim
2
Px = lim EN
N →∞ 2 N + 1 n=− N N →∞ 2 N + 1

Para sinais periódicos

N −1
1
∑ x[n]
2
Px =
N n =0

15. Escalonamento no Tempo (Down-Sampling)

y[n] = x[k ⋅ n] , k inteiro, (k > 0)

16. Sistemas Discretos Lineares e Invariantes no Tempo (LTI)

x[n] T{ } y[n]
δ [n] h[n]
δ [n − k ] h[n − k ]

T {a ⋅ x1 [n] + b ⋅ x2 [n]} = a ⋅ T {x1 [n]}+ b ⋅ T {x2 [n]}


 ∞ 
x[n ] = ∑ x[k ] ⋅ δ [n − k ] ⇒ y[n] = T {x[n]} = T  ∑ x[k ]⋅ δ [n − k ]
k = −∞ k =−∞ 

Aplicando a propriedade da linearidade, temos


y[n ] = ∑ x[k ]⋅ T {δ [n − k ]}
k = −∞

Processamento Digital de Sinais Prof. Marcelo E. Pellenz pg. 42


Processamento Digital de Sinais: Teoria e Aplicações Prof. Marcelo E. Pellenz

Aplicando a propriedade da invariância da resposta ao impulso, temos



y[n] = ∑ x[k ]⋅ h[n − k ]
k = −∞
Este resultado representa a expressão de convolução (soma de convolução) para se calcular a
resposta de um sistema LTI com resposta ao impulso h[n] ao sinal de entrada, y[n] .

y[n ] = ∑ x[k ]⋅ h[n − k ] = x[n]∗ h[n]
k = −∞

y[n ] = ∑ h[k ]⋅ x[n − k ] = h[n]∗ x[n]
k = −∞

PROPRIEDADES DA CONVOLUÇÃO

a) Comutativa: x[n]∗ h[n] = h[n]∗ x[n]


b) Associativa: ( x1 [n]∗ x2 [n]) ∗ x3 [n] = x1 [n]∗ ( x2 [n]∗ x3 [n])
c) Distributiva: x1 [n] ∗ ( x2 [n] + x3 [n]) = x1 [n] ∗ x2 [n] + x1 [n] ∗ x3 [n]
h1[n]
x[n] y[n]
x[n] h1[n] h2[n] y[n]
h2[n]

h1[n] h2[n] h1[n]+h2[n]


*

Exercício 1 – Realizar a convolução entre as duas seqüências discretas:

x[n ] = [3 , 0 , 4 , 0 , 0 , - 2 ] n = [-2 , - 1 , 0 , 1, 2, 3] h[n ] = [3 , 2 , 1] n = [0 , 1 , 2 ]

Exercício 2 – Calcular a resposta ao impulso do sistema: y[n] − a ⋅ y[n − 1] = x[n]

17. Estabilidade de Sistemas LTI


Um sistema LTI é estável no sentido BIBO (Bounded Input–Bounded Output) se


S= ∑ h[k ] < ∞
k = −∞

Um sistema BIBO implica que para uma seqüência de entrada limitada teremos uma saída
limitada,
x[n] < ∞ ⇒ y[n] < ∞ ∀ x, y

18. Sistema LTI Causal

Um sistema LTI é causal se h[n] = 0 para n < 0 .

Processamento Digital de Sinais Prof. Marcelo E. Pellenz pg. 43


Processamento Digital de Sinais: Teoria e Aplicações Prof. Marcelo E. Pellenz

19. Correlação e Autocorrelação de Seqüências



rx , y [l ] = ∑ x[n]⋅ y[n − l ] = x[n]∗ y[− l ] Correlação
n = −∞


rx , x [l ] = ∑ x[n]⋅ x[n − l ] = x[l ]∗ x[− l ] Autocorrelação
n = −∞

20. Equação de Diferenças Linear com Coeficientes Constantes

N M

∑ a k ⋅ y[n − k ] = ∑ bk ⋅ x[n − k ]
k =0 k =0
N M N M
ak bk
a 0 ⋅ y[n] + ∑a
k =1
k ⋅ y[n − k ] = ∑bk =0
k ⋅ x[n − k ] y[n] = − ∑
k =1
a0
⋅ y[n − k ] +∑k =0
a0
⋅ x[n − k ]

21. Representação de Sistemas usando Diagrama de Blocos

x1[n] y[n]=x1[n]+x2[n] x1[n] y[n]=x1[n]*x2[n]


+
Somador Multiplicador
x2[n] x2[n]

x[n] a y[n]=a*x[n] Multiplicador


por escalar

x[n] y[n]=x[n-1]
Z-1 Atraso unitário

y[n]=x[n+1]
Z Avanço unitário

PRÉ-LAB 2 – SISTEMA DE DISCAGEM POR TONS DE FREQÜÊNCIA (DTMF)

®
697 Hz 1 2 3 A Implementar no Matlab um programa para gerar os
tons de freqüência (DTMF) utilizados nos sistemas
de discagem. Utilize uma freqüência de amostragem
770 Hz 4 5 6 B de 8kHz. A duração de cada tom deve ser de 125ms.
Utilize a função sound do Matlab para escutar os
tons gerados.
852 Hz 7 8 9 C

941 Hz * 0 # D

1209 Hz 1336 Hz 1477 Hz 1633 Hz

Processamento Digital de Sinais Prof. Marcelo E. Pellenz pg. 44


Processamento Digital de Sinais: Teoria e Aplicações Prof. Marcelo E. Pellenz

PROCESSAMENTO DIGITAL DE SINAIS (PDS)


LABORATÓRIO 2 – SINAIS E SISTEMAS DISCRETOS
PROF. MARCELO PELLENZ

EXERCÍCIO 1 – Decomposição do Sinal em Componente Simétrica (Par)


e Componente Assimétrica (Ímpar)

Qualquer seqüência discreta real, x[n] , pode ser decomposta em suas componentes par e ímpar:

x[n ] = x par [n ] + xímpar [n]


1 1
x par [n] = { x[n] + x[− n] } xímpar [n ] = { x[n] − x[− n] }
2 2

O programa a seguir utiliza a função [xe,xo,m]=evenodd(x,n) do toolbox do livro para decompor a


seqüência discreta x[n] = u[n] − u[n − 10] em suas componentes par e ímpar. Verifique nos gráficos
gerados, que se adicionarmos as seqüências x par [n] + xímpar [n ] obteremos a seqüência original x[n] .

n = [0:10];
x = stepseq(0,0,10)-stepseq(10,0,10);
[xe,xo,m] = evenodd(x,n);
subplot(1,1,1)
subplot(2,2,1); stem(n,x); title('Pulso Retangular')
xlabel('n'); ylabel('x(n)'); axis([-10,10,0,1.2])
subplot(2,2,2); stem(m,xe); title('Componente Par')
xlabel('n'); ylabel('xe(n)'); axis([-10,10,0,1.2])
subplot(2,2,4); stem(m,xo); title('Componente Impar')
xlabel('n'); ylabel('xe(n)'); axis([-10,10,-0.6,0.6])

EXERCÍCIO 2 – Convolução Linear

Para sistemas lineares invariantes no tempo (LTI – Linear Time-Invariant Systems), podemos
relacionar os sinais de entrada e saída do sistema através da soma de convolução, definida pela
equação:
∞ ∞
y[n ] = x[n] ∗ h[n] = ∑ x[k ]⋅ h[n − k ] = ∑ h[k ]⋅ x[n − k ]
k = −∞ k = −∞
Se conhecermos a resposta ao impulso do sistema (por exemplo um filtro digital) podemos calcular
a saída y[n] fazendo a convolução do sinal de entrada, x[n] , com a resposta ao impulso do sistema,
h[n] . Utilize a função y=conv(x,h) do Matlab para calcular a convolução linear entre duas
seqüências discretas de duração finita. A função conv assume que as duas seqüências iniciam no
instante n=0.
x[n] = [ 3 11 7 0 - 1 4 2] - Sinal de entrada do sistema
h[n] = [ 2 3 0 - 5 2 1] - Resposta ao impulso do sistema

y[n ] = x[n] * h[n] = ∑ x[k ]⋅ h[n − k ] - Saída do sistema
k = −∞

No programa trace os gráficos das seqüências x[n] , h[n] e y[n] . Interprete graficamente a operação
de convolução.

Processamento Digital de Sinais Prof. Marcelo E. Pellenz pg. 45


Processamento Digital de Sinais: Teoria e Aplicações Prof. Marcelo E. Pellenz

EXERCÍCIO 3 – Convolução Linear

Para se fazer a convolução entre seqüências genéricas


x[n], n xb ≤ n ≤ n xe
h[n], nhb ≤ n ≤ nhe
utilize a função [y,ny]=conv_m(x,nx,h,nh) do toolbox do livro. Esta função já retorna também um
vetor para traçar o gráfico correto de y[n] . Faça a convolução linear entre as duas seqüências
discretas abaixo:
x[n] = [ 3 11 7 0 - 1 4 2] , − 3 ≤ n ≤ 3
h[n] = [ 2 3 0 - 5 2 1] , − 1 ≤ n ≤ 4

Trace o gráfico de x[n] , h[n] e y[n] = x[n] ∗ h[n] . Interprete graficamente a convolução.

EXERCÍCIO 4 – Cálculo de Correlação entre Seqüências

A correlação é uma operação muito usada em aplicações de processamento digital de sinais. É uma
medida do grau de similaridade entre duas seqüências (sinais).

rxy [l ] = ∑ x[n]⋅ y[n − l ] = y[l ]* x[− l ]
n = −∞
A autocorrelação nos dá uma medida de auto-similaridade do sinal com versões deslocadas dele
mesmo:

rxx [l ] = ∑ x[n]⋅ x[n − l ] = x[l ]* x[− l ]
n = −∞
O cálculo da correlação e autocorrelação podem ser implementados usando a convolução.
Considere a seqüência x[n] = [ 3 11 7 0 - 1 4 2] , − 3 ≤ n ≤ 3 e a seqüência y[n] como sendo uma
versão deslocada e com ruído da seqüência x[n] , ou seja, y[n] = x[n − 2] + w[n] .

% sequencia com ruido 1


x = [3, 11, 7, 0, -1, 4, 2]; nx=[-3:3]; % sinal x(n)
[y,ny] = sigshift(x,nx,2); % x(n-2)
w = randn(1,length(y)); nw = ny; % ruido w(n)
[y,ny] = sigadd(y,ny,w,nw); % y(n) = x(n-2) + w(n)
[x,nx] = sigfold(x,nx); % x(-n)
[rxy,nrxy] = conv_m(y,ny,x,nx); % autocorrelacao
subplot(1,1,1)
subplot(2,1,1);stem(nrxy,rxy)
axis([-4,8,-50,250]);xlabel('deslocamento l')
ylabel('rxy');title('Autocorrelacao: sequencia com ruido 1')
gtext('Maximo')
% sequencia com ruido 2
x = [3, 11, 7, 0, -1, 4, 2]; nx=[-3:3]; % sinal x(n)
[y,ny] = sigshift(x,nx,2); % x(n-2)
w = randn(1,length(y)); nw = ny; % ruido w(n)
[y,ny] = sigadd(y,ny,w,nw); % y(n) = x(n-2) + w(n)
[x,nx] = sigfold(x,nx); % x(-n)
[rxy,nrxy] = conv_m(y,ny,x,nx); % autocorrelacao
subplot(2,1,2);stem(nrxy,rxy)
gtext('Maximum')
axis([-4,8,-50,250]);xlabel('deslocamento l')
ylabel('rxy');title('Autocorrelacao: sequence com ruido 2')

O MATLAB possui a função xcorr(x,y) e xcorr(x) para calcular a correlação e autocorrelação.

Processamento Digital de Sinais Prof. Marcelo E. Pellenz pg. 46


Processamento Digital de Sinais: Teoria e Aplicações Prof. Marcelo E. Pellenz

EXERCÍCIO 5 – Exemplo de Implementação de um Filtro Digital

Exemplo de aplicação do filtro de média móvel para filtragem de um sinal com ruído:

M −1
1
y[n ] = ∑ x[n − k ]
M i =0
% Filtro de média móvel para M=3
clear; clc;

figure(1);
N=50;
d=rand(N,1)-0.5;
n=0:1:N-1;
s=2*n.*(0.9.^n);
subplot(2,1,1); stem(n,s); xlabel('n'); ylabel('Amplitude'); title('s[n]');
subplot(2,1,2); stem(n,d); xlabel('n'); ylabel('Amplitude'); title('d[n]');

N=50;
d=rand(N,1)-0.5;
n=0:1:N-1;
s=2*n.*(0.9.^n);
x=s+d';
figure(2);
plot(n,d,'r-',n,s,'b-',n,x,'g-'); xlabel('n'); ylabel('Amplitude'); legend('r-','d[n]','b-','s[n]','g-','x[n]');
M=3;
b=ones(M,1)/M;
y=filter(b,1,x);
figure(3);
plot(n,s,'r-',n,y,'b-'); legend('r-','s[n]','b-','y[n]'); xlabel('n'); ylabel('Amplitude');

EXERCÍCIO 6 – Equações Lineares com Coeficientes Constantes

Um sistema discreto linear pode ser caracterizado por uma equação linear de coeficientes constantes
na forma
N M

∑ ak y[n − k ] = ∑ bk x[n − k ]
k =0 k =0

A função y=filter(b,a,x) do Matlab resolve a equação de diferenças. Considere a seguinte equação


de diferenças
y[n] − y[n − 1] + 0.9 y[n − 2] = x[n]
Determine:
a) Determine a resposta ao impulso do sistema, h[n] , no intervelo − 20 ≤ n ≤ 120
b) Determine a resposta ao degrau do sistema, s[n] , no intervelo − 20 ≤ n ≤ 120

PRÉ-RELATÓRIO PARA O LABORATÓRIO 3

Resolver os problemas P2.3, P2.4 (para itens a, b, c do P2.2), P2.5, P2.6 e P2.7 do livro
Digital Signal Processing using MATLAB (Vinay K. Ingle and John G. Proakis).

Processamento Digital de Sinais Prof. Marcelo E. Pellenz pg. 47


Processamento Digital de Sinais: Teoria e Aplicações Prof. Marcelo E. Pellenz

Análise Espectral de Sinais Contínuos no Tempo


1 – Série de Fourier

Sinais contínuos periódicos (sinais de potência) podem sem expressos pela série complexa
de Fourier,


1
x(t ) = ∑c k ⋅ e j 2 π k F0 t F0 =
k = −∞ T0

1 T0 / 2
ck = ∫ x(t ) ⋅ e − j 2 π k F0 t dt k = 0, ± 1, ± 2,K
T0 −T0 / 2

ck = ck ⋅ e jθ k Coeficientes complexos da série de Fourier

2 – Transformada de Fourier

Sinais contínuos aperiódicos (sinais de energia)

1
x(t ) =
2π ∫−∞
+∞
( )
X e jw ⋅ e jw t dw

( ) ∫
X e jw =
+∞

−∞
x(t ) ⋅ e − jw t dt

Processamento Digital de Sinais Prof. Marcelo E. Pellenz pg. 48


Processamento Digital de Sinais: Teoria e Aplicações Prof. Marcelo E. Pellenz

Análise Espectral de Sinais Discretos no Tempo


1 – Série de Fourier

Sinais discretos periódicos, x[n] = x[n + N ] , podem sem expressos pela série complexa de
Fourier,
N −1 N −1

∑ ∑c
k
x[n] = ck ⋅ e j2π k n / N = k ⋅ e j 2π fn
f =
k =0 k =0
N

N −1
1
ck =
N
∑ x[n]⋅ e
k =0
− j 2π k n / N
k = 0,1, K, N − 1

2πk
e j 2 π k n / N = e jwk n wk =
N

O espectro do sinal x[n] é também uma seqüência periódica com período N .

0 ≤ wk < 2π 0 ≤ k ≤ N −1 0 ≤ F ≤ FS

N N
− π ≤ wk < π − <k≤
2 2

2 – Transformada de Fourier em Tempo Discreto (DTFT)

Sinais discretos não periódicos

+∞
( ) ∑ x[n]⋅ e
X e jw = − jw n

n = −∞

1
∫ π X (e )⋅ e

x[n] = jw jw n
dw
2π −

( )
X e jw = X Re (w) + j X Im (w) = X e jw ⋅ e jθ (w ) ( )
Seqüência DTFT
δ [n] 1

1
u[n] + ∑ π ⋅ δ [w + 2πk ]
1 − e − jw k = −∞

e jw0 n
∑ 2π ⋅ δ [w − w
k = −∞
0 + 2π k ]

1
α n ⋅ u[n] α <1
1 − α ⋅ e − jw

TABELA 1 – Pares da transformada de Fourier em tempo discreto (DTFT)

Processamento Digital de Sinais Prof. Marcelo E. Pellenz pg. 49


Processamento Digital de Sinais: Teoria e Aplicações Prof. Marcelo E. Pellenz

Exemplo

1
x[n] = (0,5) n ⋅ u[n] ⇒ ( )
X e jw =
1 − 0,5 ⋅ e − jw

1.8

1.6

1.4
Módulo

1.2

0.8

0.6
-3 -2 -1 0 1 2 3
Frequência Normalizada

0.6

0.4

0.2
Fase (radianos)

-0.2

-0.4

-0.6
-3 -2 -1 0 1 2 3
Frequência Normalizada

Processamento Digital de Sinais Prof. Marcelo E. Pellenz pg. 50


Processamento Digital de Sinais: Teoria e Aplicações Prof. Marcelo E. Pellenz

Parte Real
1

0.8

0.6

0.4

0.2
Amplitude

-0.2

-0.4

-0.6

-0.8

-1
0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1
Frequência Normalizada

Parte Imaginária
1

0.8

0.6

0.4

0.2
Amplitude

-0.2

-0.4

-0.6

-0.8
0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1
Frequência Normalizada

Processamento Digital de Sinais Prof. Marcelo E. Pellenz pg. 51


Processamento Digital de Sinais: Teoria e Aplicações Prof. Marcelo E. Pellenz

0.9

0.8

0.7

0.6
Módulo

0.5

0.4

0.3

0.2

0.1

0
0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1
Frequência Normalizada

1
Fase

-1

-2

-3

-4
0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1
Frequência Normalizada

Processamento Digital de Sinais Prof. Marcelo E. Pellenz pg. 52


Processamento Digital de Sinais: Teoria e Aplicações Prof. Marcelo E. Pellenz

-1

-2

-3
Fase

-4

-5

-6

-7
0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1
Frequência Normalizada

Processamento Digital de Sinais Prof. Marcelo E. Pellenz pg. 53


Processamento Digital de Sinais: Teoria e Aplicações Prof. Marcelo E. Pellenz

TRANSFORMADA DISCRETA DE FOURIER (DFT)

x[n] , 0 ≤ n ≤ N − 1 ⇒ X (e jw )

Precisamos apenas de N pontos de freqüência distintas para representar unicamente x[n] e


X (e jw ) . Os valores de freqüência são calculados em w = wk , k = 0,1,K, N − 1 . A DFT é aplicável
apenas para seqüências finitas.

N −1 2πkn
X [k ] = X (e ) −j
jw
2πk = ∑ x[n]⋅ e N
k = 0,1,K, N − 1
w=
N n =0

1 N −1
x[n ] = ⋅ ∑ X [k ]⋅ WN−kn n = 0,1,K, N − 1
N n =0


−j
A seqüência X [k ] é chamada de DFT. Podemos definir WN = e N

N −1
X [k ] = ∑ x[n ]⋅ WNkn k = 0,1,K, N − 1 (DFT)
n =0
N −1
1
x[n] = ⋅ ∑
N n=0
X [k ]⋅ W N− kn n = 0, 1, K , N − 1 (IDFT)

Representação Matricial

N −1
X [k ] = ∑ x[n ]⋅ WNkn k = 0,1,K, N − 1
n =0

X = DN ⋅ x DFT de N pontos
x = DN−1 ⋅ X IDFT de N pontos

X = [ X [0] X [1] K X [N − 1]]


T

x = [x[0] x[1] K x[N − 1]]


T

1 1 1 L 1 
1 W 1 N −1   x[0]   X [0] 
WN2 L WN  x[1]   
 = DN−1 ⋅  X [1] 
 N  1
DN = 1 WN2 WN4 L WN2( N −1)   DN−1 = ⋅ DN*
   M   M  N
M M M O M     
1 WNN −1
WN N −1)
2 (
L WN( N −1)( N −1)   x[N − 1]  X [N − 1]

Processamento Digital de Sinais Prof. Marcelo E. Pellenz pg. 54


Processamento Digital de Sinais: Teoria e Aplicações Prof. Marcelo E. Pellenz

Cálculo Numérico da DTFT usando a DFT

Seja ( )
X e jw a DTFT de uma seqüência x[n] de comprimento N . Se desejarmos calcular
2πk
( )
X e jw numa escala densa de freqüências wk =
M
, k = 0,1,K, M − 1 , onde M >> N , teremos

N −1 N −1 2πkn
( )
X e jw = ∑ x[n]⋅ e − jwk n = ∑ x[n]⋅ e
−j
M

n =0 n =0

Definindo xe [n] = x[n] + ( M − N ) amostras nulas,

M −1 2πkn
( ) = ∑ x [n]⋅ e
X e jw
e
−j
M
DFT de M pontos
n =0

A DFT de uma seqüência de comprimento M é calculada eficientemente usando o algoritmo de FFT


para M inteiro, potência de dois.

Propriedades da DFT

Seqüência de comprimento N DFT de N pontos


x[n] X [k ]
h[n] H [k ]
α ⋅ x[n] + β ⋅ h[n] α ⋅ X [k ] + β ⋅ H [k ]
[
x n − n0 N
] W Nk n0 ⋅ X [k ]
N −1

∑ x[k ]⋅ h[ n − k ]
k =0
N
G[k ] ⋅ H [k ]

Convolução Circular versus Convolução Linear

N −1
y L [n ] = ∑ x[k ] ⋅ h[n − k ] = x[n] ∗ h[n] n = 0,1, K ,2 N − 2
k =0

N −1
yC [n] = ∑ x[k ] ⋅ h n − k [ N
] = x[n]Ο h[n] n = 0,1, K ,2 N − 2
k =0

Processamento Digital de Sinais Prof. Marcelo E. Pellenz pg. 55


Processamento Digital de Sinais: Teoria e Aplicações Prof. Marcelo E. Pellenz

x[n]
1

0.9

0.8

0.7

0.6

Amplitude
0.5

0.4

0.3

0.2

0.1

0
0 1 2 3 4 5 6 7
n

Amplitude das Amostras da DFT


8

6
Amplitude

0
0 5 10 15
k
Fase das Amostras da DFT
1.5
1

0.5
Fase

0
-0.5

-1

-1.5
0 5 10 15
k

Amplitude das Amostras da DFT


10

8
Amplitude

0
0 50 100 150 200 250
k
Fase das Amostras da DFT
3
2

1
Fase

0
-1

-2

-3
0 50 100 150 200 250
k

Processamento Digital de Sinais Prof. Marcelo E. Pellenz pg. 56


Processamento Digital de Sinais: Teoria e Aplicações Prof. Marcelo E. Pellenz

Representação de Sistemas LTI no Domínio da Freqüência

( )
A resposta em freqüência, H e jw , é uma função complexa com período 2π :

+∞
( ) ∑ h[n]⋅ e
H e jw = − jwn
( )
= H e jw ⋅ e jθ ( w )
n = −∞

G (w) = 20 ⋅ log 10 H e jw ( ) (dB) Função de Ganho

Para h[n] real, H (e jw ) é uma função par e θ (w) é uma função ímpar. A derivada da
resposta em fase é denominada de atraso de grupo, τ (w) . A função de atraso de grupo fornece uma
medida da linearidade da função de fase. O atraso de grupo é dado em segundos. Se a resposta em
fase θ (w) for linear, o atraso de grupo será constante.

dθ ( w )
τ (w ) = −
dw

Processamento Digital de Sinais Prof. Marcelo E. Pellenz pg. 57


Processamento Digital de Sinais: Teoria e Aplicações Prof. Marcelo E. Pellenz

PROCESSAMENTO DIGITAL DE SINAIS (PDS)


LABORATÓRIO 3 – TRANSFORMADA DE FOURIER DISCRETA (DFT)
PROF. MARCELO PELLENZ

Para o cálculo do espectro de freqüências de sinais contínuos, utilizamos a série de Fourier (sinais
periódicos/potência) e a transformada de Fourier (sinais não periódicos/energia). A transformada de
Fourier é de particular interesse porque na prática utilizamos sinais de energia para transmissão
digital. As expressões da transformada e transformada inversa de Fourier são:
+∞
X (ω ) = F {x(t )} = ∫ x(t ) ⋅ e − jω t dt
−∞
1 +∞
x(t ) = F −1 {X ( f )} = X (ω ) ⋅ exp( jω t ) df
2π ∫−∞
Quando aplicamos a transformada de Fourier numa seqüência em tempo discreto, x[n] , as
expressões da transformada se simplificam para
+∞
X (ω ) = F {x[n]} = ∑ x[n]⋅ e − jω n

n = −∞
1 +π
x[n ] = F −1 {X (ω )} = ∫ π X (ω ) ⋅ e
jω n

2π −

Exercício 1 – Determine analiticamente a transformada de Fourier em tempo discreto (DTFT) das


seqüências abaixo e trace o espectro (módulo/fase/parte real/parte imaginária) num intervalo
− 6π ≤ ω ≤ 6π .

a) x[n ] = (0,5) ⋅ u[n ]


n

x[n ] = {1 , 2 , 3 , 4 , 5}
b)

Analise a periodicidade do gráfico do espectro e responda as seguintes questões:
a) Entre que faixa de valores de freqüência normalizada, ω = 2 π f , devemos analisar os gráficos
de espectro
b) Se desejarmos a informação do espectro em hertz, como podemos proceder ?
c) Através das observações dos gráficos de espectro, classifique o módulo, fase, parte real e parte
imaginária como função par ou ímpar.

Exercício 2 – Considere as seguintes DTFTs

1
( )
X e jw =
1 − 0.5 e − jw

0.008 − 0.033 e − jw + 0.05 e − j 2 w − 0.033 e − j 3 w + 0.008 e − j 4 w


( )
X e jw
=
1 + 2.37 e − jw + 2.7 e − j 2 w + 1.6 e − j 3 w + 0.41e − j 4 w

Desenhe os gráficos da parte real, imaginária, módulo e fase das DTFTs, para k pontos de
freqüência. Considere k = 256, 512, 1024, 2048.

Processamento Digital de Sinais Prof. Marcelo E. Pellenz pg. 58


Processamento Digital de Sinais: Teoria e Aplicações Prof. Marcelo E. Pellenz

Transformada de Fourier Discreta (DFT)

Como podemos observar, o cálculo do espectro de uma seqüência em tempo discreto deve ser feito
analiticamente através da DTFT. Para termos um cálculo não analítico (computacional), o que
implementa é a Transformada Discreta de Fourier (DFT), que são amostras da DTFT.

N −1
X [k ] = ∑ x[n ] W Nkn , k = 0,1, ..., N − 1 DFT
n=0

N −1
1
x[n ] = ∑ X [k ] W − kn
N , n = 0,1, ..., N − 1 IDFT
N k =0

WN = e − j 2π N
Exercício 2 - Determine a DFT de M pontos, U [k ] , da seguinte seqüência discreta de comprimento
N,
1 0 ≤ n ≤ N − 1
u[n] = 
 0 fora

Utilize N = 8 , M = 8 , M = 16 , M = 64 , M = 256 .
% Exemplo do calculo computacional da DFT

N=input('Digite o comprimento N da sequencia = ');


M=input('Digite o comprimento da DFT = ');

u=[ones(1,N)];
U=fft(u,M);

n=0:1:N-1;
figure(1);
stem(n,u);
title('x[n]');
ylabel('Amplitude');
xlabel('n');

figure(2);
subplot(2,1,1);
k=0:1:M-1;
stem(k,abs(U));
axis([0 256 0 10]);
title('Amplitude das Amostras da DFT');
ylabel('Amplitude');
xlabel('k');

subplot(2,1,2);
stem(k,angle(U));
axis([0 256 -3 3]);
title('Fase das Amostras da DFT');
ylabel('Fase');
xlabel('k');

Processamento Digital de Sinais Prof. Marcelo E. Pellenz pg. 59


Processamento Digital de Sinais: Teoria e Aplicações Prof. Marcelo E. Pellenz

 3 
( )
Exercício 3 - Determine a DTFT X e jw de uma seqüência x[n ] = cos 2 π n  de comprimento
16 

16, usando uma DFT de 512 pontos.
% Calculo numerico da DTFT usando a DFT
clear; clc;
k=0:15;
x=cos(2*pi*k*3/16);
X=fft(x);
XE=fft(x,512);
L=0:511;
plot(L/M,abs(XE),'b');
hold
plot(k/N,abs(X),'or');
xlabel('Frequencia Angular Normalizada');
ylabel('Amplitude');

Exercício 4 – Filtro FIR Passa Alta – O programa a seguir implementa um filtro FIR de
comprimento 3, definido pela equação de diferenças,

y[n] = −6.76195 ⋅ x[n] + 13.456335 x[n − 1] − 6.76195 ⋅ x[n − 2] .

O sinal de entrada do filtro é x[n] = {cos (0.1 n ) + cos (0.4 n )} u[n] .

% Filtro Digital FIR Passa Alta


% Especifica os coeficientes do filtro
b=[-6.76195 13.456335 -6.76195];
% Gera as duas sequencias senoidais
n=0:99;
x1=cos(0.1*n);
x2=cos(0.4*n);
% Gera a sequencia de saida do filtro
y=filter(b,1,x1+x2);
% Mostra as sequencias de entrada e saida
plot(n,y,'r-',n,x2,'b-',n,x1,'g-',n,x1+x2,'c-'); grid;
axis([0 100 -2 4]);
ylabel('Amplitude');
xlabel('n');
legend('r-','y[n]','b-','x2[n]','g-','x1[n]','c-','x1[n]+x2[n]');

Exercício 5 – Filtro FIR Passa Baixa – Utilize o mesmo programa do Exercício 4 substituindo
apenas os novos coeficientes do filtro, b=[6.7619 -12.4563 6.7619].

Exercício 6 – O programa a seguir mostra a resposta em freqüência (módulo/fase) do filtro FIR


implementado no Exercício 4.

( )
H e jw = (2 α cos ω + β ) e − jw α = -6.76195 β = 13.456635

% Resposta em frequencia do filtro FIR


clear; clc;
% Coeficientes do filtro
h=[-6.76195 13.456335 -6.76195];
w=0:pi/1000:pi;
%Calcula a resposta em frequencia

Processamento Digital de Sinais Prof. Marcelo E. Pellenz pg. 60


Processamento Digital de Sinais: Teoria e Aplicações Prof. Marcelo E. Pellenz

H=freqz(h,1,w);
%Calcula e mostra a resposta em amplitude
m=abs(H);
figure(1);
plot(w,m,'r-');
axis([0 0.4 0 1]);
ylabel('Amplitude');
xlabel('w');
figure(2);
plot(w/pi,m,'r-');
ylabel('Amplitude');
xlabel('w/pi (normalizado)');
%Calcula e mostra as respostas em fase
pha=angle(H);
figure(3);
plot(w/pi,pha);
axis([0 1 -4 4]);
ylabel('Fase em Graus');
xlabel('Frequência Angular Normalizada');

Processamento Digital de Sinais Prof. Marcelo E. Pellenz pg. 61


Processamento Digital de Sinais: Teoria e Aplicações Prof. Marcelo E. Pellenz

Transformada-Z
Nas seções anteriores estudamos a Transformada de Fourier em Tempo Discreto (DTFT)
para representar sinais discretos usando seqüências exponenciais complexas. A DTFT de um
sistema linear invariante no tempo, com resposta ao impulso h[n] , é denominada de resposta em
( )
freqüência do sistema, H e jw . Contudo, existem duas restrições para a abordagem da DTFT. A
primeira é que para muitos sinais úteis na prática como u[n] e n ⋅ u[n] a DTFT não existe (não
converge). A segunda é que a resposta transitória de um sistema devido a condições iniciais ou
alterações da entrada não podem ser calculadas usando a abordagem da DTFT. Portanto utilizamos
uma extensão da DTFT denominada de transformada-Z:


H (Z ) = ∑ h[n]⋅ z
n = −∞
−n
Transformada-Z

onde z = r ⋅ e jw é uma variável complexa. O conjunto de valores de Z para o qual H ( z ) existe é


chamado de região de convergência (ROC), Rx − < z < Rx + , para números positivos Rx − e Rx + . A
transformada Z inversa para uma seqüência complexa H (Z ) é dada por

1
h[n ] = ∫ H (Z ) z n −1 dz Transformada-Z Inversa
2π j C

A variável complexa Z é chamada de freqüência complexa dada por z = z ⋅ e jw , onde z é a


atenuação e w é a freqüência real. Dado que a região de convergência é definida em termos da
magnitude z , o formato da ROC é um anel. Note que Rx − pode ser igual a zero e/ou Rx + pode ser
inclusive ∞ . Se Rx + < Rx − , então a ROC é um espaço nulo e a transformada Z não existe. A função
z = 1 (z = e jw ) é um círculo de raio unitário no plano Z e é denominado círculo unitário. Se a ROC
contém o círculo unitário, a transformada z se reduz a transformada de Fourier em tempo discreto
(DTFT), X (e jw ) . A DTFT converge se a região de convergência da transformada Z incluir o círculo
de raio unitário,

( )
H (z ) z =e jw = H e jw .

Exercício – Calcule a transformada-Z da seqüência x[n] = a n ⋅ u[n] , 0 < a < ∞ .

Propriedades da Região de Convergência (ROC)

Processamento Digital de Sinais Prof. Marcelo E. Pellenz pg. 62


Processamento Digital de Sinais: Teoria e Aplicações Prof. Marcelo E. Pellenz

1 – A região de convergência é sempre limitada por um círculo pois a condição de convergência é


sobre o z .

2 – Para uma seqüência limitada a esquerda (zero para n < n0 ), a região de convergência é sempre a
parte externa de um círculo de raio Rx − . Para n0 ≥ 0 a seqüência é causal.
x[n] = a n ⋅ u[n]

3 – Para uma seqüência limitada a direita (zero para n > n0 ), a região de convergência é sempre a
parte interna do círculo de raio Rx + .

x[n] = −b n ⋅ u[− n − 1]

4 – Para uma seqüência não limitada a direita nem à esquerda, a região de convergência é um anel,
Rx − < z < Rx + .

5 – Seqüências que são zero para n < n1 e n > n2 são chamadas de seqüências com duração finita. A
região de convergência para tais seqüências é todo o plano Z. Se n1 < 0 , então z = ∞ não está na
região de convergência. Se n2 > 0 , então z = 0 não está na região de convergência

6 – A região de convergência não pode incluir nenhum pólo pois H (Z ) converge uniformemente
nesta região.

7 – Existe pelo menos um pólo no limite da região de convergência. A ROC é limitada por pólos.

Seqüência Discreta Transformada Z ROC


δ [n] 1 ∀z
1
u[n] z >1
1 − z −1
1
− u[− n − 1] z <1
1 − z −1
1
a n u[n] z >a
1 − a z −1
1
− b n u[− n − 1] z<b
1 − b z −1

[a ] [a ⋅ sen(w0 )]⋅ z −1
n
⋅ sen (w0 n ) ⋅ u[n] z >a
1 − [2 a cos(w0 )] z −1 + a 2 z −2
1 − [a ⋅ cos (w0 )]⋅ z −1
[a n
]
⋅ cos( w0 n ) ⋅ u[n]
1 − [2 a cos(w0 )] z −1 + a 2 z −2
z >a

a z −1
n a u[n]
n
z >a
(1 − a z )
−1 2

b z −1
− n b u[− n − 1]
n
z<b
(1 − b z )
−1 2

Processamento Digital de Sinais Prof. Marcelo E. Pellenz pg. 63


Processamento Digital de Sinais: Teoria e Aplicações Prof. Marcelo E. Pellenz

Região de Convergência (ROC)

B( z ) b0 + b1 z −1 + K + bM −1 z − ( M −1) + bM z − M
H (z ) = =
A( z ) a0 + a1 z −1 + K + a N −1 z −( N −1) + a N z − N

∏ (z − z )
M
b
H (z ) = 0 z ( N −M ) l =1 l

∏ (z − p )
N
a0 l
l =1

Zeros ⇒ z = zl ⇒ H (zl ) = 0
Pólos ⇒ z = pl ⇒ H ( pl ) = ∞

Se N > M teremos ( N − M ) zeros em z = 0


Se N < M teremos ( N − M ) pólos em z = 0

Transformada-Z Inversa usando Frações Parciais


A transformada-Z inversa pode ser obtida através da expansão em frações parciais:

N M −N
Rk
H (z ) = ∑ −1
+ ∑ C k ⋅ z −k
k =1 1 − pk z k =0
1 4243
M ≥N

~ ~ ~
b0 + b1 z −1 + L + bN −1 z −( N −1)
Rk = −1
1 + a1 z + L + a N −1 z − ( N −1)
+ aN z −N
(
⋅ 1 − pk z −1 )
z = pk

N  1  M −N
h[n ] = ∑ Rk ⋅ Ζ −1  −1 
+ ∑ C k ⋅ δ(n − k )
l =1 1 − p k z  1 k =0
442443
M ≥N

Teorema 1 - Um sistema LTI é estável se e somente se o círculo de raio unitário está dentro da
região de convergência (ROC) de H ( z )

Teorema 2 - Um sistema LTI causal é estável se e somente se a função de transferência H ( z )


possui todos os pólos dentro do círculo de raio unitário.

Processamento Digital de Sinais Prof. Marcelo E. Pellenz pg. 64


Processamento Digital de Sinais: Teoria e Aplicações Prof. Marcelo E. Pellenz

Relação da Função de Transferência com a Equação de Diferenças

N M

∑ d k ⋅ y[n − k ] = ∑ p k ⋅ x[n − k ]
k =0 k =0

Y (e )
∑p
jw k ⋅ e − jwk
H (e ) = jw
= k =0

X (e ) jw N

∑d k =0
k ⋅ e − jwk


Y ( z ) k =0 k
p ⋅ z −k
H (z ) = = N
X (z )

d ⋅ z −k
k =0
k

Exercício 1 – Determine a função de transferência de um sistema com a seguinte equação de


diferenças:

y[n ] = 2 ⋅ x[n ] + 2,6 ⋅ x[n − 1] + 0,78 ⋅ x[n − 2] + 0,054 ⋅ x[n − 3]


+ 1,5 ⋅ y[n − 1] − 0,47 ⋅ y[n − 2] − 0,063 ⋅ y[n − 3]

Exercício 2 – Determine a função de transferência do sistema com a seguinte equação de


diferenças:

y[n ] = 3 ⋅ x[n] + 1,2 ⋅ x[n − 1] − 5,22 ⋅ x[n − 2] − 1,548 ⋅ x[n − 3] + 0,359 ⋅ x[n − 4]
− 0,6 ⋅ y[n − 1] − 0,68 ⋅ y[n − 2] − 0,5 ⋅ y[n − 3] + 0,477 ⋅ y[n − 4]

Exercício 3 – Determine os primeiros 3 termos da resposta ao impulso, h[n] , do filtro IIR causal
com a seguinte função de transferência:

H (z ) =
(2 + 0,4 ⋅ z )(0,5 + 2 ⋅ z )
−1 −1

(1 − 2 ⋅ z + 2 ⋅ z )(1 − 0,5 ⋅ z )
−1 −2 −1

Processamento Digital de Sinais Prof. Marcelo E. Pellenz pg. 65


Processamento Digital de Sinais: Teoria e Aplicações Prof. Marcelo E. Pellenz

Projeto de Filtros Digitais FIR


(Finite Impulse Response)
Vantagens dos filtros FIR:
- A resposta em fase pode ser exatamente linear
- São fáceis de implementar porque não há problemas de estabilidade
- A DFT pode ser usada na implementação

Vantagens da resposta em fase linear:


- A implementação envolve apenas aritmética real e não complexa
- Não existe distorção de atraso e sim apenas um atraso fixo entre entrada/saída
- Para filtros de comprimento N (ordem N-1) o número de operações é da ordem de N/2

Metodologia de Projeto – Método das Janelas


A ênfase do método está em selecionar uma janela apropriada e um filtro ideal:

a) Selecionar um filtro ideal (não causal), que possui resposta ao impulso infinita
b) Truncar a resposta ao impulso (usando uma janela) para obter um filtro FIR causal
c) Deslocar o início do vetor de amostras, h[n], para iniciar em n=0
(equivale a associar uma fase linear)

OBSERVAÇÃO: A notação utilizada para o comprimento da janela é N, onde N=2M+1

Resposta ao Impulso dos Filtros Ideais


1 - Filtro Passa Baixa Ideal

 1, w ≤ wC
( )
H LP e jw =  Resposta em freqüência do filtro ideal
0, wc < w ≤ π

sen (wc n )
hLP [n] = −∞ ≤ n ≤ ∞ Resposta ao impulso do filtro ideal
π⋅ n

Truncando a resposta ao impulso entre − M ≤ n ≤ M obtemos uma seqüência finita não causal de
comprimento N=2M+1, que quando deslocada para a direita torna-se os coeficientes do filtro FIR
causal, com fase linear.

Resposta ao impulso do filtro projetado (real):

sen (wc (n − M ) )
hˆLP [n] = hLP [n] ⋅ w[n] = 0 ≤ n ≤ N −1
π ⋅ (n − M )
w[n] = janela simétrica em relação a M entre 0 ≤ n ≤ N − 1

Resposta em freqüência do filtro projetado:

Hˆ LP (e jw ) = {H LP (e jw ) ∗ W (e jw )}⋅ e − jMw (convolução)


Processamento Digital de Sinais Prof. Marcelo E. Pellenz pg. 66
Processamento Digital de Sinais: Teoria e Aplicações Prof. Marcelo E. Pellenz

2 - Filtro Passa Alta Ideal

 wc
 1− π , n = 0
hHP [n] =  Resposta ao impulso ideal
sen( wc ⋅ n)
− , n >0
 π⋅n

3 - Filtro Passa Faixa Ideal

sen( wc 2 ⋅ n) sen( wc1 ⋅ n)


hBP [n ] = − , n ≥0 Resposta ao impulso ideal
π⋅n π⋅n

4 - Filtro Rejeita Faixa Ideal

 ( w − wc1 )
 1 − c2 , n=0
hBS [n] =  π Resposta ao impulso ideal
sen( wc1 ⋅ n) sen( wc 2 ⋅ n)
 − , n >0
 π⋅n π⋅n

Estes métodos são para filtros com 2 níveis de amplitude. O método pode ser generalizado para
filtros FIR multiníveis (multibanda).

Tipos de Janelas Fixas


1 – Janela Retangular

  w⋅ N 
1, 0 ≤ n ≤ N − 1  sen  2   − jw N −1 N −1
w[n] = 
0, fora
( )
W e jw =     ⋅e 2
( )
− jw
= Wr w ⋅ e 2
  sen  w  
   
 2 
2 – Janela de Bartlett

 2n N −1
 , 0≤n≤
w[n] =  N −1 2
2n N −1
2 − , ≤ n ≤ N −1
 N −1 2

3 – Janela de Hanning

   2 π n 
0,5 ⋅ 1 − cos   , 0 ≤ n ≤ N −1
w[n] =    N-1 
 0, fora

4 – Janela de Hamming

  2πn
0,54 − 0,46 ⋅ cos , 0 ≤ n ≤ N − 1
w[n] =   N-1 
 0, fora

Processamento Digital de Sinais Prof. Marcelo E. Pellenz pg. 67


Processamento Digital de Sinais: Teoria e Aplicações Prof. Marcelo E. Pellenz

5 – Janela de Blackman

 2πn 4πn
0,42 − 0,5 ⋅ cos   + 0,08 ⋅ cos , 0 ≤ n ≤ N − 1
w[n] =   N-1   N-1 
 0, fora

Os parâmetros das janelas que definem o desempenho do filtro FIR são interpretados analisando-se
o espectro da janela.

Considere os seguintes parâmetros do espectro da janela:

∆ ML = largura do lóbulo principal do espectro da janela

ASL = diferença em dB entre as amplitudes do lóbulo lateral mais largo e o lóbulo principal
(nível relativo dos lóbulos laterais)

- Para larguras pequenas do lóbulo principal temos transições mais rápidas na resposta do filtro.

- Para reduzirmos o ripple (oscilação) na banda passante e na banda de corte, a área sob os lóbulos
laterais deve ser pequena.

- Para as janelas fixas (retangular/hanning/hamming/blackman/bartlett) o valor do ripple não


depende do comprimento da janela.

- A freqüência de corte, wc , é essencialmente constante

- A largura da faixa (banda) de transição do filtro é dada por

c
∆w ≈ c = constante
M

A tabela abaixo ilustra o desempenho entre as janelas fixas para wc = 0,4π e M = 128 :

Largura do Nível Relativo do Atenuação


Lóbulo Lateral c
Tipo da Janela Lóbulo Principal Mínima Fora da ∆w = w p − ws ≈
∆ ML ASL Faixa M
Retangular 4π (2M + 1) 13,3 dB 20,9 dB 0,92π M
Hanning 8π (2M + 1) 31,5 dB 43,9 dB 3,11π M
Hamming 8π (2M + 1) 42,7 dB 54,5 dB 3,32π M
Blackman 12π (2M + 1) 58,1 dB 75,3 dB 5,56π M

Método de Projeto do Filtro FIR


w p + ws
1) Determinar a freqüência de corte wc =
2
c
2) Estimar o valor de M usando a relação ∆w ≈
M

Processamento Digital de Sinais Prof. Marcelo E. Pellenz pg. 68


Processamento Digital de Sinais: Teoria e Aplicações Prof. Marcelo E. Pellenz

Janelas Ajustáveis
Nas janelas fixas o ripple é fixo, mas com as janelas ajustáveis é possível controlar o ripple.

1 – Janela de Dolph-Chebyshev

1 1 M
  kπ    2πkn 
w[n] =  + 2 ⋅ ∑ Tk  β ⋅ cos   ⋅ cos 
2M + 1  γ k =1   2M + 1    2 M + 1 
Amplitude do lóbulo lateral  1  1 
γ= β = cosh ⋅ cosh −1   
Amplitude do lóbulo principal  2M  γ 
( )
 cos l ⋅ cos −1 x , x ≤ 1
Tl ( x ) = 
( −1
)
cosh l ⋅ cosh x , x > 1

2 – Janela de Kaiser

w[n] = 0
{
I β 1 − (n / M )
2
} −M ≤n≤ M
I 0 (β )

I 0 (u ) = função de Bessel modificada de ordem zero


2
∞  (u / 2)r 
I 0 (u ) = 1 + ∑  
r =1  r! 

β = parâmetro ajustável
 0,1102 (α s − 8,7 ) α s > 50

β = 0,5842 (α s − 21) + 0,07886 (α s − 21) 21 ≤ α s ≤ 50
0,4

 0 α s < 21

 α s − 7,95
 14,36 ∆f α s > 21
N ≈
0,9222
 α s ≤ 21
 ∆f
(w p + ws ) (ws − w p )
wc = ∆f =
2 2π
α p = −20 ⋅ log10 (1 - δ p ) dB α s = −20 ⋅ log10 (δ s ) dB

α s = atenuação mínima na banda de corte (dB)


δ s = ripple na banda de corte
α p = ripple na banda passante (dB)
1 - δ p = ripple na banda passante

Exercício - Projete um filtro digital FIR passa baixa, usando a janela de Kaiser. As
especificações do filtro são w p = 0.3 π , ws = 0.4 π e α s = 50 dB .

Processamento Digital de Sinais Prof. Marcelo E. Pellenz pg. 69


Processamento Digital de Sinais: Teoria e Aplicações Prof. Marcelo E. Pellenz

EXEMPLOS DE APLICAÇÕES
Filtro de Eco: Um filtro de eco possui uma equação de diferenças no formato:

y[n] = x[n] + a ⋅ x[n − D]

A função de transferência e a resposta ao impulso do filtro são:

H (z ) = 1 + a ⋅ z − D

h[n] = δ [n] + a ⋅ δ [n − D ]

Escolha o número de amostras, D, que o sinal deve ser atrasado, de tal forma que o sinal seja
atrasado de 0,125s a especifique a=0,5.
Trace a resposta em freqüência do filtro usando o comando freqz do Matlab.

Execute o experimento com valores de D cada vez menores e escute o sinal com eco ate que não
seja mais perceptível distinguir do sinal original. Calcule a quantos milisegundos de atraso este
valor corresponde.

Filtro Pente (Comb Filter):

Implemente um filtro que adicione 3 ecos sucessivos, que possui a equação de diferenças no
formato:
y[n] = x[n] + a ⋅ x[n − D ] + a 2 ⋅ x[n − 2 D ] + a 3 ⋅ x[n − 3D ]

A função de transferência e a resposta ao impulso do filtro são:

H ( z ) = 1 + a ⋅ z − D + a 2 ⋅ z −2 D + a 3 ⋅ z −3 D

Implemente a forma não recursiva deste filtro escolhendo D tal que o atraso seja 0,2s. Utilize a=0,5
and trace a resposta em freqüência deste filtro. Mantendo o mesmo atraso, D, escolha a=0,2 e rode
o programa novamente. Que efeito você escuta ? Repita para a=0,1.

Filtro de Reverberação:

Se uma quantidade infinita de ecos for adicionada ao sinal, o efeito imita a reverberação natural de
uma sala e fornece o filtro pente (comb filter) IIR ou reverberador. A equação de diferenças e a
função de transferências são:

y[n] = x[n] + a ⋅ y[n − D ]

1
H (z ) =
1 − a ⋅ z −D

Novamente, escolha D tal que o atraso seja 0,125s, especifique a=0,5 e trace o gráfico da resposta
em freqüência do filtro reverberador. Execute o programa com o novo coeficiente a=0,9. Trace a
resposta ao impulso. Repita para a=0,25. Discuta o efeito de aumentar ou diminuir a.

Processamento Digital de Sinais Prof. Marcelo E. Pellenz pg. 70


Processamento Digital de Sinais: Teoria e Aplicações Prof. Marcelo E. Pellenz

PROCESSAMENTO DIGITAL DE SINAIS (PDS)


LABORATÓRIO 4 – APLICAÇÕES DO PROCESSAMENTO DIGITAL DE SINAIS
SÍNTESE E DETEÇÃO DTMF
PROF. MARCELO PELLENZ

(DTMF) DUAL-TONE MULTIFREQUENCY


N=205 FT = 8 kHz
Tom de Valor inteiro Erro
Valor
frequência de k mais absoluto
exato de k
(Hz) próximo em k
697 17,861 18 0,139
770 19,731 20 0,269
852 21,833 22 0,167
941 24,113 24 0,113
1209 30,981 31 0,019
1336 34,235 34 0,235
1477 37,848 38 0,152
1633 41,846 42 0,154

N=201 FT = 8 kHz
Segunda Valor inteiro Erro
Valor
harmônica de k mais absoluto
exato de k
(Hz) próximo em k
1394 35,024 35 0,024
1540 38,692 39 0,308
1704 42,813 43 0,187
1882 47,285 47 0,285
2418 60,752 61 0,248
2672 67,134 67 0,134
2954 74,219 74 0,219
3266 82,058 82 0,058

697 Hz 1 2 3 A

770 Hz 4 5 6 B

852 Hz 7 8 9 C

941 Hz * 0 # D

1209 Hz 1336 Hz 1477 Hz 1633 Hz

Processamento Digital de Sinais Prof. Marcelo E. Pellenz pg. 71


Processamento Digital de Sinais: Teoria e Aplicações Prof. Marcelo E. Pellenz

Fórmulas do cálculo da DFT de N pontos:

( )
X e jw ⇒ DTFT
( )
X [k ] = X e jw
wk =
2π k k = 0, 1, K , N − 1
N
N −1
 j2π
X [k ] = ∑ x[n]⋅ W
n =0
kn
N k = 0, 1, K , N − 1 W N = exp −
 N 

1 – No sistema DTMF são utilizadas duas freqüências distintas para representar cada dígito. O
programa a seguir calcula a DFT de cada freqüência. Podemos observar que existe um
espalhamento da energia em torno da freqüência central (leakage).

k FS
fk = , k = 0, 1, K , N − 1
N
% Amostras selecionadas da DFT para
% cada um dos tons de sinais DTMF
clear; clc;
close all;
fs=8000;
n=0:204;
f=[697 770 852 941 1209 1336 1447 1633];
escala=[[10 25];[10 25];[15 30];[15 30];[25 40];[25 40];[35 50];[35 50]];
for i=1:8
figure(i);
x=sin(2*pi*f(i)*n*(1/fs));
X=fft(x);
stem(n,abs(X));
label=num2str(f(i));
title(strcat(label,' Hz'));
ylabel('|X[k]|');
xlabel('n')
axis([escala(i,1) escala(i,2) 0 110]);
end

2 – O programa a seguir sintetiza, analiza e decodificada os tons de freqüência de discagem. Os


tons transmitidos são enviados para o conversor D/A e podem ser ouvidos através da placa de
som.

% Funcao para calcular 1 amostra da DFT


% XF=gfft(x,N,k)
% x = sequencia de entrada de comprimento <= N
% N = comprimento da DFT
% k = numero da amostra
% XF = amostra desejada da DFT

function XF=gfft(x,N,k)
if length(x)<N
xe=[x zeros(1,N-length(x))];
else
xe=x;
end

x1=[xe 0];
d1=2*cos(2*pi*k/N); W=exp(-i*2*pi*k/N);
y=filter(1,[1 -d1 1],x1);
XF=y(N+1)-W*y(N);

Processamento Digital de Sinais Prof. Marcelo E. Pellenz pg. 72


Processamento Digital de Sinais: Teoria e Aplicações Prof. Marcelo E. Pellenz

% DUAL-TONE MULTIFREQUENCY TONE DETECTION

clear; clc;

fs=8000;
n=0:204;
n1=0:319;
loop=0;

while loop==0,

d=input('Digite Numero:');
symbol=abs(d);

if symbol==1
f1=697; f2=1209;
end
if symbol==2
f1=697; f2=1336;
end
if symbol==3
f1=697; f2=1477;
end
if symbol==4
f1=770; f2=1209;
end
if symbol==5
f1=770; f2=1336;
end
if symbol==6
f1=770; f2=1477;
end
if symbol==7
f1=852; f2=1209;
end
if symbol==8
f1=852; f2=1336;
end
if symbol==9
f1=852; f2=1477;
end
if symbol==0
f1=941; f2=1336;
end

y=sin(2*pi*f1*n1*(1/fs))+sin(2*pi*f2*n1*(1/fs));
sound(y,fs);

x=sin(2*pi*f1*n*(1/fs))+sin(2*pi*f2*n*(1/fs));

k=[18 20 22 24 31 34 38 42];

for m=1:8;
Fx(m)=gfft(x,205,k(m));
val=abs(Fx);
end
stem(k,val); grid;
limit=8100;

if val(1)*val(5)>limit
disp('Tecla Apertada = 1');
end

Processamento Digital de Sinais Prof. Marcelo E. Pellenz pg. 73


Processamento Digital de Sinais: Teoria e Aplicações Prof. Marcelo E. Pellenz

if val(1)*val(6)>limit
disp('Tecla Apertada = 2');
end

if val(1)*val(7)>limit
disp('Tecla Apertada = 3');
end

if val(2)*val(5)>limit
disp('Tecla Apertada = 4');
end

if val(2)*val(6)>limit
disp('Tecla Apertada = 5');
end

if val(2)*val(7)>limit
disp('Tecla Apertada = 6');
end

if val(3)*val(5)>limit
disp('Tecla Apertada = 7');
end

if val(3)*val(6)>limit
disp('Tecla Apertada = 8');
end

if val(3)*val(7)>limit
disp('Tecla Apertada = 9');
end

if val(4)*val(6)>limit
disp('Tecla Apertada = 0');
end

end

3 – No programa a seguir analisamos o efeito do comprimento da DFT na análise espectral. O sinal


analisado no domínio da freqüência é

x[n] = 0,5 sen(2 π f 1 n) + sen(2 π f 2 n), 0 ≤ n ≤ N −1


f 1 = 0,22 f 2 = 0,34
Calcule a DFT do sinal de comprimento N=16. Utilize os seguintes comprimentos para a DFT:
22. R=16 R=32 R=64 R=128
clear; clc;
close all;
N=input('Comprimento do Sinal: ');
R=input('Comprimento da DFT: ');
f1=0.22; f2=0.34;
n=0:N-1;
x=0.5*sin(2*pi*f1*n)+sin(2*pi*f2*n);
X=fft(x,R);
figure(1);
k=0:R-1;
stem(k,abs(X)); grid;
title(['N = ', num2str(N),' R = ',num2str(R)]);
xlabel('k'); ylabel('|X[k]|');

Processamento Digital de Sinais Prof. Marcelo E. Pellenz pg. 74


Processamento Digital de Sinais: Teoria e Aplicações Prof. Marcelo E. Pellenz

PROCESSAMENTO DIGITAL DE SINAIS (PDS)


LABORATÓRIO 5 – TRANSFORMADA-Z
PROF. MARCELO PELLENZ

A Transformada de Fourier em Tempo Discreto (DTFT) de um sistema linear invariante no


tempo, com resposta ao impulso h[n] , é denominada de resposta em freqüência do sistema, H e jw . ( )
Contudo, existem duas restrições para a abordagem da DTFT. A primeira é que para muitos sinais
úteis na prática como u[n] e n ⋅ u[n] a DTFT não existe. A segunda é que a resposta transitória de
um sistema devido a condições iniciais ou alterações da entrada não podem ser calculadas usando a
abordagem da DTFT. Portanto utilizamos uma extensão da DTFT denominada de transformada Z:


H (Z ) = ∑ h[n]⋅ z
n = −∞
−n
Transformada-Z

1
h[n ] = ∫ H (Z ) z n −1 dz Transformada-Z Inversa
2π j C

A transformada z pode ser escrita como uma função racional em z −1 , ou seja, como uma razão de
polinômios em z −1 :

B( z ) b0 + b1 z −1 + L + bM −1 z − ( M −1) + bM z − M
H (z ) = = R h − < z < Rh +
A( z ) a0 + a1 z −1 + L + a N −1 z − ( N −1) + a N z − N

~ ~ ~
b0 + b1 z −1 + L + bN −1 z − ( N −1) M −N
H (z ) = −1 − ( N −1) −N
+ ∑ C k ⋅ z −k
1 + a1 z + L + a N −1 z + aN z k =0
1 4243
M ≥N

A transformada-z inversa pode ser obtida através da expansão em frações parciais:

N M −N
Rk
H (z ) = ∑ −1
+ ∑ C k ⋅ z −k
k =1 1 − pk z k =0
1 4243
M ≥N

~ ~ ~
b0 + b1 z −1 + L + bN −1 z − ( N −1)
Rk = −1 − ( N −1) −N
⋅ 1 − p k z −1 ( )
1 + a1 z + L + a N −1 z + aN z z = pk

N  1  M −N
h[n ] = ∑ Rk ⋅ Ζ −1  −1 
+ ∑ C k ⋅ δ(n − k )
l =1 1 − p k z  1 k =0
442443
M ≥N

Teorema 1: Um sistema LTI é estável se e somente se o círculo de raio unitário está dentro da
região de convergência (ROC) de H ( z )

Teorema 2: Um sistema LTI causal é estável se e somente se a função de transferência H ( z )


possui todos os pólos dentro do círculo de raio unitário.

Processamento Digital de Sinais Prof. Marcelo E. Pellenz pg. 75


Processamento Digital de Sinais: Teoria e Aplicações Prof. Marcelo E. Pellenz

Relação entre a função de transferência e a equação de diferenças:

Y (Z ) = H (Z ) ⋅ X (Z )

N M
y[n ] + ∑ a k ⋅ y[n − k ] = ∑ bl ⋅ x[n − l ] Equação de Diferenças
k =1 l =1

Y (z )
∑b l z −l
B(z )
H (z ) = = l =0
= Função de Transferência
X (z ) N
A( z )
1 + ∑ ak z −k

k =0

 b 
b0 z − M  z M + L + M 
∏ (z − z )
N −1
 b0 
H (z ) = H ( z ) = b0 z (N −M ) l =1 l

z −N
(z + L + aN
N
) ∏ (z − p )
N
k =1 k

Exercício 1 – Determine a expansão em frações parciais da transformada-z, para a seguinte


seqüência:
z
H (z ) = 2
3z − 4 z +1
Utilize a função residuez do Matlab.

Exercício 2 – Dado um sistema LTI causal com a seguinte função de transferência:

z +1
H (z ) = 2
z − 0,9 z + 0,81
Determine:

a) Expressão da resposta em freqüência


b) Expressão da equação de diferenças
c) Escreva H ( z ) na forma fatorada utilizando expansão em frações parciais (residuez)
d) Determine os zeros e pólos (roots)
e) Faça o diagrama de pólos e zeros (zplane)

Exercício 3 – Um sistema LTI causal é descrito pela seguinte equação de diferenças:

y[n] = 0,81 ⋅ y[n − 2] + x[n] − x[n − 2]

Determine:
a) Expressão da função de transferência, H ( z )
b) Traçar o gráfico da resposta em freqüência, H (e jw ) (módulo/fase) (freqz)
c) Escreva H ( z ) na forma fatorada utilizando expansão em frações parciais (residuez)
d) Traçar o diagrama de pólos e zeros (zplane)

Processamento Digital de Sinais Prof. Marcelo E. Pellenz pg. 76


Processamento Digital de Sinais: Teoria e Aplicações Prof. Marcelo E. Pellenz

Exercício 4 – Expresse a seguinte transformada-z na forma fatorada (produto de seções de segunda


ordem), trace o diagrama de pólos e zeros e determine as regiões de convergência.

2 z 4 + 16 z 3 + 44 z 2 + 56 z + 32
H (z ) =
3 z 4 + 3 z 3 − 15 z 2 + 18 z − 12

Função do Matlab: tf2sos

 b01 b11 b21 a 01 a11 a 21 


b a 22 
b12 b22 a02 a12 L
b0 k + b1k z −1 + b2 k z −2
sos =  02 H (z ) = ∏
 M M M M M M  k =1 a 0 k + a1k z
−1
+ a 2k z −2
 
b0 L b1L b2 L a0 L a1L a2L 

Exercício 5 – Determine a forma racional da transformada-z a partir da localização de seus zeros e


pólos.

- Os zeros são: z 1 = 0.21 , z 2 = 3.14 , z 3 = −0.3 + j 0.5 e z 4 = −0.3 − j 0.5 .


- Os pólos são: p1 = −0.45 , p 2 = 0.67 , p 3 = 0.81 + j 0.72 e p 4 = 0.81 − j 0.72
- O ganho constante é k = 2.2

Função do Matlab: zp2tf

Processamento Digital de Sinais Prof. Marcelo E. Pellenz pg. 77


Processamento Digital de Sinais: Teoria e Aplicações Prof. Marcelo E. Pellenz

PROJETO DE FILTROS FIR


TIPOS DE FASE LINEAR PARA FILTROS FIR

Fase Linear ⇒ Resposta ao impulso simétrica

TIPO 1 – SIMÉTRICO - COMPRIMENTO ÍMPAR

h[n] = h[N − n] , 0 ≤ n ≤ N

N
H(z) = ∑ h[n] z − n ⇒ Função de Transferência
n =0

Exemplo com N=8

H ( z ) = h[0] + h[1]z −1 + h[2]z −2 + h[3]z −3 + h[4]z −4 + h[5]z −5 + h[6]z −6 + h[7]z −7 + h[8]z −8

h[0] = h[8]
h[1] = h[7] 
 SIMETRIA
h[2] = h[6]
h[3] = h[5]

{ ( ) ( ) ( ) (
H ( z ) = z −4 h[0] z 4 + z −4 + h[1] z 3 + z −3 + h[2] z 2 + z −2 + h[3] z + z −1 + h[4] ) }
( )
H e jw = e − j 4 w ⋅ {2 h[0]cos(4w) + 2h[1] cos(3w) + 2h[2] cos(2 w) + 2h[3] cos(w) + h[4]}

τ (w ) = 4

Nw
N 2 
He ( )= e
jw
−j
2
∑ a[n] cos (wn )
 n =0 

N  N  N
a[0] = h   a[n] = 2 h  − n  , 1 ≤ n ≤
2 2  2

Processamento Digital de Sinais Prof. Marcelo E. Pellenz pg. 78


Processamento Digital de Sinais: Teoria e Aplicações Prof. Marcelo E. Pellenz

TIPO 2 – SIMÉTRICO - COMPRIMENTO PAR

Exemplo para N=7

( ) ( ) ( )
H ( z ) = h[0] 1 + z −7 + h[1] z −1 + z −6 + h[2] z −2 + z −5 + h[3] z −3 + z −4 ( )
{ ( ) ( ) ( ) (
H ( z ) = z −7 2 h[0] z 7 2 + z −7 2 + h[1] z 5 2 + z −5 2 + h[2] z 3 2 + z −3 2 + h[3] z 1 2 + z −1 2 )}
7w
  7w   5w   3w   w 
( )
H e jw = e
−j
2
2 h[0]cos  + 2 h[1]cos  + 2 h[2]cos  + 2 h[3]cos 
  2   2   2   2 

7
τ(w) =
2

(N +1 )/ 2   1  
( )
H e jw = e − jNw/ 2  ∑ b[n] cos  w  n −  
2  
 n =1  

 N +1  N +1
b[n] = 2 h  − n 1≤ n ≤
 2  2

Processamento Digital de Sinais Prof. Marcelo E. Pellenz pg. 79


Processamento Digital de Sinais: Teoria e Aplicações Prof. Marcelo E. Pellenz

TIPO 3 – ANTISIMÉTRICO – COMPRIMENTO ÍMPAR

Características:

- Atraso de grupo constante

- Resposta em fase quase linear

h[n] = − h[N − n] 0≤n≤ N

Exemplo para N=8

H ( z ) = z −4 {h[0] (z 4 − z −4 ) + h[1] (z 3 − z −3 ) + h[2] (z 2 − z −2 ) + h[3] (z 1 − z −1 )

h[N 2] = 0
π
( )
H e jw = e − j 4 w e
j
2
{2h[0] sen 4w + 2h[1] sen 3w + 2h[2] sen 2w + 2h[3] sen w}
τ(w) = 4

 N/ 2 
( )
H e jw = e − jNw/ 2 ⋅ e jππ2 ⋅ ∑ c[n] ⋅ sen (wn )
 n=1 

N  N
c[n] = 2 h  − n  , 1 ≤ n ≤
2  2

Processamento Digital de Sinais Prof. Marcelo E. Pellenz pg. 80


Processamento Digital de Sinais: Teoria e Aplicações Prof. Marcelo E. Pellenz

TIPO 4 – ANTISIMÉTRICO – COMPRIMENTO PAR

Exemplo para N=7


−7
 72 −7
  52 −5
  32 −3
  12 −1

H ( z ) = z h[0]  z − z  + h[1]  z − z  + h[2]  z − z  + h[3]  z − z 2 
2 2 2 2

        

7w π
  7w   5w   3w   w 
( )
H e jw = e
−j
2
e
j
2
2h[0]sen   + 2h[1]sen   + 2h[2]sen   + 2h[3]sen  
  2   2   2   2 

7
τ (w ) =
2

π
Nw
( N +1) / 2  1 
( )
H e jw = e
−j
2
e
j
2
 ∑ d [n] sen w (n − ) 
2 
 n =1 

 N +1  N +1
d [ n] = 2 ⋅ h  − n 1≤ n ≤
 2  2

π
Nw
~
He( )= e
jw
−j
2
⋅ e jβ ⋅ H ( w) β = 0 ou
2
~
H (w) = Resposta em Amplitude

Processamento Digital de Sinais Prof. Marcelo E. Pellenz pg. 81


Processamento Digital de Sinais: Teoria e Aplicações Prof. Marcelo E. Pellenz

LAB. DSP 1 – Introdução ao Kit TMS320C5416


Documentação para o Laboratório

Nos experimentos de laboratório utilizaremos o TMS320C5416 DSP STARTER KIT da Texas Instruments
(TI).

As cópias eletrônicas destes documentos são encontradas abaixo.

NÃO IMPRIMA estes documentos, apenas utilize na forma eletrônica. Para maiores informações sobre a
família de
processadores TMS320C54xx, consulte o site da TI. (www.ti.com)
Documentação Técnica
TMS320C5416 Digital Signal Processor Data Sheet (C:\ti\docs\hlp\C5416DSK.HLP)
TMS320C54x DSP Functional Overview (SPRU307A)
TMS320C54x Code Composer Studio Tutorial (SPRU327C)
TMS320C54x Code Composer Studio User's Guide (SPRU328B)
TMS320C54x Assembly Language Tools User's Guide (SPRU102E)
TMS320C54x Evaluation Module Technical Reference (SPRU135)
TMS320C54x Optimizing C/C++ Compiler (SPRU103f)
TMS320C54x DSP Ref. Set Vol. 2: Mnemonic Instruction Set (SPRU172C)

Atividades de Laboratório

Atividade 1 - Abrir o arquivo de help c:\ti2\docs\hlp\c5416dsk.hlp


Ler a descrição geral do kit TMS320C5416 e executar os exemplos do tutorial
que utilizam o DSP/BIOS (Real-Time Multitasking Kernel):

a) O exemplo do LED reside no diretório c:\ti2\examples\dsk5416\bsl\led


Faça uma cópia de todo o diretório para o diretório de trabalho c:\ti2\myprojects
a partir do qual você deve trabalhar.

b) O exemplo de geração de TOM reside no diretório c:\ti2\examples\dsk5416\bsl\tone


Faça uma cópia de todo o diretório para o diretório de trabalho c:\ti2\myprojects
a partir do qual você deve trabalhar.

b.1) Identificar a freqüência de amostragem utilizada pelo A/D - D/A


b.2) Calcular a freqüência normalizada "w=2*pi*f"
b.3) Calcular o período do sinal em tempo discreto em número de amostras
b.4) Calcular o número de amostras por período do sinal analógico
b.5) Identifique no Codec API Summary quais as freqüências de amostragem
padrões que podem ser utilizadas

Vá para o item Software Overview --> BSL API Summary --> Codec API

Este tópico é importante para os trabalhos futuros de laboratório para entender como utilizar a
API
para escrever programas com I/O de streams de áudio para aplicações do DSP.

Atividade 2 - Ler os capítulos 2, 3, 4 e 6 do help do CCS DSK: Code Composer Studio Overview.
Capítulo 2 - Developing a Simple Program
Capítulo 3 - Developing a DSP/BIOS Program
Capítulo 4 - Testing Algorithms and Data from a file
Capítulo 6 - Analyzing Real-Time Behavior

Processamento Digital de Sinais Prof. Marcelo E. Pellenz pg. 82


Processamento Digital de Sinais: Teoria e Aplicações Prof. Marcelo E. Pellenz

PROCESSAMENTO DIGITAL DE SINAIS (PDS)


LABORATÓRIO 6 – PROJETO DE FILTROS DIGITAIS FIR
PROF. MARCELO PELLENZ

Vantagens dos filtros FIR:


- A resposta em fase pode ser exatamente linear
- São fáceis de implementar porque não há problemas de estabilidade
- A DFT pode ser usada na implementação

Vantagens da resposta em fase linear:


- A implementação envolve apenas aritmética real e não complexa
- Não existe distorção de atraso e sim apenas um atraso fixo entre entrada/saída
- Para filtros de comprimento N (ordem N-1) o número de operações é da ordem de N/2

Metodologia de Projeto – Método das Janelas


A ênfase do método está em selecionar uma janela apropriada e um filtro ideal:

a) Selecionar um filtro ideal (não causal), que possui resposta ao impulso infinita
b) Truncar a resposta ao impulso (usando uma janela) para obter um filtro FIR causal
c) Deslocar o início do vetor de amostras, h[n] , para iniciar em n=0
(equivale a associar uma fase linear)

OBSERVAÇÃO: A notação utilizada para o comprimento da janela é N, onde N=2M+1

Resposta ao Impulso dos Filtros Ideais


1 - Filtro Passa Baixa Ideal

 1, w ≤ wC
( )
H LP e jw =  Resposta em freqüência do filtro ideal
0, wc < w ≤ π

sen (wc n )
hLP [n] = −∞ ≤ n ≤ ∞ Resposta ao impulso ideal
π⋅ n

Truncando a resposta ao impulso entre − M ≤ n ≤ M obtemos uma seqüência finita não


causal de comprimento N=2M+1, que quando deslocada para a direita torna-se os coeficientes
do filtro FIR causal, com fase linear.

Resposta ao impulso do filtro projetado (real)

sen (wc (n − M ) )
hˆLP [n] = hLP [n] ⋅ w[n] = 0 ≤ n ≤ N −1
π ⋅ (n − M )
w[n] = janela simétrica em relação a M entre 0 ≤ n ≤ N − 1

Processamento Digital de Sinais Prof. Marcelo E. Pellenz pg. 83


Processamento Digital de Sinais: Teoria e Aplicações Prof. Marcelo E. Pellenz

Resposta em freqüência do filtro projetado

( ) { ( ) ( )}
Hˆ LP e jw = H LP e jw ∗ W e jw ⋅ e − jMw

2 - Filtro Passa Alta Ideal


 wc
 1− π , n = 0
hHP [n] =  Resposta ao impulso ideal
sen( wc ⋅ n)
− , n >0
 π⋅n

3 - Filtro Passa Faixa Ideal


sen( wc 2 ⋅ n) sen( wc1 ⋅ n)
hBP [n ] = − , n ≥0 Resposta ao impulso ideal
π⋅n π⋅n

4 - Filtro Rejeita Faixa Ideal


 ( w − wc1 )
 1 − c2 , n=0
hBS [n] =  π Resposta ao impulso ideal
sen( wc1 ⋅ n) sen( wc 2 ⋅ n)
 − , n >0
 π⋅n π⋅n

Estes métodos são para filtros com 2 níveis de amplitude. O método pode ser generalizado
para filtros FIR multiníveis.

Tipos de Janelas Fixas


1 – Janela Retangular
1, 0 ≤ n ≤ N − 1
w[n] = 
 0, fora

2 – Janela de Bartlett
 2n N −1
 , 0≤n≤
w[n] =  N −1 2
2n N −1
2 − , ≤ n ≤ N −1
 N −1 2

3 – Janela de Hanning
   2 π n 
0,5 1 − cos  , 0 ≤ n ≤ N − 1
w[n] =    N-1 
 0, fora

4 – Janela de Hamming
  2πn
0,54 − 0,46 ⋅ cos , 0 ≤ n ≤ N − 1
w[n] =   N-1 
 0, fora

Processamento Digital de Sinais Prof. Marcelo E. Pellenz pg. 84


Processamento Digital de Sinais: Teoria e Aplicações Prof. Marcelo E. Pellenz

5 – Janela de Blackman
  2πn  4πn
0,42 − 0,5 ⋅ cos  + 0,08 ⋅ cos , 0 ≤ n ≤ N − 1
w[n] =   N-1   N-1 
 0, fora

Os parâmetros das janelas que definem o desempenho do filtro FIR são interpretados
analisando-se o espectro da janela.

Considere os seguintes parâmetros do espectro da janela:

∆ ML = largura do lóbulo principal do espectro da janela

ASL = diferença em dB entre as amplitudes do lóbulo lateral mais largo e o lóbulo principal
(nível relativo dos lóbulos laterais)

Para larguras pequenas do lóbulo principal temos transições mais rápidas na resposta do
filtro.
Para reduzirmos o ripple na banda passante e na banda de corte, a área sob os lóbulos
laterais deve ser pequena.
Para as janelas fixas (retangular/hanning/hamming/blackman/Bartlett) o valor do ripple não
depende do comprimento da janela.

A freqüência de corte, wc , é essencialmente constante

A largura de faixa de transição é dada por

c
∆w ≈ c = constante
M

Comandos do MATLAB para o projeto das janelas:

w=blackman(N) w=hamming(N)
w=hanning(N) w=chebwin(N,R)
w=kaiser(N,BETA)

N=comprimento da janela

L = N-1 = ordem do filtro

b=fir1(L,Wn)
b=fir1(L,Wn,’filtertype’)
b=fir1(L,Wn,window)
b=fir1(L,Wn,’filtretype’,window)

Wn = Freqüência de Corte Normalizada (0 <=Wn <=1)

Processamento Digital de Sinais Prof. Marcelo E. Pellenz pg. 85


Processamento Digital de Sinais: Teoria e Aplicações Prof. Marcelo E. Pellenz

1 – Neste exemplo você irá projetar apenas a janela (tipo blackman), w[n], e visualizar o seu
espectro:

clear; clc;
N=input('Comprimento da Janela:');
w=blackman(N)
disp(w)
[h,omega]=freqz(w,1,256);
mag=20*log10(abs(h));
figure(1);
plot(omega/pi,mag); grid;
ylabel('Frequencia Normalizada');
xlabel('Ganho (dB)'); title('Janela');

Analise todos os tipos de janelas fixas e anote os seguintes parâmetros:

∆ ML = largura do lóbulo principal do espectro da janela


ASL = diferença em dB entre a amplitude do lóbulo lateral e o lóbulo principal

TAREFAS

a) Analisar o espectro das janelas e anotar numa tabela os valores da largura do lóbulo principal,
∆ ML e a atenuação relativa do lóbulo lateral, ASL .

b) Projetar os seguintes filtros digitais FIR, considerando Fs=8kHz:

- Filtro passa baixa Fc=2kHz N=17


- Filtro passa alta Fc=2kHz N=17
- Filtro passa faixa Fc1=2kHz Fc2=3kHz N=17
- Filtro rejeita faixa Fc1=2kHz Fc2=3kHz N=17

Traçar o gráfico da resposta em freqüência de cada filtro (módulo/fase)

Entregar no final da aula para cada filtro projetado, h[n] , H ( z ) e a equação de


diferenças.

Processamento Digital de Sinais Prof. Marcelo E. Pellenz pg. 86


Processamento Digital de Sinais: Teoria e Aplicações Prof. Marcelo E. Pellenz

PROCESSAMENTO DIGITAL DE SINAIS (PDS)


LABORATÓRIO 7 – PROJETO DE FILTROS DIGITAIS FIR
PROF. MARCELO PELLENZ

Projetar os seguintes filtros digitais e converter os coeficientes para a notação de 16 bits (Q15)
utilizada pelo DSP. Os coeficientes devem estar no formato final hexadecimal. Os números
negativos devem ser representados utilizando a notação complemento de 2.

Tipo de Tipo de Ordem do Freqüência de


Aluno Freqüência de Corte
Filtro Janela Filtro Amostragem

n h[n] h[n]*32767 Formato Binário Formato Hexadecimal


0
1
:
N-1

Ao final da aula devem ser entregues as tabelas com os coeficientes projetados no formato final
para implementação no kit DSP TMS320C5416.

Processamento Digital de Sinais Prof. Marcelo E. Pellenz pg. 87


Processamento Digital de Sinais: Teoria e Aplicações Prof. Marcelo E. Pellenz

PROJETO DE FILTROS DIGITAIS FIR


TÉCNICA DA AMOSTRAGEM EM FREQÜÊNCIA

A função de transferência é obtida das amostras H [k ] da resposta em freqüência H e jw . ( )


Considere a resposta ao impulso, h[n] , de um filtro FIR com M amostras. A sua DFT, H [k ]
também terá M pontos.

M −1
1 − z − M M −1 H [k ]
H (z ) = ∑ h[n] z −n =
n =0 M
⋅∑
k =0 1 − z
−1
⋅ e j 2πk M

M −1 2 πkn M −1 2 πkn
−j 1
H [k ] = ∑ h[n ] e h[n] = ∑ H [k ] e
j
M M

n=0 M k =0

1 − e − jwM M −1 H [k ]
H (e jw ) = ⋅∑ − jw
M K =0 1 − e ⋅ e j 2πk M

 j 2Mπk   H [0], k =0
H  e  = H [k ] = 

 H [M-k ],

  k = 1,...,M − 1

Para filtros FIR com fase linear,

h[n] = ± h[M − 1 − n], n = 0,1,...,M − 1

H [k ] = H r [k ] ⋅ e j∠H [k ]

 H [0], k =0
H r [k ] =  r
 H r [M − k ], k = 1,...,M − 1

Para filtros tipo 1 e 2:

  M − 1   2πk   M − 1
−  2  ⋅  M  , k = 0 ,..., 
∠H [k ] =       2 
 M − 1  2 π  M − 1
+  (M − k ), k=  + 1,...,M − 1
  2  M  2 

Para filtros tipo 3 e 4:

  π   M − 1   2πk   M − 1
  ± 2  −  2  ⋅  M  , k = 0 ,..., 
∠H [k ] =         2 
−  ±  + 
π M − 1  2 π  M − 1
 (M − k ), k=  + 1,...,M − 1
  2   2  M  2 

h[n] = IDFT{H [k ]}

Processamento Digital de Sinais Prof. Marcelo E. Pellenz pg. 88


Processamento Digital de Sinais: Teoria e Aplicações Prof. Marcelo E. Pellenz

Dada a resposta ideal do filtro, H d (e jw ) , especificar o valor de M e amostras H d (e jw ) em


M freqüências igualmente espaçadas entre 0 e 2π . A resposta do filtro obtido, H e jw , é a ( )
interpolação das amostras H [k ] .

a) O erro de aproximação, ou seja, a diferença entre a resposta ideal e a projetada, é zero nas
freqüências de amostragem.
b) O erro de aproximação nas outras freqüências depende do formato da resposta ideal. Quanto mais
abrupto a resposta ideal, maior o erro.
c) O erro é maior próximo dos limites das faixas de transição e menor dentro das faixas.

Verificar Gráfico

Aplicação direta do método (sem considerar o


erro de aproximação)

Métodos de Construção (duas abordagens)  Projeto ótimo, onde tenta - se minimizar
 o erro na banda de corte variando - se os

 valores das amostras na banda de transição.

Processamento Digital de Sinais Prof. Marcelo E. Pellenz pg. 89


Processamento Digital de Sinais: Teoria e Aplicações Prof. Marcelo E. Pellenz

PROCESSAMENTO DIGITAL DE SINAIS (PDS)


LABORATÓRIO 8 – PROJETO DE FILTROS DIGITAIS FIR
PROF. MARCELO PELLENZ

Metodologia de Projeto usando Janelas Ajustáveis


A ênfase do método está em selecionar uma janela apropriada e um filtro ideal:

a) Selecionar um filtro ideal (não causal), que possui resposta ao impulso infinita
b) Truncar a resposta ao impulso (usando uma janela) para obter um filtro FIR causal
c) Deslocar o início do vetor de amostras, h[n] , para iniciar em n=0
(equivale a associar uma fase linear)

OBSERVAÇÃO: A notação utilizada para o comprimento da janela é N, onde N=2M+1

Janela Ajustável de kaiser


1 – Considere o projeto de um filtro digital FIR passa baixa, usando a janela de Kaiser. As
especificações do filtro são w p = 0.3 π , ws = 0.4 π e α s = 50 dB .
A freqüência de corte é dada por

(w + ws ) (w − wp )
α s = −20 ⋅ log10 (δ s ) dB
p s
wc = ∆f =
2 2π

 0.1102 (α s − 8.7 ) α s > 50  α s − 7.95


 14.36 ∆f α s > 21

β = 0.5842 (α s − 21) + 0.07886 (α s − 21) 21 ≤ α s ≤ 50
0.4
N ≈
0.9222
 0 α s < 21  α s ≤ 21
  ∆f

% Geracao da Janela de Kaiser


clear; clc;
N=input('Comprimento da Janela:');
beta=input('Valor de Beta:');
w=kaiser(N,beta);
disp(w)
[h,omega]=freqz(w,1,256);
mag=20*log10(abs(h));
figure(1);
plot(omega/pi,mag); grid;
ylabel('Frequencia Normalizada');
xlabel('Ganho (dB)');
title('Janela de Kaiser');

Processamento Digital de Sinais Prof. Marcelo E. Pellenz pg. 90


Processamento Digital de Sinais: Teoria e Aplicações Prof. Marcelo E. Pellenz

2 – Projete um filtro FIR passa baixa usando a janela de kaiser para os mesmos parâmetros do
programa anterior.
% Projeto do Filtro FIR usando a janela de Kaiser
clear; clc;
N=input('Comprimento da Janela:');
beta=input('Valor de Beta:');
wc==input('Frequencia de corte:');
kw=kaiser(N,beta);
b=fir1(N-1,wc,kw);
[h,omega]=freqz(b,1,256);
mag=20*log10(abs(h));
figure(1);
plot(omega/pi,mag); grid;
ylabel('Frequencia Normalizada');
xlabel('Ganho (dB)');
title('Filtro FIR Passa Baixa');

Método de Projeto de Filtros FIR baseado na


Amostragem em Freqüência

b=fir2(L,f,m)
b=fir2(L,f,m,window)

b=remez(N,f,m)
b=remez(N,f,m,wt)
b=remez(N,f,m,’ftype’)
b=remez(N,f,m,wt,’ftype’)

3 – Considere o projeto de um filtro FIR de ordem 100 com 3 níveis diferentes de amplitude:
- 0.3 na faixa de freqüência de 0 a 0.28
- 1 na faixa de freqüência de 0.3 a 0.5
- 0.7 na faixa de freqüência de 0.52 a 1

% Projeto do Filtro FIR multifaixa usando a janela de Hamming


clear; clc;
fpts=[0 0.28 0.3 0.5 0.52 1];
mval=[0.3 0.3 1 1 0.7 0.7];
b=fir2(100,fpts,mval);
[h,omega]=freqz(b,1,512);
mag=abs(h);
figure(1);
plot(omega/pi,mag); grid;
ylabel('Frequencia Normalizada');
xlabel('Ganho (dB)');
title('Filtro FIR Passa Baixa');

4 – Determine a função de transferência e trace a resposta em freqüência de um filtro digital FIR


passa faixa, com fase linear, utilizando o método da amostragem em freqüência. A ordem do
filtro deve ser 27, a faixa de passagem de 0.3 a 0.5 e as faixas de corte de 0 a 0.25 e de 0.55 a 1.

f=[0 0.25 0.3 0.5 0.55 1]


m=[0.01 0.01 1 1 0.01 0.01]

Processamento Digital de Sinais Prof. Marcelo E. Pellenz pg. 91


Processamento Digital de Sinais: Teoria e Aplicações Prof. Marcelo E. Pellenz

% Projeto de um filtro digital FIR passa faixa


clear; clc;
N=input('Ordem do Filtro:');
f=input('Faixas de Frequencia:');
m=input('Valores de Amplitude:');
b=remez(N,f,m);
disp(b)
[h,w]=freqz(b,1,256);
mag=20*log10(abs(h));
fase=angle(h);
figure(1);
plot(w/pi,mag); grid;
ylabel('Frequencia Normalizada');
xlabel('Ganho (dB)');
title('Filtro Digital de FIR Passa Faixa');
figure(2);
plot(w/pi,fase); grid;
ylabel('Frequencia Normalizada');
xlabel('Fase');
title('Filtro Digital de FIR Passa Faixa');

5 – Projete um filtro digital FIR, passa baixa, usando o método da série de Fourier truncada,
com as seguintes especificações:

Ω p = 1 rad/s Ω s = 2 rad/s
α p = 0.1 dB α s = 45 dB
Ω T = 2 π FT = 10 rad/s -> Freqüência de amostragem

Use o comando fir1 do Matlab. Utilize as seguintes janelas: Hamming, Hann, Blackman e
Kaiser. Mostre os coeficientes da resposta ao impulso e trace a resposta em freqüência dos
filtros projetados para cada caso.

Processamento Digital de Sinais Prof. Marcelo E. Pellenz pg. 92


Processamento Digital de Sinais: Teoria e Aplicações Prof. Marcelo E. Pellenz

LAB. 1 – Introdução ao kit DSP TMS320C5416


Documentação para o Laboratório
Nos experimentos de laboratório utilizaremos o TMS320C5416 DSP STARTER KIT da Texas Instruments (TI).

As cópias eletrônicas destes documentos são encontradas abaixo.

NÃO IMPRIMA estes documentos, apenas utilize na forma eletrônica. Para maiores informações sobre a família de
processadores TMS320C54xx, consulte o site da TI. (www.ti.com)
Documentação Técnica
TMS320C5416 Digital Signal Processor Data Sheet (C:\ti\docs\hlp\C5416DSK.HLP)
TMS320C54x DSP Functional Overview (SPRU307A)
TMS320C54x Code Composer Studio Tutorial (SPRU327C)
TMS320C54x Code Composer Studio User's Guide (SPRU328B)
TMS320C54x Assembly Language Tools User's Guide (SPRU102E)
TMS320C54x Evaluation Module Technical Reference (SPRU135)
TMS320C54x Optimizing C/C++ Compiler (SPRU103f)
TMS320C54x DSP Ref. Set Vol. 2: Mnemonic Instruction Set (SPRU172C)

Atividades de Laboratório
Atividade 1 - Abrir o arquivo de help c:\ti2\docs\hlp\c5416dsk.hlp
Ler a descrição geral do kit TMS320C5416 e executar os exemplos do tutorial
que utilizam o DSP/BIOS (Real-Time Multitasking Kernel):

a) O exemplo do LED reside no diretório c:\ti2\examples\dsk5416\bsl\led


Faça uma cópia de todo o diretório para o diretório de trabalho c:\ti2\myprojects
a partir do qual você deve trabalhar.

b) O exemplo de geração de TOM reside no diretório c:\ti2\examples\dsk5416\bsl\tone


Faça uma cópia de todo o diretório para o diretório de trabalho c:\ti2\myprojects
a partir do qual você deve trabalhar.

b.1) Identificar a freqüência de amostragem utilizada pelo A/D - D/A


b.2) Calcular a freqüência normalizada "w=2*pi*f"
b.3) Calcular o período do sinal em tempo discreto em número de amostras
b.4) Calcular o número de amostras por período do sinal analógico
b.5) Identifique no Codec API Summary quais as freqüências de amostragem
padrões que podem ser utilizadas

Vá para o item Software Overview --> BSL API Summary --> Codec API

Este tópico é importante para os trabalhos futuros de laboratório para entender como utilizar a API
para escrever programas com I/O de streams de áudio para aplicações do DSP.

Atividade 2 - Ler os capítulos 2, 3, 4 e 6 do help do CCS DSK: Code Composer Studio Overview.
Capítulo 2 - Developing a Simple Program
Capítulo 3 - Developing a DSP/BIOS Program
Capítulo 4 - Testing Algorithms and Data from a file
Capítulo 6 - Analyzing Real-Time Behavior

Processamento Digital de Sinais Prof. Marcelo E. Pellenz pg. 93


Processamento Digital de Sinais: Teoria e Aplicações Prof. Marcelo E. Pellenz

Lab. 2 –TMS320C5416
Laboratório de Efeitos de Áudio
Este laboratório trata de efeitos de áudio. Os algoritmos são implementados usando o DSP de
maneira que os arquivos de áudio possam ser processados em tempo real. Vamos implementar um
circuito fechado de áudio neste laboratório e escutar um trecho de musico do CD player. Na parte 1
usaremos o Matlab para implementação e processamento de áudio (não em tempo real) usando
arquivos WAV. Isso permite um bom entendimento dos efeitos de áudio e seus algoritmos. Na parte
2 os algoritmos serão implementados em tempo real usando o KIT DSP TMS320C5416. Estes
efeitos de áudio podem ser combinados para gerar efeitos complexos de áudio. Você pode gravar a
sua própria voz para testar os algoritmos. Grave no modo mono com 8 bits de resolução na
freqüência de amostragem de 8kHz e que o arquivo seja salvo no formato WAV.

Equipamentos Necessários:
- PC com Matlab e Toolbox de Processamento Digital de Sinais
- Microfone e alto-falante (fone de ouvido)
- CD player portátil
- KIT DSP TMS320C5416

PARTE 1 – EFEITOS DIGITAIS DE AUDIO NO MATLAB


Filtro de Eco:

Implemente um filtro de eco que possui uma equação de diferenças no formato:

y[n] = x[n] + a ⋅ x[n − D]

A função de transferência e a resposta ao impulso do filtro são:

H (z ) = 1 + a ⋅ z − D

h[n] = δ [n] + a ⋅ δ [n − D ]

Escolha o numero de amostras, D, que o sinal deve ser atrasado, de tal forma que o sinal seja
atrasado de 0,125s a especifique a=0,5.

Trace a resposta em freqüência do filtro usando o comando freqz do Matlab.

Execute o experimento com valores de D cada vez menores e escute o sinal com eco ate que não
seja mais perceptível distinguir do sinal original. Calcule a quantos milisegundos de atraso este
valor corresponde.

Filtro Pente (Comb Filter):

Implemente um filtro que adicione 3 ecos sucessivos, que possui a equação de diferenças no
formato:

y[n] = x[n] + a ⋅ x[n − D ] + a 2 ⋅ x[n − 2 D ] + a 3 ⋅ x[n − 3D ]

Processamento Digital de Sinais Prof. Marcelo E. Pellenz pg. 94


Processamento Digital de Sinais: Teoria e Aplicações Prof. Marcelo E. Pellenz

A função de transferência e a resposta ao impulso do filtro são:

H ( z ) = 1 + a ⋅ z − D + a 2 ⋅ z −2 D + a 3 ⋅ z −3 D

Implemente a forma não recursiva deste filtro escolhendo D tal que o atraso seja 0,2s. Utilize a=0,5
and trace a resposta em freqüência deste filtro. Mantendo o mesmo atraso, D, escolha a=0,2 e rode
o programa novamente. Que efeito você escuta ? Repita para a=0,1.

Filtro de Reverberação:

Se uma quantidade infinita de ecos for adicionada ao sinal, o efeito imita a reverberação natural de
uma sala e fornece o filtro pente (comb filter) IIR ou reverberador. A equação de diferenças e a
função de transferências são:

y[n] = x[n] + a ⋅ y[n − D ]

1
H (z ) =
1 − a ⋅ z −D

Novamente, escolha D tal que o atraso seja 0,125s, especifique a=0,5 e trace o gráfico da resposta
em freqüência do filtro reverberador. Execute o programa com o novo coeficiente a=0,9. Trace a
resposta ao impulso. Repita para a=0,25. Discuta o efeito de aumentar ou diminuir a.

PARTE 2 – LOOP BACK DE AUDIO NO KIT DSP


Esta seção do laboratório e uma introdução à programação em tempo real no KIT DSP
TMS320C5416 da Texas Instruments. O objetivo e tornar o aluno familiar com o hardware e o
software usado no curso e introduzir os conceitos de processamento digital de sinais em tempo real.
Cada sinal em tempo real deve ser recuperado, digitalizado (quantizado), processado pelo chip DSP
C5416 e finalmente devera ser convertido para um sinal analógico.

Seção 2a

1 – Modelo para o projeto de áudio: Configura o CODEC, as 4 chaves para configurar o


programa e 4 leds para funcionar como um gráfico de barras. Este template pode ser usado como
um modelo para outros projetos.

2 – Atrasos e Ecos: Simula o atraso em redes de comunicação e reflexão do som escutada em um


canyon. Introduz buffer circular e a configuração usada para filtros de resposta ao impulso finita
(FIR)

3 – Reverberação: Simula uma e múltiplas reflexões das paredes de uma sala. Introduz a
configuração usada em filtros de resposta ao impulso infinita (IIR)

4– Crossover eletrônico: Divide um sinal de áudio em bass e treble e usa para acionar os diferentes
alto-falantes. Usa um filtro FIR e o usuário muda para selecionar 15 diferentes freqüências de
crossover entre 100Hz e 6,4kHz

Processamento Digital de Sinais Prof. Marcelo E. Pellenz pg. 95


Processamento Digital de Sinais: Teoria e Aplicações Prof. Marcelo E. Pellenz

Seção 2b – Exemplo de Loop Back de Audio

O DSK usa um codec stereo Burr Brown PCM3002 para entrada e saída de sinais de áudio. O codec
amostra os sinais analógicos no microfone e line in e converte eles para dados digitais de tal forma
que ele possa ser processado no DSP. Quando o DSP termina o processamento ele usa o codec para
converter as amostras de volta para sinais analógicos no line out e alto-falantes para que o usuário
possa ouvir a saída.

A biblioteca de periféricos on-board fornece suporte de alto nível para as aplicações do DSP
rodando no C5416 DSK. Esta biblioteca habilita o usuário a desenvolver aplicações que podem
controlar e operar os periféricos da plataforma DSK. O suporte dos periféricos on-board inclui:

- Inicialização on-board do periférico


- Acesso aos registradores
- Movimento de dados

Processamento Digital de Sinais Prof. Marcelo E. Pellenz pg. 96


Processamento Digital de Sinais: Teoria e Aplicações Prof. Marcelo E. Pellenz

Lab. 3 – TMS320C5416 DSK: Instalando Aplicações


O seguinte procedimento foi escrito para instalar a aplicação chamada template, que está
armazenada no arquivo template.zip. Para outros projetos, modifique o nome template para aquela
do arquivo zip que esta sendo instalado, por exemplo, electronic_crossover:

1- Inicie o software CCS (Code Composer Studio) para o TMS320C5416 DSK.

2- Selecione Project -> New. Para o nome do projeto digite a palavra template. Selecione o
botão Finish. O novo projeto será criado. Este procedimento é mostrado na Figura 1. Faça
uma anotação do diretório em que o projeto está sendo armazenado então minimize a janela
do CCS. Os projetos devem ser criados em diretórios específicos, dentro do diretório
myprojects.

3- Usando o Windows Explorer selecione o diretório onde o novo projeto foi criado, por
4- exemplo, c:\ti\myprojects\template.

5- Copie o arquivo template.zip para o diretório c: \ti\myprojects\template.

6- Descompacte o arquivo template.zip usando WinZip no diretório corrente, na opção Extract


Here .

7- Retorne ao CCS. Selecione Project -> Add Files to Project. Selecione a pasta
c:\ti\myprojects\template. Selecione todos os arquivos *.c e aperte a tecla Open.

8- Selecione Project -> Add Files to Project. Selecione a pasta c:\ti\myprojects\template. Na


caixa tipo de arquivo selecione Configuration File (*.cdb). Selecione o arquivo template.cdb
e tecle Open para adicionar ao projeto.

9- Selecione Project -> Add Files to Project. Selecione a pasta c:\ti\myprojects\template. Na


caixa tipo de arquivo selecione Linker Command File (*.cmd). Selecione o arquivo
template.cmd e pressione a tecla Open.

10- Selecione Project -> Add Files to Project. Selecione a pasta c:\ti\myprojects\template. Na
caixa tipo de arquivo selecione os arquivos (*.a, * .s). Selecione os arquivos (.asm), se
existirem, então pressione a tecla Open. Caso contrário pressione Cancel.

11- Apenas necessário quando estiver usando a biblioteca dsplib. Selecione Project -> Add Files
to Project. Selecione a pasta c:\ti\myprojects\template. Na caixa tipo de arquivo selecione os
arquivos (*.o, *.lib). Selecione os arquivos (.lib), se existirem, então pressione a tecla Open.
Caso contrário pressione Cancel.

12- Não há nenhuma necessidade de adicionar os arquivos (*.h) ao projeto. Isto é feito
automaticamente.

13- Selecione Project -> Build Options. Selecione a pasta Compiler. Selecione Advanced na
janela Category. Habilite a opção Calls (-mf) (548 and higher) como indicado na Figura 2.

14- Ainda na mesma janela, selecione a subpasta Linker. Na linha Include Libraries (-l) digite
dsk5416f.lib, a seguir selecione OK . Este procedimento é ilustrado na Figura 3.

Processamento Digital de Sinais Prof. Marcelo E. Pellenz pg. 97


Processamento Digital de Sinais: Teoria e Aplicações Prof. Marcelo E. Pellenz

15- Selecione Project ->Rebuild All. Irá aparecer uma mensagem de Error e um Warning. Os
novos arquivos templatecfg.s54, templatecfg_c.c e templatecfg.h, devem ter sido criados no
diretório do projeto.

16- Selecione Project -> Add Files to Project. Na caixa tipo de arquivo selecione os arquivos
(*.cmd). Selecione o arquivo templatecfg.cmd e aperte Open. Haverá uma mensagem de erro
indicando que um arquivo (*.cmd) já existe no projeto. Substitua o arquivo template.cmd
pelo novo arquivo templatecfg.cmd, selecionando a opção Yes.

17- Selecione Option -> Customize -> Program Load Options. Habilite a opção Load Program
after Build, conforme ilustrado na Figura 4.

18- Selecione Project -> Build. Desta vez o projeto deve ser compilado com sucesso e o arquivo
template.out deve ser carregado automaticamente para o DSP.

19- Selecione Debug -> Go Main para mostrar o código principal. Selecione Debug -> Run
para executar o projeto.

Figura 1 – Criando um novo projeto

Processamento Digital de Sinais Prof. Marcelo E. Pellenz pg. 98


Processamento Digital de Sinais: Teoria e Aplicações Prof. Marcelo E. Pellenz

Figura 2 – Selecionando as opções de Compiler da etapa 11

Figura 3 – Configurando as opções de Linker da etapa 11

Processamento Digital de Sinais Prof. Marcelo E. Pellenz pg. 99


Processamento Digital de Sinais: Teoria e Aplicações Prof. Marcelo E. Pellenz

Figura 4 – Configurando a opção de Load Program

Processamento Digital de Sinais Prof. Marcelo E. Pellenz pg. 100


Processamento Digital de Sinais: Teoria e Aplicações Prof. Marcelo E. Pellenz

LAB. 4 DSP – Implementação de Filtros Digitais FIR


Neste laboratório deverá ser utilizado como base o projeto electronic_crossover.zip, a partir
do qual serão implementados os filtros digitais.

a) Utilizar o software MATLAB para projetar os seguintes filtros digitais FIR:

Fs=24kHz
Freqüência
Tipo de Corte Comprimento (N) Ordem (N-1)
(Fc)
Filtro Passa Baixa (FPB)
Filtro Passa Alta (FPA)
Filtro Passa Faixa (FPF)
Filtro Rejeita Faixa (FRF)
Filtro Multibanda (Equalizador)

b) Implementar os filtros projetados no DSP e testar em tempo real utilizando como sinal de
entrada uma forma de onda senoidal analógica, com freqüência ajustada através do gerador
de funções
c) Ajustar no programa a freqüência correta de amostragem (Fs) dos conversores A/D e D/A
(codec)

LAB. 5 – Implementação de Filtros Digitais IIR


Neste laboratório deverá ser utilizado como base o projeto electronic_crossover.zip, a partir
do qual serão implementados os filtros digitais.

Processamento Digital de Sinais Prof. Marcelo E. Pellenz pg. 101


Processamento Digital de Sinais: Teoria e Aplicações Prof. Marcelo E. Pellenz

Projeto Final da Disciplina de Processamento Digital de Sinais

Tópico Descrição
Modulador AM-DSB Implementar um modulador AM utilizando o DSP. Sintetizar via
software a freqüência de portadora de 6kHz e gerar o sinal modulado
AM para um sinal analógico de informação (sinal modulante) obtido do
conversor A/D. O sinal analógico não deve ter freqüência superior a
2kHz. O sinal modulado deve ser convertido para analógico (D/A) e
visualizado no osciloscópio. (Fs=48kHz)
Modulador AM DSB-SC Implementar um modulador AM utilizando o DSP. Sintetizar via
software a freqüência de portadora de 12kHz e gerar o sinal modulado
AM para um sinal analógico de informação (sinal modulante) obtido do
conversor A/D. O sinal analógico não deve ter freqüência superior a
2kHz. O sinal modulado deve ser convertido para analógico (D/A) e
visualizado no osciloscópio. (Fs=48kHz)
Modulador 4-ASK Sintetizar o sinal de portadora de 8kHz via software. Escolher uma
seqüência de símbolos de informação a serem modulados (10 símbolos)
e gerar o sinal modulado 4-ASK. A seqüência de informação escolhida
deve ser modulada periodicamente, por questões de visualização no
osciloscópio. Considerar uma taxa de transmissão de 200 baud. O sinal
modulado deve ser convertido para analógico (D/A) e visualizado no
osciloscópio. (Fs=48kHz)
Modulador 4-PSK Sintetizar o sinal de portadora de 3kHz via software. Escolher uma
seqüência de símbolos de informação a serem modulados (10 símbolos)
e gerar o sinal modulado 4-PSK. A seqüência de informação escolhida
deve ser modulada periodicamente, por questões de visualização no
osciloscópio. Considerar uma taxa de transmissão de 500 baud. O sinal
modulado deve ser convertido para analógico (D/A) e visualizado no
osciloscópio. (Fs=48kHz)
Modulador 4-FSK Sintetizar as freqüências do modulador via software:
1,5kHz 1,7kHz 1,9kHz 2,1kHz
Escolher uma seqüência de símbolos de informação a serem modulados
(10 símbolos) e gerar o sinal modulado 4-FSK. A seqüência de
informação escolhida deve ser modulada periodicamente, por questões
de visualização no osciloscópio. Considerar uma taxa de transmissão de
300 baud. O sinal modulado deve ser convertido para analógico (D/A) e
visualizado no osciloscópio. (Fs=48kHz)
Modulador 8-QAM Sintetizar via software as freqüências das portadoras que formam os
sinais base (seno/coseno) de 5kHz e gerar o sinal modulado 8-QAM.
A seqüência de informação escolhida deve ser modulada periodicamente,
por questões de visualização no osciloscópio. Considerar uma taxa de
transmissão de 1000 baud. O sinal modulado deve ser convertido para
analógico (D/A) e visualizado no osciloscópio. (Fs=48kHz)
Analisador de Espectro
Modulador AM SSB
Costas Loop
Squaring Loop

Processamento Digital de Sinais Prof. Marcelo E. Pellenz pg. 102


Processamento Digital de Sinais: Teoria e Aplicações Prof. Marcelo E. Pellenz

LAB. 6 – Modulação em Amplitude (AM/ASK) usando DSP

1. Introdução
Por muitos anos a modulação em amplitude foi o esquema de modulação padrão devido ao
baixo custo e fácil implementação. Para a modulação e demodulação em amplitude são utilizados
multiplicadores, que são implementados com semicondutores. Uma abordagem mais moderna da
modulação em amplitude é o uso de técnicas de processamento digital de sinais. A geração da
portadora e também a multiplicação pelo sinal de informação são feitos pelo software do DSP. As
técnicas de modulação em amplitude (AM/ASK) são ainda muito utilizadas devido à economia em
largura de banda.

2. Sistemas de Modulação em Amplitude

Na modulação AM/ASK significa simplesmente o deslocamento da freqüência do sinal de


informação para outra freqüência (usualmente maior). O conteúdo espectral do sinal de informação
(sinal modulante) é transladado para outra freqüência, em torno da portadora. A translação em
freqüência é feita pela multiplicação dos dois sinais no domínio do tempo. Multiplicação no
domínio do tempo corresponde ao deslocamento no domínio da freqüência, conforme ilustrado na
Figura 1.

a) Justificativa Matemática para o Deslocamento em Freqüência

O deslocamento em freqüência pode ser provado aplicando-se a transformada de Fourier numa


função f (t ) multiplicada por uma função coseno.

1
f (t ) ⋅ cos(w0 t ) =
2
( )
f (t ) ⋅ e jw0t + f (t ) ⋅ e − jw0t
1
f (t ) ⋅ cos(w0 t ) ⇔ (F (w − w0 ) + F (w + w0 ))
2

Isso mostra que a multiplicação do sinal f (t ) pela freqüência da portadora w0 desloca o espectro
F (w) por ± w0 . Este tipo de modulação é chamado de modulação em amplitude.

b) Modulação em Amplitude Padrão

A modulação em amplitude balanceada resulta na perda do sinal de portadora, que transporta


apenas informação redundante. Contudo a portadora é transmitida por diferentes razões na
modulação em amplitude padrão. Portanto um offset é adicionado a portadora e ela é transmitida
igualmente.

Processamento Digital de Sinais Prof. Marcelo E. Pellenz pg. 103


Processamento Digital de Sinais: Teoria e Aplicações Prof. Marcelo E. Pellenz

Vm = A ⋅ sen (wC t ) ⋅ (1 + m ⋅ cos(wmod t ))


 1  1
( 
) (
Vm = A ⋅  −  e jwC t − e − jwC t 1 + m e jwmodt − e − jwmodt 

)
 2j  2 
Vm = −
A jwC t
2j
e (
− e − jwC t −
Am
4j
) (( )(
e jwmodt + e − jwmodt e jwC t − e − jwC t ))
Vm = −
A jwC t
2j
e (− e − jwC t −
4j
)
Am j (wmod + wC )t
e (− e − j (wmod + wC )t + e j ( wmod − wC )t − e − j (wmod − wC )t )

onde m é chamado de índice de modulação (razão entre o pico do sinal modulante e o pico da
portadora), e A é a amplitude do sinal de portadora. Sinais usando modulação em amplitude padrão
podem ser demodulados por meio de diodos.

c) Modulação em Amplitude Balanceada

Nesta modulação o sinal de portadora é suprimido pois não contém informação útil e consome
muita energia na transmissão.

Vm = A ⋅ sen (wC t ) ⋅ m ⋅ cos(wmod t )


 1 
(
Vm = A ⋅  −  e jwC t − e − jwC t ) (
m jwmodt
e + e − jwmodt )
 2j 2

Vm = −
4j
e (
Am j (wC + wmod )t
− e − j ( wC + wmod )t + e j ( wC − wmod )t − e − j (wC −wmod )t )
Am  1 1 
Vm = −  − sen (wC + wmod ) − sen (wC − wmod )
4j  2j 2j 
Am
Vm = − (− j sen(wC + wmod ) − j sen(wC − wmod ))
2j

Am
Vm = − (sen (wC + wmod ) + sen (wC − wmod ))
2

4. Modulação em Amplitude usando DSP


Em sistemas de modulação em amplitude usando métodos de processamento digital de
sinais a geração da portadora e a aritmética (multiplicação e geração de portadora) são feitos por
meio de um processador digital de sinais. O sinal modulante é alimentado através do ADC para o
sistema. A transmissão (canal) pode ser digital ou analógico. Para uma transmissão analógica a
portadora digital modulada em amplitude deve ser convertida para analógica e de volta para digital
no receptor. O objetivo do laboratório é projetar o sistema modulador e demodulador em amplitude
em linguagem C. O sinal modulante foi implementado via uma função seno e o sinal de portadora
foi implementado através de um filtro IIR de segunda ordem. O filtro passa baixa para remover as
componentes indesejáveis foi implementado através de um filtro digital FIR.

Processamento Digital de Sinais Prof. Marcelo E. Pellenz pg. 104


Processamento Digital de Sinais: Teoria e Aplicações Prof. Marcelo E. Pellenz

a) Oscilador Digital

O oscilador para o sinal de portadora foi implementado por meio de um filtro digital IIR
(recursivo) de segunda ordem. A equação diferencial de um oscilador analógico de segunda ordem
é dada por:
d 2 y (t )
+ w02 ⋅ y (t ) = w02 ⋅ x(t )
dt 2
[ y(nT ) − y (nT − T )]/ T − [ y(nT − T ) − y (nT − 2T )]/ T + w 2 ⋅ y(nT ) = w 2 ⋅ x(nT )
0 0
T
y (n ) − 2 y (n − 1) + y (n − 2 )
2
+ w02 ⋅ y (n ) − w02 ⋅ x(n ) = 0
T
y(n ) − 2 y (n − 1) + y (n − 2 ) + w02 T 2 y (n ) − w02 T 2 x(n ) = 0
2 y(n − 1) y (n − 2) w02 T 2 x(n )
y(n ) − + − =0
1 + w02 T 2 1 + w02 T 2 1 + w02 T 2
1 2 1
y(n ) = 2 2
x(n ) + 2 2
y (n − 1) − y (n − 2 )
1 + w0 T 1 + w0 T 1 + w02 T 2

onde x[n] é usualmente um impulso para iniciar o sistema. O problema da aproximação de


diferenças recursiva é que ela muda a freqüência do oscilador e a capacidade de oscilar sem perda
do sinal devido a alteração dos coeficientes (Transforms in Signals and Systems, Peter Kraniauskas,
Addison-Wesley, pg. 321). Um bom cálculo dos coeficientes resulta na seguinte equação (C
Algorithms for Real-Time DSP, Paul M. Embree, Prentice Hall, 1995, pg. 178)

y[n] = c1 ⋅ y[n − 1] − c2 ⋅ y[n − 2] + x[n]

1
onde c1 = 2 ⋅ e − d ⋅T ⋅ cos(wT ) , c2 = e −2⋅d ⋅T , T =
, w = 2 π FS e d = 0 = damping .
FS
Para a capacidade de oscilação os pólos da transformada-Z devem estar sobre o círculo de raio
unitário, o que não é dado pela aproximação de diferenças recursiva. A freqüência da portadora do
sinal pode ser facilmente verificada comparando com a freqüência da modulação. A razão deve ser
1/10.

Processamento Digital de Sinais Prof. Marcelo E. Pellenz pg. 105


Processamento Digital de Sinais: Teoria e Aplicações Prof. Marcelo E. Pellenz

c) Filtro Passa Baixa

A função de transferência do filtro FIR, H(z), é dada por:

N −1
H ( z ) = ∑ h[n]⋅ z −n
n =0

Os coeficientes do filtro foram calculados usando o método da Série de Fourier Truncada. As


especificações são fcutoff=1kHz, fsample=50kHz, sem especificação da banda de transição e atenuação
na banda de corte. Assim uma função de janela retangular foi usada.

1000
∆wC = 2π = 0,04π
50000
A resposta em freqüência do filtro ideal é:

e − jαw , w ≤ 0,04π N −1
He ( )
jw
= onde α =
 0, 0,04π < w ≤ π 2

Aplicando-se a IDTFT na resposta em freqüência obtemos a resposta ao impulso:

1
∫ π H (e )⋅ e
π
h[n] = jw jwn
dw
2π −

1 0, 04π 1 0,04π
h[n] = ∫ e − jαw ⋅ e jwn dw + ∫ 0 ⋅ e jwn dw
2π 0 2π 0

1 0 , 04π 1 0, 04π jw( n−α )


h[n ] = ∫ 2π ∫0
e − jαw ⋅ e jwn dw = e dw
2π 0

0 , 04π
1  e jw( n −α )  1
h[n ] =  
2π  j (n − α )  0
=
2πj (n − α )
(
e j 0, 04π ( n−α ) − 1 )

1
h[n] = sen[0,04π (n − α )]
π (n − α )

A partir desta equação os coeficientes podem ser diretamente calculados pois nenhuma função de
janela foi usada. Para calcular o coeficiente central do filtro aplicamos o teorema de L`Hospital para
resolver a indeterminação (0/0):
Processamento Digital de Sinais Prof. Marcelo E. Pellenz pg. 106
Processamento Digital de Sinais: Teoria e Aplicações Prof. Marcelo E. Pellenz

sen[Aπ (n − α )] 0
h[n] = = quando n = α diferencie separadamente o numerador e o denominador
π (n − α ) 0

Aπ [cos( Aπn − Aπα ) )]


h[n ] =
π

h[n] = A = 0,04

5. Realização usando C
a) O sinal de modulação

Na modulação usual do sinal em amplitude, onde voz ou sinais equivalentes são modulados,
o sinal modulante é alimentado para o DSP via um conversor A/D. No laboratório de simulação o
sinal modulante foi gerado usando uma função seno com freqüência 1kHz. A realização em C é
dada por y[n] = sen (n ⋅ wn1 ) , onde wn1 é a freqüência normalizada do sinal de 1kHz.

b) O Oscilador Digital

O oscilador foi projetado baseado na seguinte equação de diferenças derivada através da


aproximação de diferenças recursivas. Apenas os coeficientes precisam ser determinados para
preencher os requisitos de freqüência de oscilação de 10kHz para uma freqüência de amostragem de
50kHz.

y[n] = c1 ⋅ y[n − 1] − c2 ⋅ y[n − 2] + x[n]

1
onde c1 = 2 ⋅ e − d ⋅T ⋅ cos(wT ) , c2 = e −2⋅d ⋅T , T = , w = 2 π FS e d = 0 = damping .
FS
 2π 10kHz 
c1 = 2 ⋅ 1 ⋅ cos  = 0,6180339
 50kHz 
c2 = 1

O código resultante é o seguinte:

x[0]=0.6180339*x[1]-x[2]+i;
x[2]=x[1]; // shifting oscillator array
x[1]=x[0];

Processamento Digital de Sinais Prof. Marcelo E. Pellenz pg. 107


Processamento Digital de Sinais: Teoria e Aplicações Prof. Marcelo E. Pellenz

c) Modulação e Demodulação

A modulação e demodulação é baseada numa simples multiplicação:


// Modulating
mod=(ampmod+(2-ampmod*1.5)*signal)*carrier;
// Demodulating
demod=-mod*carrier;

A variável ampmod é usada para alterar entre modulação em amplitude normal e balanceada. O
valor é especificado como 0 para modulação balanceada e 1 para modulação não balanceada. O
fator 1 e 0.5 (=2-1.5) são escolhidos para obter-se resultados apropriados de modulação, porque a
razão entre sinal modulado e portadora deve ser entre 0<m<1, para obtermos resultados visíveis da
modulação AM padrão. Os valores para modulação balanceada foram A=2 e m=1:

d) Filtragem Passa Baixa

O filtro passa baixa de ordem 51 é implementado usando convolução:

// Calculating Convolver Filter coefficients


for(n=0; n<=25 ; n++)
{
h[n]=sin((0.04)*pi*(n-25))/(pi*(n-25));
h[(50)-n]=h[n];
// Remove comments for printing filter coefficients
// printf("%d=>%f | %d=>%f \n",n,h[n],(50-n),h[50-n]);
}
h[25]=0.04; // Set mid filter coefficient (from L'Hospital)

Programa de filtragem que implementa a convolução:

// Filtering via convolver -------------------------------


filter_out=0;
for(k=0; k<=50; k++)
{
filter_out+=xstore[k]*h[k]; // convoling
xstore[k]=xstore[k+1]; // shifting array
}
xstore[50]=demod; /* writing new xstore(n) value */
// END OF CONVOLVER --------------------------------------

Processamento Digital de Sinais Prof. Marcelo E. Pellenz pg. 108


Processamento Digital de Sinais: Teoria e Aplicações Prof. Marcelo E. Pellenz

a) Código fonte completo do software de modulação

#include <graphics.h>
#include <stdio.h>
#include <conio.h>
#include <math.h>
#define pi 3.14159
#define end 640
//
// Amplitude modulation - DSP simulation using C
// Dirk Becker, BENG 2/3, 9801351
//
// Balanced and Standard Amplitude Modulation
//
float x(int n);
void difference(int ypos, int scale, int ampmod);
int main(void)
{
/* request autodetection */
int gdriver = DETECT, gmode, errorcode, scale=3;
char key;
int modtype=1;
/* initialize graphics and local variables */
initgraph(&gdriver, &gmode, "");
setbkcolor(BLACK);
do {
/* start */
difference(40,scale,modtype);
setcolor(LIGHTBLUE);
moveto(0,447);lineto(639,447);
outtextxy(5,450,"+- for scaling or Esc for exit, B for toggling
modulating mode");
key=getch();
if (key=='+') scale++;
if (key=='-') scale--;
if ((key=='b')||(key=='B')) modtype=abs(modtype-1); // toggle
if (scale<=0) {scale=1;};
cleardevice();
clrscr;
} while (key!=27);
/* closegraph (clean up) */
closegraph();
return 0;
}
/* ---------- END OF MAIN FUNCTION --------------------------------- */
/* ----------------------------------------------------------------- */
/* ---------- Oscillators, modulator, demodulator and filter ------- */
void difference(int ypos, int scale, int ampmod)
{
int n, k, y_old, x_old, y_old2, xplot, yplot, yplot2, z_old, zplot,
f_old=500, fplot; // Vars for line drawing
// (storing old points)
int m_old=290, mplot; // ( -"- )
float xvalue, y[1]={0}, x[5]={0}, mod, demod, i=1;
float fsignal1=1000, fsignal2=10000; // signal and oscillator
float fsample=50000; // and sample frequencies
float wn1=2*pi*fsignal1/fsample; // normalisation of them and
float wn2=2*cos(2*pi*fsignal2/fsample); // coefficients of difference
// equation
float carrier, signal; // outputs vars
float filter_out, xstore[52]={0}, h[52]={0}; // filter vars
setcolor(RED);
int scaley=25; // scaling in y direction
float carriermax=0, signalmax=0, modmax=0, demodmax=0 ; // max-min
calcs
// Calculating Convolver Filter coefficients
for(n=0; n<=25 ; n++)
{
h[n]=sin((0.04)*pi*(n-25))/(pi*(n-25));
h[(50)-n]=h[n];

Processamento Digital de Sinais Prof. Marcelo E. Pellenz pg. 109


Processamento Digital de Sinais: Teoria e Aplicações Prof. Marcelo E. Pellenz

// Remove comments for printing filter coefficients


// printf("%d=>%f | %d=>%f \n",n,h[n],(50-n),h[50-n]);
}
h[25]=0.04; // Set mid filter coefficient (from L'Hospital)
moveto(0,ypos);
i=1;
y_old=ypos;y_old2=ypos+70;z_old=ypos+200; // preset storings
// for line function
x_old=0;
for(n=0; n<=end; n++) // main loop
{
// Calculating frequency 1 (signal)
y[0]=sin(n*wn1);
signal=y[0]; // for normalisation to 1 (already is)
if (signal>=signalmax) signalmax=signal;
// Calculating frequency 2 (carrier)
x[0]=wn2*x[1]-x[2]+i;
carrier=x[0]; // for normalisation to 1 ( - "" - )
if (carrier>=carriermax) carriermax=carrier;
// Modulating Ymod=A*f1*(1+m*f2) and change between
// Balanced and Standard modulation
// Standard Modulation: A=1(ampmod) , m=1.5
// Balanced Modulation: A=2 , m=1
//
mod=(ampmod+(2-ampmod*1.5)*signal)*carrier;
if (mod>=modmax) modmax=mod;
// Demodulating
demod=-mod*carrier;
if (demod<=demodmax) demodmax=demod;
// Filtering via convolver --------------------------------
filter_out=0;
for(k=0; k<=50; k++)
{
filter_out+=xstore[k]*h[k]; // convoling
xstore[k]=xstore[k+1]; // shifting array
}
xstore[50]=demod; /* writing new xstore(n) value */
// END OF CONVOLVER ---------------------------------------
x[2]=x[1]; // shifting oscillator array
x[1]=x[0];
// Drawing the waveforms
// the old points are always stored in the _old vars
setcolor(RED); // Raw signal
xplot=n*scale;
yplot=-signal*scaley+ypos;
line(x_old, y_old, xplot, yplot);
y_old=yplot;
setcolor(GREEN); // Carrier frequency
yplot2=carrier*scaley+ypos+70;
line(x_old ,y_old2, xplot, yplot2);
y_old2=yplot2;
setcolor(BLUE); // Modulated signal
zplot=mod*scaley+ypos+170;
line(x_old ,z_old, xplot, zplot);
z_old=zplot;
setcolor(LIGHTRED); // Demodulated (multiplied)
mplot=demod*scaley+ypos+295;
line(x_old ,m_old, xplot, mplot);
m_old=mplot;
setcolor(LIGHTGREEN); // Filtered via convolver
if ((filter_out>400)|(filter_out<-400)) filter_out=0;
fplot=filter_out*(50+100*ampmod)+ypos+(370+60*ampmod);
line(x_old ,f_old, xplot, fplot);
f_old=fplot;
x_old=xplot;
i=0; /* End of impulse */
}
// Adding text to curves
//
setcolor(WHITE);
outtextxy(0,5,"Modulating signal:");

Processamento Digital de Sinais Prof. Marcelo E. Pellenz pg. 110


Processamento Digital de Sinais: Teoria e Aplicações Prof. Marcelo E. Pellenz

outtextxy(0,65,"Carrier signal:");
outtextxy(0,155,"Modulated signal:");
outtextxy(0,265,"Demodulated signal:");
outtextxy(0,340,"Demodulated and filtered signal:");
// Printing max values
gotoxy(60,1);
printf("sigmax: %1.2f \n",signalmax);
gotoxy(60,5);
printf("carmax: %1.2f \n",carriermax);
gotoxy(60,11);
printf("modmax: %1.2f \n",modmax);
gotoxy(60,17);
printf("demmax: %1.2f \n",demodmax);
}

Processamento Digital de Sinais Prof. Marcelo E. Pellenz pg. 111


Processamento Digital de Sinais: Teoria e Aplicações Prof. Marcelo E. Pellenz

Anexo A
Teorema de Nyquist

1 – AMOSTRAGEM PERIÓDICA

SINAL AMOSTRAGEM PROCESSAMENTO


CONTÍNUO PERIÓDICA EM TEMPO DISCRETO

RECONSTITUIÇÃO
DO SINAL CONTÍNUO

Considere um sinal contínuo xC (t ) . O sinal discreto no tempo pode ser obtido através da
amostragem periódica do sinal xC (t ) ,

x[n] = xC (nT ) , n = 0,±1,±2,...

..., x[− 2], x[− 1], x[0], x[1], x[2], ...

onde

TS = Período de amostragem

f S = 1 / TS = Freqüência de amostragem

Ω S = 2π / TS = Freqüência angular (radianos/s)

C/D
IDEAL
xc (t ) x[n] = xc (nT )
T

A/D

Processamento Digital de Sinais Prof. Marcelo E. Pellenz pg. 112


Processamento Digital de Sinais: Teoria e Aplicações Prof. Marcelo E. Pellenz

CONVERSOR C/D

s(t )
Conversão
Trem de Impulsos
X para

xc (t ) xs (t ) Sequência em Tempo
Discreto x[n] = xc (nT )

xc (t ) T = T1 xc (t ) T = 2 T1

xs (t ) xs (t )

-2T -T 0 T 2T t -2T -T 0 T 2T t

x[n] x[n]

-6 -5 -4 -3 -2 -1 0 1 2 3 4 5 6 n -3 -2 -1 0 1 2 3 n

Processamento Digital de Sinais Prof. Marcelo E. Pellenz pg. 113


Processamento Digital de Sinais: Teoria e Aplicações Prof. Marcelo E. Pellenz

X C (Ω )

− ΩN ΩN Ω

2π S (Ω )
T

− 2Ω S − ΩS 0 ΩS 2Ω S Ω

X S (Ω )
1
T

− 2Ω S − ΩS 0 ΩS 2Ω S Ω
(Ω S − Ω N )

X S (Ω )
1
T

− 3Ω S − 2Ω S − ΩS 0 ΩS 2Ω S 3Ω S Ω

(Ω S − Ω N )
ΩS − ΩN > ΩN ΩS > 2 ΩN

Processamento Digital de Sinais Prof. Marcelo E. Pellenz pg. 114


Processamento Digital de Sinais: Teoria e Aplicações Prof. Marcelo E. Pellenz

2 – REPRESENTAÇÃO DA AMOSTRAGEM
NO DOMÍNIO DA FREQUÊNCIA

+∞
s (t ) = ∑ δ (t − nT ) δ (t ) = função delta de Dirac
n = −∞

+∞
x s (t ) = x c (t ) s(t ) x s (t ) = ∑ x (nT ) δ (t − nT )
c
n = −∞

+∞ 1 +∞
X (Ω ) = ∫ x(t ) exp(− jΩt ) dt x(t ) = ∫ X (Ω ) exp( jΩt ) dΩ
−∞ 2π −∞

1
x1 (t ) ∗ x 2 (t ) ⇒ X 1 (Ω )X 2 (Ω ) x1 (t ) x 2 (t ) ⇒ X 1 (Ω ) ∗ X 2 (Ω )

2π +∞
1
S (Ω ) = ∑ δ (Ω − nΩ ) X s (Ω ) = X c (Ω ) ∗ S (Ω )

s
T n = −∞

+∞
1
X s (Ω ) = ∑ X (Ω − nΩ )
c s
T n = −∞

Processamento Digital de Sinais Prof. Marcelo E. Pellenz pg. 115


Processamento Digital de Sinais: Teoria e Aplicações Prof. Marcelo E. Pellenz

3 – RECONSTRUÇÃO DO SINAL DE BANDA LIMITADA


A PARTIR DE SUAS AMOSTRAS

+∞
x s (t ) = ∑ x[n] δ (t − nT )
n = −∞

y (t ) = x s (t ) ∗ hr (t ) = x r (t )

H r (Ω )

xs (t ) y (t )
ΩS ΩS

2 2

sen (πt / T )
hr (t ) =
πt / T
+∞
sen[π (t − nT ) / T ]
x r (t ) = ∑ x[n]
n = −∞ π (t − nT ) / T

+∞
s(t ) = ∑ δ (t − nT )
n = −∞

X H r (Ω )
xc (t ) xs (t ) xr (t )

Processamento Digital de Sinais Prof. Marcelo E. Pellenz pg. 116


Processamento Digital de Sinais: Teoria e Aplicações Prof. Marcelo E. Pellenz

X C (Ω )
1

− ΩN ΩN

X S (Ω )
1/ T
ΩS > 2 ΩN

− ΩS − ΩN ΩN ΩS

H r (Ω )
T

Ω N < Ω C < (Ω S − Ω N )

− ΩC ΩC

X r (Ω )
1

− ΩN ΩN

Processamento Digital de Sinais Prof. Marcelo E. Pellenz pg. 117


Processamento Digital de Sinais: Teoria e Aplicações Prof. Marcelo E. Pellenz

4 – TEOREMA DE NYQUIST

x c (Ω ) = 0 para Ω ≥ Ω N

xc (t ) é um sinal de faixa limitada

x[n] = xc (nT ) n = 0,±1,±2,...


ΩS = ≥ 2 ΩN
T

Ω N = Freqüência de Nyquist
2 Ω N = Taxa de Nyquist

Processamento Digital de Sinais Prof. Marcelo E. Pellenz pg. 118