Escolar Documentos
Profissional Documentos
Cultura Documentos
1 Ementa
Introduo ao processamento digital de sinais
Processo de digitalizao de sinais analgicos: converso A/D, teorema de Nyquist amostragem,
quantizao, codificao e reconstruo do sinal analgico (Converso D/A).
Sinais e Seqncias Discretas: sinais senoidais discretos/contnuos, normalizao de freqncias,
periodicidade de seqncias discretas senoidais, interpretao de freqncias altas e baixas,
interpretao da freqncia normalizada.
Operaes com seqncias discretas: seqncias discretas, impulso unitrio, degrau unitrio,
seqncias exponenciais reais/complexas, seqncia par e mpar.
Representao de Sinais e Sistemas Discretos no Domnio do Tempo/Freqncia: sistemas
discretos lineares invariantes no tempo (LTI), propriedades de sistemas LTI, convoluo Linear,
equao de diferenas.
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 Implementao
Aplicaes do Processamento Digital de Sinais em Sistemas de Comunicao Digital
2 Objetivos
Capacitar o aluno para a caracterizao, projeto e implementao de filtros digitais, anlise espectral
de sinais usando DFT e desenvolvimento de algoritmos para processamento digital de sinais
aplicados em sistemas de comunicao.
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 didtico (apostila) e tcnico (artigos) fornecidos pelo professor
4 Procedimentos de Avaliao
Trs notas parciais no semestre, onde cada nota ser composta pela nota da prova (peso 7) e da
nota dos trabalhos de laboratrio (peso 3) correspondentes ao perodo avaliado.
O contedo das provas acumulativo e tambm englobar as atividades e conceitos
desenvolvidos em laboratrio.
Trabalhos sero desenvolvidos em sala de aula e em laboratrio (Exerccios/Matlab/DSP), com a
entrega dos resultados e/ou relatrios ao final do experimento.
As datas das avaliaes sero estabelecidas com um prazo mnimo de uma semana de
antecedncia.
A mdia e freqncia mnimas para a aprovao sero regidas pelas regras da instituio.
Processamento Digital de Sinais: Teoria e Aplicaes Prof. Marcelo E. Pellenz
5 Observaes Importantes
O desenvolvimento de alguns experimentos de laboratrio ser feito em grupo. Aps a definio dos
grupos, eles no podem ser modificados. Um aluno do grupo ser escolhido pelo professor para
defender o trabalho no momento da apresentao.
Os relatrios devem ser entregues impreterivelmente na data e horrio limite estipulado pelo
professor. No sero aceitos relatrios fora do prazo.
Os alunos que faltarem as aulas de laboratrio devero realizar o experimento extra classe e
entregar os resultados/relatrios impreterivelmente na prxima aula.
6 Material de Laboratrio
2 fones de ouvido para desenvolvimento dos experimentos de laboratrio no Matlab e no kit DSP
NDICE
Introduo ao processamento digital de sinais .............................................................. 5
Digitalizao de Sinais e Normalizao de Freqncias ............................................... 28
Periodicidade de Seqncias Discretas ........................................................................ 30
Interpretao da Freqncia Normalizada ..................................................................... 31
Sinais de Freqncias Distintas com o mesmo Perodo ................................................ 32
Interpretao de Freqncias Altas e Baixas ................................................................ 33
Interpretao de Freqncias Altas e Baixas em Tempo Discreto ................................ 34
Operaes com Seqncias Discretas .......................................................................... 35
Funo Impulso Unitrio ................................................................................................ 35
Funo Degrau Unitrio ................................................................................................ 35
Pr-Lab 1 Representao e Operaes com Seqencias Discretas .......................... 36
Laboratrio 1 Representao e Operaes com Sinais em Tempo Discreto ............. 37
Pr-Relatrio para o Laboratrio 2 ................................................................................. 40
Decomposio em Seqncia Par e mpar .................................................................... 40
Sinais de Energia e Sinais de Potncia .......................................................................... 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
Correlao e Autocorrelao de Seqncias ................................................................. 42
Equao de Diferenas .................................................................................................. 43
Representao de sistemas usando diagrama de blocos .............................................. 43
Pr-Lab 2 Sistema de Discagem por Tons (DTMF) .................................................... 43
Laboratrio 2 Sinais e Sistemas Discretos ................................................................. 44
Pr-Relatrio para o Laboratrio 3 ................................................................................. 46
Anlise Espectral de Sinais Contnuos no Tempo .......................................................... 47
Anlise Espectral de Sinais Discretos no Tempo ........................................................... 48
Transformada Discreta de Fourier (DFT) ........................................................................ 53
Representao de Sistemas LTI no Domnio da Freqncia ......................................... 56
Laboratrio 3 Transformada de Fourier Discreta (DFT) .............................................. 57
Transformada de Fourier Discreta (DFT) ....................................................................... 58
Transformada-Z .............................................................................................................. 61
Regio de Convergncia (ROC) ..................................................................................... 61
Transformada-Z Inversa usando Fraes Parciais ......................................................... 63
Relao da Funo de Transferncia com a Equao de Diferenas ........................... 64
Projeto de Filtros Digitais FIR ......................................................................................... 65
Laboratrio 4 Aplicaes do Processamento Digital de Sinais ................................... 70
Laboratrio 5 Transformada-Z ..................................................................................... 74
Projeto de Filtros FIR ...................................................................................................... 76
Prefcio
Este curso ter por objetivo apresentar os fundamentos da teoria de processamento digital de sinais
aplicados rea de transmisso digital, demonstrando os conceitos e algoritmos atravs de simulao no
software Matlab e da implementao prtica (em tempo real) destes algoritmos usando o kit DSP
TMS320C5416. Os modernos dispositivos de comunicao (por exemplo: celulares/modems/rdios
digitais/placas de rede local/placas de WLAN (WiFi)/Bluetooth) realizam todo o processamento do sinal na
forma digital (modulao, demodulao, deteo de smbolo, recuperao de portadora, filtragem,
sincronismo, equalizao, deteo e correo de erros) utilizando DSPs. Os circuitos analgicos so
utilizados apenas na converso A/D-D/A, nos misturadores (mixers) para translao de freqncia e nos
estgios de amplificao de potncia. Esta a atual estratgia de desenvolvimento e implementao de
dispositivos de comunicao digital.
fase
freqncia freqncia
f1 f2
AULA 1 1-1
AULA 1 1-2
AULA 1 1-3
Programao
1 Hardware = Muitas Tarefas
Atualizao e Flexibilidade
DSP: Desenvolvimento de Novo Cdigo Atualizao do software
Sistema Analgico Soldar novos componentes
AULA 1 1-4
Restries ao uso do
Processamento Digital ?
Sinais de alta freqncia no podem ser
processados digitalmente devido a duas
razes:
Conversores Analgico-para-Digital (ADC) no
podem operar rpido o suficiente.
A aplicao pode ser tambm muito complexa
para operar em tempo real.
AULA 1 1-5
AULA 1 1-6
Tempo de Tempo de
Processamento Espera
n n+1
Tempo de Amostragem
AULA 1 1-7
AULA 1 1-8
AULA 1 1-9
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
Computador Digital
DSP
DAC SADA
ADC
1010 1001
AULA 1 1-11
MEMRIA
Chip DSP
Memria
Conversores (Opcional)
ADC Analgico para Digital
DSP Digital para Analgico
Portas de Comunicao
DAC Serial
Paralela
PORTAS
AULA 1 1-12
Multiplicao e Adio
Adio 1+2 = 3 Multiplicao 5*3 = 15
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
Instruo MAC sinais
AULA 1 1-13
TEMPO (ns)
600
500
400
300
200
100
0 5 ns
AULA 1 1-14
Equipamentos Hi-Fi
Brinquedos
Videofones
Modem/xDSL
Sistemas Telefnicos
Placas Grficas 3D
Processamento de Imagens
Telefones Celulares
Cmeras de Vdeo
AULA 1 1-15
AULA 1 1-16
Vantagens do
Processamento de Sinais (DSP)
Invariabilidade
Baixa sensibilidade para tolerncias de componentes
Baixa sensitividade para mudanas de temperatura
Baixa sensitividade para efeitos de envelhecimento
Desempenho praticamente idntico de unidade para unidade
Circuitos idnticos custam menos
AULA 1 1-17
Circuitos Analgicos no
Processamento Digital de Sinais
AULA 1 1-18
TEMPO f1 FREQNCIA
T2=1/f2 AMPLITUDE
AMPLITUDE
TEMPO f2 FREQNCIA
T = perodo f = freqncia
AULA 1 1-19
Sinais Reais
AMPLITUDE
TEMPO
FREQNCIA
-fm fm
2fm
AULA 1 1-20
Amostragem
2 Pegar amostras de dados
1.8 (sinais) com variao contnua
1.6
1.4 O Perodo 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
AULA 1 1-21
Informao Perdida
1.4
1.2 Amostras No-Peridicas
1
Pode perder informao
PREOS
0.8 PCOMPRA
0.6 A queda de preos entre
0.4 T3 e T4 fica imperceptvel
0.2
0 TEMPO A informao no pode ser
T1 T2 T3 T4T5 T6 interpretada facilmente
1.4
1.2 Amostragem Peridica
1
Pode perder informao
PRIOS
0.8 PCOMPRA
0.6 A queda de preos entre
0.4 T2 e T3 fica imperceptvel
0.2
0 TEMPO Fcil para interpretar
T1 T2 T3 T4
A chave a freqncia de
Variao Atual
Curva Inferida amostragem.
AULA 1 1-22
CASO 1 t fs>>fa f
fa fs 2fs
fs = Freqncia de amostragem
fa = Freqncia 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|
f
fs fm fs Componentes de freqncia
maiores que 1/2fs causam
Aliasing
aliasing (f>fm)
AULA 1 1-24
Digitalizando o Sinal
|A| amostre & retenha
ts 4ts 8ts t
AULA 1 1-25
Erro de Quantizao
|A|
Erro de Quantizao
A quantizao introduz erros
|A|
Quantizao No-Uniforme
AULA 1 1-26
Conversor Analgico-Digital
(ADC)
ADC por Aproximaes Sucessivas Voltagem
V3 11
V2 10
Vin - LGICA DE Vin
V1 01
CONTROLE
+ V0 00
tempo
Comparador
APROXIMAES Ajusta a sada DAC para V2 = 01
SUCESSIVAS
DAC gera tenso analgica 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
Flash ADC
Requer componentes de preciso
AULA 1 1-28
+ SADA
ANALGICA Possveis Entradas e Sadas para R1 = R
AULA 1 1-29
Suavizando a Sada
FILTRO
010001 DAC PASSA
BAIXA
|A| |A|
t t
AULA 1 1-30
Computadores Digitais
Arquitetura Von Neuman
A
PROGRAMA UNIDADE
E DADOS ENTRADA/ A = ENDEREO
ARMAZENADOS SADA LGICA
D ARITMTICA D = DADOS
Arquitetura Harvard
A A
UNIDADE ENTRADA/ DADOS
PROGRAMA
ARMAZENADO LGICA SADA ARMAZENADOS
ARITMTICA
D D
AULA 1 1-31
Sistemas de Numerao
Representao digital de nmeros
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
Decimal 3 em binrio
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 binrio
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
Binrio e Hexadecimal
Decimal 0, 1, 2 , ., 9
16 Decimal 0x10 Hex
Binrio 0, 1
20 Decimal 0x14 Hex
Hexadecimal 0, 1, 2 ,..,A,B,C,D,E,F
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
Representao de Nmeros
Inteiros com Sinal
Magnitude de nmeros 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
AULA 1 1-35
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
Twos complement 1 111 1111 1111 1111 1111 1111 1111 1110
Hex F F F F F F F E
AULA 1 1-36
Notao de Ponto-Fixo
Convenes:
Faixa do nmero est entre 1 e -1
O ponto decimal est sempre numa localizao fixa (ex: 0.74, 0.34, etc.)
Multiplicando uma frao por uma frao sempre resulta em uma frao
e no ir produzir um overflow (ex: 0.99 x 0.9999 = menor que 1)
Adies sucessivas podem causar overflow
Porque ?
O processamento de sinais intensivo em multiplicaes
A notao de ponto-fixo previne overflow
(til com uma pequena faixa dinmica de variao)
A notao de ponto-fixo mais barata
Como a notao de ponto-fixo realizada no DSP ?
A maioria dos DSPs de ponto-fixo so de 16 bits
A faixa de nmeros que podem ser representados de 32767 at -32768
O formato mais comum de ponto-fixo denominado Q15
Notao Q15
Bit 15 Bits 14 to 0
sign twos complement number
AULA 1 1-37
Formato Q15
Faixa Dinmica no Formato Q15
Regras de operao
Multiplicao
2 x 0.5 x 0.45 =
AULA 1 1-39
Caso Especial
s=0 X=0 e = -128 Expoente (e)
Decimal 0 1 127 -1 -128
Hex
twos comp. 00 01 7F FF 80
AULA 1 1-40
Nmeros Ponto-Flutuante
Calcula 1.0e0
Em hex 00 00 00 00
Em binria 0000 0000 0000 0000 0000 0000 0000 0000
s=0 Equao 1: X = 01.f x2e
f=0
Calcula 1.5e01
Em hex 03 70 00 00
Em binria 0011 0111 0000 0000 0000 0000 0000 0000
s=0 Equao 1: X = 01.f x2e
0011 e=3
s111 ... f = 0.5 + 0.25 + 0.125 = 0.875
AULA 1 1-41
Ponto Flutuante
Calcula -2.0e0
Em hex 00 80 00 00
Em binrio 0000 0000 1000 0000 0000 0000 0000 0000
s=1 Equao 2: X = ( -2.0 + 0.f ) x 2e
f=0
Adio
1.5 + (-2.0) = 0.5
Multiplicao
1.5e00 x 1.5e01 = 2.25e01 = 22.5
AULA 1 1-42
Faixa Dinmica
Faixas dos Sistemas de Numerao
Twos
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
AULA 1 1-43
Comparao
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
Famlia 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
AULA 1 1-45
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
f = w = TS = 2 f Normalizao de freqncias
FS
F 1
f = = w = 2 f = Normalizao de freqncias
2F 2
Portanto, a faixa de variao de valores para as freqncias do sinal em tempo contnuo e tempo
discreto so:
Sinais em Tempo
Sinais em Tempo Discreto
Contnuo
= 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
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
F2 F1
alias
(F1 + FS k ) alias
F1 k = 1, 2, 3, K (inteiro)
EXERCCIOS
Para um sinal senoidal (em tempo discreto) de freqncia, f , ser peridico, tem que ser satisfeita a
seguinte relao
cos( ) = cos( + 2 )
2 f N = 2 k , k inteiro
k w k 2 k
f = f = = w=
N 2 N N
2 k
Podemos interpretar a relao w = da seguinte forma: existem N freqncias distintas para as
N
quais as seqncias correspondentes so peridicas com perodo N.
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 freqncias diferentes, wk , e com o mesmo perodo N=8:
3
w0 = 0 w1 = w2 = w3 =
4 2 4
5 3 7
w4 = w5 = w6 = w7 =
4 2 4
EXEMPLO 4.1
A seguir so apresentadas trs seqncias discretas amostradas com freqncias distintas, que
possuem a mesma freqncia 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
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
x[n] = A cos(w0 n + )
0 w0 w0 OSCILAO
w0 2 w0 OSCILAO
Freqncias Baixas w0 = 2k
Freqncias Altas w0 = + 2k
Exemplo
w0 = 0 = 2
15
w0 = = 2 =
8 8 8
7
w0 = = 2 =
4 4 4
x1 [n] = cos n N =8
4
3
x 2 [n] = cos n N = 16
8
Neste caso aumentando a freqncia de w0 = 2 8 para w0 = 3 8 , o perodo tambm aumentou
de N = 8 para N = 16 . No caso de sinais contnuos, aumentando a freqncia, o perodo diminui.
2k
x 3 [n] = cos(n ) 1=
N
No existe k inteiro tal que N seja inteiro.
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
Multiplicao de seqncias: y[n] = x1 [n] x 2 [n] = {K, x1 [ 1] x 2 [ 1], x1 [0] x 2 [0], x1 [1] x 2 [1],K}
Adio de seqncias: y[n] = x1 [n] + x 2 [n] = {K, x1 [ 1] + x 2 [ 1], x1 [0] + x 2 [0], x1 [1] + x 2 [1],K}
-2 -1 0 1 2 n 0 1 2 3 4 n
A funo impulso em tempo discreto desempenha o mesmo papel da funo delta de Dirac
para sinais contnuos:
1, n = 0 1 [n]
[n] =
0, n 0
-2 -1 0 1 2 n
Qualquer seqncia discreta, x[n] , pode ser escrita como um somatrio de funes impulsos:
+
x[n ] = x[k ] [n k ]
k =
HTTP://WWW.BROOKSCOLE.COM/CGI-WADSWORTH/COURSE_PRODUCTS_WP.PL?FID=M20B&PRODUCT_ISBN_ISSN=0534371744&DISCIPLINE_NUMBER=9
x[n ] = {2 , 1 , - 1 , 0 , 1 , 4 , 3 , 7}
A seta indica que a amostra est na posio 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]
Utilizando o programa em anexo, trace os grficos das seqncias exponenciais complexas, para os
seguintes parmetros:
= 0.5 = /6 N = 50
= 1 = / 4 N = 100
= -0.5 = /4 N = 30
= 0 = /6 N = 60
Interprete o conceito de freqncias altas e baixas. Se estas seqncias forem sintetizadas pelo
conversor D/A para uma freqncia de amostragem especificada, FS , quais as freqncias dos
sinais analgicos gerados (Hz) ?
0 = / 4 0 = 2 / 4 0 = 3 / 4 0 = 0 = 5 / 4
FS = 8 kHz
FS = 16 kHz
(Preencher Tabela)
EXERCCIO 6 Analisar o funcionamento das seguintes funes, fornecidas com o livro Digital
Signal Processing using Matlab (V. K. Ingle and J. G. Proakis):
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]
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.
EXERCCIO 8 Trace o grfico das seguintes seqncias discretas e determine se estes sinais so
peridicos.
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 Aplicaes Prof. Marcelo E. Pellenz
12.
PR-RELATRIO PARA O LABORATRIO 2
Resolver os problemas P2.1 (itens b,c), P2.2 (itens a, b,c) da pg. 35 do livro Digital Signal
Processing using MATLAB (Vinay K. Ingle and John G. Proakis).
x[n ] = {1 , 2 , 3 , 4 , 5 , 6 , 7 , 6 , 5 , 4 , 3, 2, 1}
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);
1 1
xe [n ] = [x[n] + x[ n]] xo [n] = [x[n] x[ n]]
2 2
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
N 1
1
x[n]
2
Px =
N n =0
x[n] T{ } y[n]
[n] h[n]
[n k ] h[n k ]
x[n ] = x[k ] [n k ] y[n] = T {x[n]} = T x[k ] [n k ]
k = k =
y[n ] = x[k ] T { [n k ]}
k =
PROPRIEDADES DA CONVOLUO
S= h[k ] <
k =
Um sistema BIBO implica que para uma seqncia de entrada limitada teremos uma sada
limitada,
x[n] < y[n] < x, y
rx , x [l ] = x[n] x[n l ] = x[l ] x[ l ] Autocorrelao
n =
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 ]
x[n] y[n]=x[n-1]
Z-1 Atraso unitrio
y[n]=x[n+1]
Z Avano unitrio
697 Hz 1 2 3 A Implementar no Matlab um programa para gerar os
tons de freqncia (DTMF) utilizados nos sistemas
de discagem. Utilize uma freqncia de amostragem
770 Hz 4 5 6 B de 8kHz. A durao de cada tom deve ser de 125ms.
Utilize a funo sound do Matlab para escutar os
tons gerados.
852 Hz 7 8 9 C
941 Hz * 0 # D
Qualquer seqncia discreta real, x[n] , pode ser decomposta em suas componentes par e mpar:
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])
Para sistemas lineares invariantes no tempo (LTI Linear Time-Invariant Systems), podemos
relacionar os sinais de entrada e sada do sistema atravs da soma de convoluo, definida pela
equao:
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 sada y[n] fazendo a convoluo do sinal de entrada, x[n] , com a resposta ao impulso do sistema,
h[n] . Utilize a funo y=conv(x,h) do Matlab para calcular a convoluo linear entre duas
seqncias discretas de durao finita. A funo conv assume que as duas seqncias 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 ] - Sada do sistema
k =
No programa trace os grficos das seqncias x[n] , h[n] e y[n] . Interprete graficamente a operao
de convoluo.
Trace o grfico de x[n] , h[n] e y[n] = x[n] h[n] . Interprete graficamente a convoluo.
A correlao uma operao muito usada em aplicaes de processamento digital de sinais. uma
medida do grau de similaridade entre duas seqncias (sinais).
rxy [l ] = x[n] y[n l ] = y[l ]* x[ l ]
n =
A autocorrelao nos d uma medida de auto-similaridade do sinal com verses deslocadas dele
mesmo:
rxx [l ] = x[n] x[n l ] = x[l ]* x[ l ]
n =
O clculo da correlao e autocorrelao podem ser implementados usando a convoluo.
Considere a seqncia x[n] = [ 3 11 7 0 - 1 4 2] , 3 n 3 e a seqncia y[n] como sendo uma
verso deslocada e com rudo da seqncia x[n] , ou seja, y[n] = x[n 2] + w[n] .
Exemplo de aplicao do filtro de mdia mvel para filtragem de um sinal com rudo:
M 1
1
y[n ] = x[n k ]
M i =0
% Filtro de mdia mvel 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');
Um sistema discreto linear pode ser caracterizado por uma equao linear de coeficientes constantes
na forma
N M
ak y[n k ] = bk x[n k ]
k =0 k =0
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).
Sinais contnuos peridicos (sinais de potncia) podem sem expressos pela srie 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
2 Transformada de Fourier
1
x(t ) =
2
+
( )
X e jw e jw t dw
( )
X e jw =
+
x(t ) e jw t dt
Sinais discretos peridicos, x[n] = x[n + N ] , podem sem expressos pela srie 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
2k
e j 2 k n / N = e jwk n wk =
N
0 wk < 2 0 k N 1 0 F FS
N N
wk < <k
2 2
+
( ) 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 ) ( )
Seqncia DTFT
[n] 1
1
u[n] + [w + 2k ]
1 e jw k =
e jw0 n
2 [w w
k =
0 + 2 k ]
1
n u[n] <1
1 e jw
Exemplo
1
x[n] = (0,5) n u[n] ( )
X e jw =
1 0,5 e jw
1.8
1.6
1.4
Mdulo
1.2
0.8
0.6
-3 -2 -1 0 1 2 3
Frequncia Normalizada
0.6
0.4
0.2
Fase (radianos)
-0.2
-0.4
-0.6
-3 -2 -1 0 1 2 3
Frequncia Normalizada
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
Frequncia Normalizada
Parte Imaginria
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
Frequncia Normalizada
0.9
0.8
0.7
0.6
Mdulo
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
Frequncia 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
Frequncia Normalizada
-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
Frequncia Normalizada
x[n] , 0 n N 1 X (e jw )
N 1 2kn
X [k ] = X (e ) j
jw
2k = x[n] e N
k = 0,1,K, N 1
w=
N n =0
1 N 1
x[n ] = X [k ] WNkn n = 0,1,K, N 1
N n =0
2
j
A seqncia 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)
Representao Matricial
N 1
X [k ] = x[n ] WNkn k = 0,1,K, N 1
n =0
X = DN x DFT de N pontos
x = DN1 X IDFT de N pontos
1 1 1 L 1
1 W 1 N 1 x[0] X [0]
WN2 L WN x[1]
= DN1 X [1]
N 1
DN = 1 WN2 WN4 L WN2( N 1) DN1 = 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]
Seja ( )
X e jw a DTFT de uma seqncia x[n] de comprimento N . Se desejarmos calcular
2k
( )
X e jw numa escala densa de freqncias wk =
M
, k = 0,1,K, M 1 , onde M >> N , teremos
N 1 N 1 2kn
( )
X e jw = x[n] e jwk n = x[n] e
j
M
n =0 n =0
M 1 2kn
( ) = x [n] e
X e jw
e
j
M
DFT de M pontos
n =0
Propriedades da DFT
x[k ] h[ n k ]
k =0
N
G[k ] H [k ]
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
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
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
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
( )
A resposta em freqncia, H e jw , uma funo complexa com perodo 2 :
+
( ) h[n] e
H e jw = jwn
( )
= H e jw e j ( w )
n =
Para h[n] real, H (e jw ) uma funo par e (w) uma funo mpar. A derivada da
resposta em fase denominada de atraso de grupo, (w) . A funo de atraso de grupo fornece uma
medida da linearidade da funo 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
Para o clculo do espectro de freqncias de sinais contnuos, utilizamos a srie de Fourier (sinais
peridicos/potncia) e a transformada de Fourier (sinais no peridicos/energia). A transformada de
Fourier de particular interesse porque na prtica utilizamos sinais de energia para transmisso
digital. As expresses da transformada e transformada inversa de Fourier so:
+
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 seqncia em tempo discreto, x[n] , as
expresses 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
d
2
x[n ] = {1 , 2 , 3 , 4 , 5}
b)
Analise a periodicidade do grfico do espectro e responda as seguintes questes:
a) Entre que faixa de valores de freqncia normalizada, = 2 f , devemos analisar os grficos
de espectro
b) Se desejarmos a informao do espectro em hertz, como podemos proceder ?
c) Atravs das observaes dos grficos de espectro, classifique o mdulo, fase, parte real e parte
imaginria como funo par ou mpar.
1
( )
X e jw =
1 0.5 e jw
Desenhe os grficos da parte real, imaginria, mdulo e fase das DTFTs, para k pontos de
freqncia. Considere k = 256, 512, 1024, 2048.
Como podemos observar, o clculo do espectro de uma seqncia em tempo discreto deve ser feito
analiticamente atravs da DTFT. Para termos um clculo no analtico (computacional), o que
implementa a Transformada Discreta de Fourier (DFT), que so 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
Exerccio 2 - Determine a DFT de M pontos, U [k ] , da seguinte seqncia 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
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');
3
( )
Exerccio 3 - Determine a DTFT X e jw de uma seqncia 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');
Exerccio 4 Filtro FIR Passa Alta O programa a seguir implementa um filtro FIR de
comprimento 3, definido pela equao de diferenas,
Exerccio 5 Filtro FIR Passa Baixa Utilize o mesmo programa do Exerccio 4 substituindo
apenas os novos coeficientes do filtro, b=[6.7619 -12.4563 6.7619].
( )
H e jw = (2 cos + ) e jw = -6.76195 = 13.456635
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('Frequncia Angular Normalizada');
Transformada-Z
Nas sees anteriores estudamos a Transformada de Fourier em Tempo Discreto (DTFT)
para representar sinais discretos usando seqncias exponenciais complexas. A DTFT de um
sistema linear invariante no tempo, com resposta ao impulso h[n] , denominada de resposta em
( )
freqncia do sistema, H e jw . Contudo, existem duas restries para a abordagem da DTFT. A
primeira que para muitos sinais teis na prtica como u[n] e n u[n] a DTFT no existe (no
converge). A segunda que a resposta transitria de um sistema devido a condies iniciais ou
alteraes da entrada no podem ser calculadas usando a abordagem da DTFT. Portanto utilizamos
uma extenso 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
( )
H (z ) z =e jw = H e jw .
2 Para uma seqncia limitada a esquerda (zero para n < n0 ), a regio de convergncia sempre a
parte externa de um crculo de raio Rx . Para n0 0 a seqncia causal.
x[n] = a n u[n]
3 Para uma seqncia limitada a direita (zero para n > n0 ), a regio de convergncia sempre a
parte interna do crculo de raio Rx + .
x[n] = b n u[ n 1]
4 Para uma seqncia no limitada a direita nem esquerda, a regio de convergncia um anel,
Rx < z < Rx + .
5 Seqncias que so zero para n < n1 e n > n2 so chamadas de seqncias com durao finita. A
regio de convergncia para tais seqncias todo o plano Z. Se n1 < 0 , ento z = no est na
regio de convergncia. Se n2 > 0 , ento z = 0 no est na regio de convergncia
7 Existe pelo menos um plo no limite da regio de convergncia. A ROC limitada por plos.
[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
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
Plos z = pl H ( pl ) =
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 estvel se e somente se o crculo de raio unitrio est dentro da
regio de convergncia (ROC) de H ( z )
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
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]
Exerccio 3 Determine os primeiros 3 termos da resposta ao impulso, h[n] , do filtro IIR causal
com a seguinte funo de transferncia:
H (z ) =
(2 + 0,4 z )(0,5 + 2 z )
1 1
(1 2 z + 2 z )(1 0,5 z )
1 2 1
a) Selecionar um filtro ideal (no 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 incio do vetor de amostras, h[n], para iniciar em n=0
(equivale a associar uma fase linear)
1, w wC
( )
H LP e jw = Resposta em freqncia do filtro ideal
0, wc < w
sen (wc n )
hLP [n] = n Resposta ao impulso do filtro ideal
n
sen (wc (n M ) )
hLP [n] = hLP [n] w[n] = 0 n N 1
(n M )
w[n] = janela simtrica em relao a M entre 0 n N 1
H LP (e jw ) = {H LP (e jw ) W (e jw )} e jMw (convoluo)
Processamento Digital de Sinais Prof. Marcelo E. Pellenz pg. 66
Processamento Digital de Sinais: Teoria e Aplicaes Prof. Marcelo E. Pellenz
wc
1 , n = 0
hHP [n] = Resposta ao impulso ideal
sen( wc n)
, n >0
n
( w wc1 )
1 c2 , n=0
hBS [n] = Resposta ao impulso ideal
sen( wc1 n) sen( wc 2 n)
, n >0
n n
Estes mtodos so para filtros com 2 nveis de amplitude. O mtodo pode ser generalizado para
filtros FIR multinveis (multibanda).
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
, 0n
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
2n
0,54 0,46 cos , 0 n N 1
w[n] = N-1
0, fora
5 Janela de Blackman
2n 4n
0,42 0,5 cos + 0,08 cos , 0 n N 1
w[n] = N-1 N-1
0, fora
Os parmetros das janelas que definem o desempenho do filtro FIR so interpretados analisando-se
o espectro da janela.
ASL = diferena em dB entre as amplitudes do lbulo lateral mais largo e o lbulo principal
(nvel relativo dos lbulos laterais)
- Para larguras pequenas do lbulo principal temos transies mais rpidas na resposta do filtro.
- Para reduzirmos o ripple (oscilao) na banda passante e na banda de corte, a rea sob os lbulos
laterais deve ser pequena.
c
w c = constante
M
A tabela abaixo ilustra o desempenho entre as janelas fixas para wc = 0,4 e M = 128 :
Janelas Ajustveis
Nas janelas fixas o ripple fixo, mas com as janelas ajustveis possvel controlar o ripple.
1 Janela de Dolph-Chebyshev
1 1 M
k 2kn
w[n] = + 2 Tk cos cos
2M + 1 k =1 2M + 1 2 M + 1
Amplitude do lbulo lateral 1 1
= = cosh cosh 1
Amplitude do lbulo 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 ( )
= parmetro ajustvel
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
Exerccio - Projete um filtro digital FIR passa baixa, usando a janela de Kaiser. As
especificaes do filtro so w p = 0.3 , ws = 0.4 e s = 50 dB .
EXEMPLOS DE APLICAES
Filtro de Eco: Um filtro de eco possui uma equao de diferenas no formato:
H (z ) = 1 + a z D
h[n] = [n] + a [n D ]
Escolha o nmero 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 freqncia 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 no
seja mais perceptvel distinguir do sinal original. Calcule a quantos milisegundos de atraso este
valor corresponde.
Implemente um filtro que adicione 3 ecos sucessivos, que possui a equao de diferenas no
formato:
y[n] = x[n] + a x[n D ] + a 2 x[n 2 D ] + a 3 x[n 3D ]
H ( z ) = 1 + a z D + a 2 z 2 D + a 3 z 3 D
Implemente a forma no recursiva deste filtro escolhendo D tal que o atraso seja 0,2s. Utilize a=0,5
and trace a resposta em freqncia 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 Reverberao:
Se uma quantidade infinita de ecos for adicionada ao sinal, o efeito imita a reverberao natural de
uma sala e fornece o filtro pente (comb filter) IIR ou reverberador. A equao de diferenas e a
funo de transferncias so:
1
H (z ) =
1 a z D
Novamente, escolha D tal que o atraso seja 0,125s, especifique a=0,5 e trace o grfico da resposta
em freqncia 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.
N=201 FT = 8 kHz
Segunda Valor inteiro Erro
Valor
harmnica de k mais absoluto
exato de k
(Hz) prximo 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
( )
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 so utilizadas duas freqncias distintas para representar cada dgito. O
programa a seguir calcula a DFT de cada freqncia. Podemos observar que existe um
espalhamento da energia em torno da freqncia 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
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);
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
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
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 funo racional em z 1 , ou seja, como uma razo de
polinmios 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
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 estvel se e somente se o crculo de raio unitrio est dentro da
regio de convergncia (ROC) de H ( z )
Y (Z ) = H (Z ) X (Z )
N M
y[n ] + a k y[n k ] = bl x[n l ] Equao de Diferenas
k =1 l =1
Y (z )
b l z l
B(z )
H (z ) = = l =0
= Funo de Transferncia
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
z +1
H (z ) = 2
z 0,9 z + 0,81
Determine:
Determine:
a) Expresso da funo de transferncia, H ( z )
b) Traar o grfico da resposta em freqncia, H (e jw ) (mdulo/fase) (freqz)
c) Escreva H ( z ) na forma fatorada utilizando expanso em fraes parciais (residuez)
d) Traar o diagrama de plos e zeros (zplane)
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
h[n] = h[N n] , 0 n N
N
H(z) = h[n] z n Funo de Transferncia
n =0
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
( ) ( ) ( )
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
Caractersticas:
h[n] = h[N n] 0n N
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 j2 c[n] sen (wn )
n=1
N N
c[n] = 2 h n , 1 n
2 2
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
Nos experimentos de laboratrio utilizaremos o TMS320C5416 DSP STARTER KIT da Texas Instruments
(TI).
NO IMPRIMA estes documentos, apenas utilize na forma eletrnica. Para maiores informaes sobre a
famlia de
processadores TMS320C54xx, consulte o site da TI. (www.ti.com)
Documentao Tcnica
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 Laboratrio
V para o item Software Overview --> BSL API Summary --> Codec API
Este tpico importante para os trabalhos futuros de laboratrio para entender como utilizar a
API
para escrever programas com I/O de streams de udio para aplicaes do DSP.
Atividade 2 - Ler os captulos 2, 3, 4 e 6 do help do CCS DSK: Code Composer Studio Overview.
Captulo 2 - Developing a Simple Program
Captulo 3 - Developing a DSP/BIOS Program
Captulo 4 - Testing Algorithms and Data from a file
Captulo 6 - Analyzing Real-Time Behavior
a) Selecionar um filtro ideal (no 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 incio do vetor de amostras, h[n] , para iniciar em n=0
(equivale a associar uma fase linear)
1, w wC
( )
H LP e jw = Resposta em freqncia do filtro ideal
0, wc < w
sen (wc n )
hLP [n] = n Resposta ao impulso ideal
n
sen (wc (n M ) )
hLP [n] = hLP [n] w[n] = 0 n N 1
(n M )
w[n] = janela simtrica em relao a M entre 0 n N 1
( ) { ( ) ( )}
H LP e jw = H LP e jw W e jw e jMw
Estes mtodos so para filtros com 2 nveis de amplitude. O mtodo pode ser generalizado
para filtros FIR multinveis.
2 Janela de Bartlett
2n N 1
, 0n
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
2n
0,54 0,46 cos , 0 n N 1
w[n] = N-1
0, fora
5 Janela de Blackman
2n 4n
0,42 0,5 cos + 0,08 cos , 0 n N 1
w[n] = N-1 N-1
0, fora
ASL = diferena em dB entre as amplitudes do lbulo lateral mais largo e o lbulo principal
(nvel relativo dos lbulos laterais)
Para larguras pequenas do lbulo principal temos transies mais rpidas na resposta do
filtro.
Para reduzirmos o ripple na banda passante e na banda de corte, a rea sob os lbulos
laterais deve ser pequena.
Para as janelas fixas (retangular/hanning/hamming/blackman/Bartlett) o valor do ripple no
depende do comprimento da janela.
c
w c = constante
M
w=blackman(N) w=hamming(N)
w=hanning(N) w=chebwin(N,R)
w=kaiser(N,BETA)
N=comprimento da janela
b=fir1(L,Wn)
b=fir1(L,Wn,filtertype)
b=fir1(L,Wn,window)
b=fir1(L,Wn,filtretype,window)
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');
TAREFAS
a) Analisar o espectro das janelas e anotar numa tabela os valores da largura do lbulo principal,
ML e a atenuao relativa do lbulo lateral, ASL .
Projetar os seguintes filtros digitais e converter os coeficientes para a notao de 16 bits (Q15)
utilizada pelo DSP. Os coeficientes devem estar no formato final hexadecimal. Os nmeros
negativos devem ser representados utilizando a notao complemento de 2.
Ao final da aula devem ser entregues as tabelas com os coeficientes projetados no formato final
para implementao no kit DSP TMS320C5416.
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 2k 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 2k M
j 2Mk H [0], k =0
H e = H [k ] =
H [M-k ],
k = 1,...,M 1
H [k ] = H r [k ] e jH [k ]
H [0], k =0
H r [k ] = r
H r [M k ], k = 1,...,M 1
M 1 2k M 1
2 M , k = 0 ,...,
H [k ] = 2
M 1 2 M 1
+ (M k ), k= + 1,...,M 1
2 M 2
M 1 2k 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 ]}
a) O erro de aproximao, ou seja, a diferena entre a resposta ideal e a projetada, zero nas
freqncias de amostragem.
b) O erro de aproximao nas outras freqncias depende do formato da resposta ideal. Quanto mais
abrupto a resposta ideal, maior o erro.
c) O erro maior prximo dos limites das faixas de transio e menor dentro das faixas.
Verificar Grfico
a) Selecionar um filtro ideal (no 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 incio do vetor de amostras, h[n] , para iniciar em n=0
(equivale a associar uma fase linear)
(w + ws ) (w wp )
s = 20 log10 ( s ) dB
p s
wc = f =
2 2
2 Projete um filtro FIR passa baixa usando a janela de kaiser para os mesmos parmetros 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');
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 nveis diferentes de amplitude:
- 0.3 na faixa de freqncia de 0 a 0.28
- 1 na faixa de freqncia de 0.3 a 0.5
- 0.7 na faixa de freqncia de 0.52 a 1
5 Projete um filtro digital FIR, passa baixa, usando o mtodo da srie de Fourier truncada,
com as seguintes especificaes:
p = 1 rad/s s = 2 rad/s
p = 0.1 dB s = 45 dB
T = 2 FT = 10 rad/s -> Freqncia 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 freqncia dos
filtros projetados para cada caso.
NO IMPRIMA estes documentos, apenas utilize na forma eletrnica. Para maiores informaes sobre a famlia de
processadores TMS320C54xx, consulte o site da TI. (www.ti.com)
Documentao Tcnica
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 Laboratrio
Atividade 1 - Abrir o arquivo de help c:\ti2\docs\hlp\c5416dsk.hlp
Ler a descrio geral do kit TMS320C5416 e executar os exemplos do tutorial
que utilizam o DSP/BIOS (Real-Time Multitasking Kernel):
V para o item Software Overview --> BSL API Summary --> Codec API
Este tpico importante para os trabalhos futuros de laboratrio para entender como utilizar a API
para escrever programas com I/O de streams de udio para aplicaes do DSP.
Atividade 2 - Ler os captulos 2, 3, 4 e 6 do help do CCS DSK: Code Composer Studio Overview.
Captulo 2 - Developing a Simple Program
Captulo 3 - Developing a DSP/BIOS Program
Captulo 4 - Testing Algorithms and Data from a file
Captulo 6 - Analyzing Real-Time Behavior
Lab. 2 TMS320C5416
Laboratrio de Efeitos de udio
Este laboratrio trata de efeitos de udio. Os algoritmos so 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 laboratrio e escutar um trecho de musico do CD player. Na parte 1
usaremos o Matlab para implementao e processamento de udio (no em tempo real) usando
arquivos WAV. Isso permite um bom entendimento dos efeitos de udio e seus algoritmos. Na parte
2 os algoritmos sero 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 prpria voz para testar os algoritmos. Grave no modo mono com 8 bits de resoluo na
freqncia de amostragem de 8kHz e que o arquivo seja salvo no formato WAV.
Equipamentos Necessrios:
- PC com Matlab e Toolbox de Processamento Digital de Sinais
- Microfone e alto-falante (fone de ouvido)
- CD player porttil
- KIT DSP TMS320C5416
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.
Execute o experimento com valores de D cada vez menores e escute o sinal com eco ate que no
seja mais perceptvel distinguir do sinal original. Calcule a quantos milisegundos de atraso este
valor corresponde.
Implemente um filtro que adicione 3 ecos sucessivos, que possui a equao de diferenas no
formato:
H ( z ) = 1 + a z D + a 2 z 2 D + a 3 z 3 D
Implemente a forma no recursiva deste filtro escolhendo D tal que o atraso seja 0,2s. Utilize a=0,5
and trace a resposta em freqncia 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 Reverberao:
Se uma quantidade infinita de ecos for adicionada ao sinal, o efeito imita a reverberao natural de
uma sala e fornece o filtro pente (comb filter) IIR ou reverberador. A equao de diferenas e a
funo de transferncias so:
1
H (z ) =
1 a z D
Novamente, escolha D tal que o atraso seja 0,125s, especifique a=0,5 e trace o grfico da resposta
em freqncia 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.
Seo 2a
3 Reverberao: Simula uma e mltiplas reflexes das paredes de uma sala. Introduz a
configurao usada em filtros de resposta ao impulso infinita (IIR)
4 Crossover eletrnico: Divide um sinal de udio em bass e treble e usa para acionar os diferentes
alto-falantes. Usa um filtro FIR e o usurio muda para selecionar 15 diferentes freqncias de
crossover entre 100Hz e 6,4kHz
O DSK usa um codec stereo Burr Brown PCM3002 para entrada e sada de sinais de udio. O codec
amostra os sinais analgicos 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 analgicos no line out e alto-falantes para que o usurio
possa ouvir a sada.
A biblioteca de perifricos on-board fornece suporte de alto nvel para as aplicaes do DSP
rodando no C5416 DSK. Esta biblioteca habilita o usurio a desenvolver aplicaes que podem
controlar e operar os perifricos da plataforma DSK. O suporte dos perifricos on-board inclui:
2- Selecione Project -> New. Para o nome do projeto digite a palavra template. Selecione o
boto Finish. O novo projeto ser criado. Este procedimento mostrado na Figura 1. Faa
uma anotao do diretrio em que o projeto est sendo armazenado ento minimize a janela
do CCS. Os projetos devem ser criados em diretrios especficos, dentro do diretrio
myprojects.
3- Usando o Windows Explorer selecione o diretrio onde o novo projeto foi criado, por
4- exemplo, c:\ti\myprojects\template.
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.
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, ento pressione a tecla Open. Caso contrrio pressione Cancel.
11- Apenas necessrio 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, ento pressione a tecla Open.
Caso contrrio pressione Cancel.
13- Selecione Project -> Build Options. Selecione a pasta Compiler. Selecione Advanced na
janela Category. Habilite a opo 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.
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
diretrio 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 opo Yes.
17- Selecione Option -> Customize -> Program Load Options. Habilite a opo 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 cdigo principal. Selecione Debug -> Run
para executar o projeto.
Fs=24kHz
Freqncia
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 analgica, com freqncia ajustada atravs do gerador
de funes
c) Ajustar no programa a freqncia correta de amostragem (Fs) dos conversores A/D e D/A
(codec)
Tpico Descrio
Modulador AM-DSB Implementar um modulador AM utilizando o DSP. Sintetizar via
software a freqncia de portadora de 6kHz e gerar o sinal modulado
AM para um sinal analgico de informao (sinal modulante) obtido do
conversor A/D. O sinal analgico no deve ter freqncia superior a
2kHz. O sinal modulado deve ser convertido para analgico (D/A) e
visualizado no osciloscpio. (Fs=48kHz)
Modulador AM DSB-SC Implementar um modulador AM utilizando o DSP. Sintetizar via
software a freqncia de portadora de 12kHz e gerar o sinal modulado
AM para um sinal analgico de informao (sinal modulante) obtido do
conversor A/D. O sinal analgico no deve ter freqncia superior a
2kHz. O sinal modulado deve ser convertido para analgico (D/A) e
visualizado no osciloscpio. (Fs=48kHz)
Modulador 4-ASK Sintetizar o sinal de portadora de 8kHz via software. Escolher uma
seqncia de smbolos de informao a serem modulados (10 smbolos)
e gerar o sinal modulado 4-ASK. A seqncia de informao escolhida
deve ser modulada periodicamente, por questes de visualizao no
osciloscpio. Considerar uma taxa de transmisso de 200 baud. O sinal
modulado deve ser convertido para analgico (D/A) e visualizado no
osciloscpio. (Fs=48kHz)
Modulador 4-PSK Sintetizar o sinal de portadora de 3kHz via software. Escolher uma
seqncia de smbolos de informao a serem modulados (10 smbolos)
e gerar o sinal modulado 4-PSK. A seqncia de informao escolhida
deve ser modulada periodicamente, por questes de visualizao no
osciloscpio. Considerar uma taxa de transmisso de 500 baud. O sinal
modulado deve ser convertido para analgico (D/A) e visualizado no
osciloscpio. (Fs=48kHz)
Modulador 4-FSK Sintetizar as freqncias do modulador via software:
1,5kHz 1,7kHz 1,9kHz 2,1kHz
Escolher uma seqncia de smbolos de informao a serem modulados
(10 smbolos) e gerar o sinal modulado 4-FSK. A seqncia de
informao escolhida deve ser modulada periodicamente, por questes
de visualizao no osciloscpio. Considerar uma taxa de transmisso de
300 baud. O sinal modulado deve ser convertido para analgico (D/A) e
visualizado no osciloscpio. (Fs=48kHz)
Modulador 8-QAM Sintetizar via software as freqncias das portadoras que formam os
sinais base (seno/coseno) de 5kHz e gerar o sinal modulado 8-QAM.
A seqncia de informao escolhida deve ser modulada periodicamente,
por questes de visualizao no osciloscpio. Considerar uma taxa de
transmisso de 1000 baud. O sinal modulado deve ser convertido para
analgico (D/A) e visualizado no osciloscpio. (Fs=48kHz)
Analisador de Espectro
Modulador AM SSB
Costas Loop
Squaring Loop
1. Introduo
Por muitos anos a modulao em amplitude foi o esquema de modulao padro devido ao
baixo custo e fcil implementao. Para a modulao e demodulao em amplitude so utilizados
multiplicadores, que so implementados com semicondutores. Uma abordagem mais moderna da
modulao em amplitude o uso de tcnicas de processamento digital de sinais. A gerao da
portadora e tambm a multiplicao pelo sinal de informao so feitos pelo software do DSP. As
tcnicas de modulao em amplitude (AM/ASK) so ainda muito utilizadas devido economia em
largura de banda.
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 multiplicao do sinal f (t ) pela freqncia da portadora w0 desloca o espectro
F (w) por w0 . Este tipo de modulao chamado de modulao em amplitude.
onde m chamado de ndice de modulao (razo entre o pico do sinal modulante e o pico da
portadora), e A a amplitude do sinal de portadora. Sinais usando modulao em amplitude padro
podem ser demodulados por meio de diodos.
Nesta modulao o sinal de portadora suprimido pois no contm informao til e consome
muita energia na transmisso.
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
a) Oscilador Digital
O oscilador para o sinal de portadora foi implementado por meio de um filtro digital IIR
(recursivo) de segunda ordem. A equao diferencial de um oscilador analgico 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
1
onde c1 = 2 e d T cos(wT ) , c2 = e 2d T , T =
, w = 2 FS e d = 0 = damping .
FS
Para a capacidade de oscilao os plos da transformada-Z devem estar sobre o crculo de raio
unitrio, o que no dado pela aproximao de diferenas recursiva. A freqncia da portadora do
sinal pode ser facilmente verificada comparando com a freqncia da modulao. A razo deve ser
1/10.
N 1
H ( z ) = h[n] z n
n =0
1000
wC = 2 = 0,04
50000
A resposta em freqncia do filtro ideal :
e jw , w 0,04 N 1
He ( )
jw
= onde =
0, 0,04 < w 2
1
H (e ) e
h[n] = jw jwn
dw
2
1 0, 04 1 0,04
h[n] = e jw e jwn dw + 0 e jwn dw
2 0 2 0
1 0 , 04 1 0, 04 jw( n )
h[n ] = 2 0
e jw e jwn dw = e dw
2 0
0 , 04
1 e jw( n ) 1
h[n ] =
2 j (n ) 0
=
2j (n )
(
e j 0, 04 ( n ) 1 )
1
h[n] = sen[0,04 (n )]
(n )
A partir desta equao os coeficientes podem ser diretamente calculados pois nenhuma funo de
janela foi usada. Para calcular o coeficiente central do filtro aplicamos o teorema de L`Hospital para
resolver a indeterminao (0/0):
Processamento Digital de Sinais Prof. Marcelo E. Pellenz pg. 106
Processamento Digital de Sinais: Teoria e Aplicaes Prof. Marcelo E. Pellenz
sen[A (n )] 0
h[n] = = quando n = diferencie separadamente o numerador e o denominador
(n ) 0
A [cos( An A ) )]
h[n ] =
h[n] = A = 0,04
5. Realizao usando C
a) O sinal de modulao
b) O Oscilador Digital
1
onde c1 = 2 e d T cos(wT ) , c2 = e 2d T , T = , w = 2 FS e d = 0 = damping .
FS
2 10kHz
c1 = 2 1 cos = 0,6180339
50kHz
c2 = 1
x[0]=0.6180339*x[1]-x[2]+i;
x[2]=x[1]; // shifting oscillator array
x[1]=x[0];
c) Modulao e Demodulao
A varivel ampmod usada para alterar entre modulao em amplitude normal e balanceada. O
valor especificado como 0 para modulao balanceada e 1 para modulao no balanceada. O
fator 1 e 0.5 (=2-1.5) so escolhidos para obter-se resultados apropriados de modulao, porque a
razo entre sinal modulado e portadora deve ser entre 0<m<1, para obtermos resultados visveis da
modulao AM padro. Os valores para modulao balanceada foram A=2 e m=1:
#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];
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);
}
Anexo A
Teorema de Nyquist
1 AMOSTRAGEM PERIDICA
RECONSTITUIO
DO SINAL CONTNUO
Considere um sinal contnuo xC (t ) . O sinal discreto no tempo pode ser obtido atravs da
amostragem peridica do sinal xC (t ) ,
onde
TS = Perodo de amostragem
f S = 1 / TS = Freqncia de amostragem
C/D
IDEAL
xc (t ) x[n] = xc (nT )
T
A/D
CONVERSOR C/D
s(t )
Converso
Trem de Impulsos
X para
xc (t ) xs (t ) Sequncia 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
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
2 REPRESENTAO DA AMOSTRAGEM
NO DOMNIO DA FREQUNCIA
+
s (t ) = (t nT ) (t ) = funo 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( jt ) dt x(t ) = X ( ) exp( jt ) d
2
1
x1 (t ) x 2 (t ) X 1 ( )X 2 ( ) x1 (t ) x 2 (t ) X 1 ( ) X 2 ( )
2
2 +
1
S ( ) = ( n ) X s ( ) = X c ( ) S ( )
2
s
T n =
+
1
X s ( ) = X ( n )
c s
T n =
+
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 )
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
4 TEOREMA DE NYQUIST
x c ( ) = 0 para N
2
S = 2 N
T
N = Freqncia de Nyquist
2 N = Taxa de Nyquist