• Nenhum resultado encontrado

Processamento de Sinais

N/A
N/A
Protected

Academic year: 2021

Share "Processamento de Sinais"

Copied!
335
0
0

Texto

(1)

Processamento Digital

de

Sinais

Carlos Alexandre Mello

Centro de Informática – UFPE

2015

(2)

Agradecimentos à primeira turma de Processamento Digital de Sinais dos cursos de Engenharia da Computação e Ciência da Computação de 2010.1: Adriano Damascena, Bernardo Fonseca, Daker Fernandes, Daniel Brito, Fernando Rodrigues, Gabriel Carvalho, João Carlos Procópio, Lucas André Paes, Luis Felipe Pereira, Onildo Ferraz Filho, Rafael Menezes, Renan Pires, Rodolpho de Siqueira, Rodrigo Perazzo, Thiago Lima e Thiago Henrique Fernandes.

(3)

Índice

1. Processamento Digital de Sinais ... 6

1.1 Principais Tipos de Sinais ... 7

1.2 Sistemas Discretos no Tempo ... 9

1.3 Sistemas Lineares e Invariantes no Tempo ... 10

1.4 Operações entre sequências... 14

1.5 Sistemas LTI como Filtros Seletores de Frequência ... 16

1.6 Representação de Sequências pela Transformada de Fourier ... 19

1.6.1 Propriedades da Transformada de Fourier ... 23

1.7 Códigos do MatLab (Sinais e Operações) ... 25

1.8 Exercícios ... 34

1.8 Bibliografia Complementar ... 37

2. A Transformada Z ... 38

2.1 Propriedades da Transformada Z ... 40

2.2 Pares de Transformadas Z ... 43

2.3 Exemplos de Cálculo da Transformada Z ... 43

2.4 Propriedades da Região de Convergência ... 51

2.5 A Transformada Z Inversa ... 52

2.6 Exercícios ... 61

2.7 Bibliografia Complementar ... 63

3. Teorema da Amostragem ... 64

3.1 Teorema de Shannon ... 69

3.2 Re-Obtenção do Sinal a partir de suas amostras ... 74

4. Filtros Digitais ... 77 4.1 Filtros Digitais ... 79 4.2 Filtros FIR ... 83 4.3 Filtros IIR ... 106 4.4 Exercícios ... 112 4.5 Bibliografia Complementar ... 113

5. Técnicas de projeto de filtros ... 114

5.1 Projeto de Filtros FIR ... 117

5.1.1 Projeto usando janelas ... 118

5.1.2 Técnicas de Projeto por Amostragem em Frequência ... 144

5.1.3 Projeto Equirriple Ótimo ... 146

5.2 Projeto de Filtros IIR ... 149

5.2.1 Escala Relativa ... 150

5.2.2 Características de Protótipos Analógicos ... 153

5.3 Transformações em Frequência ... 162

5.4 Comparação entre Filtros FIR e IIR ... 164

5.5 Exercícios ... 166

5.6 Bibliografia Complementar ... 167

6. Transformada Discreta de Fourier ... 168

6.1 A Série Discreta de Fourier ... 169

6.2 A Transformada Discreta de Fourier ... 174

(4)

6.4 A Transformada Discreta Bi-Dimensional de Fourier ... 179

6.5 O Espectrograma ... 181

6.6 Exercícios ... 185

6.7 Bibliografia Complementar ... 187

7. Transformada Rápida de Fourier (FFT- Fast Fourier Transform) ... 188

7.1 Algoritmos Rápidos ... 188

7.2 Algoritmo de Cooley-Tukey ou Decimação no Tempo ... 190

7.3 Outras FFTs ... 201 7.4 Exercícios ... 203 7.5 Bibliografia Complementar ... 204 8. Análise Wavelet ... 205 8.1 A Transformada Wavelet ... 208 8.2 Análise em Multiresolução... 212

8.3 Sobre os coeficientes das wavelets ... 215

8.4 Wavelets no MatLab ... 220

8.5 Exercícios ... 227

8.6 Bibliografia Complementar ... 229

9. Processamento Digital de Imagens ... 230

9.1 Digitalização ... 233

9.2 Sistema Computacional de Cores ... 236

9.3 Histograma ... 240

9.4 Filtragem de Imagens Digitais ... 242

9.5 Compressão de Imagens ... 250

9.6 Processamento de Imagens no MatLab ... 252

9.7 Exercícios ... 256

9.8 Bibliografia Complementar ... 257

10. Técnicas de Codificação de Áudio e Vídeo ... 258

10.1 Teoria dos Códigos ... 258

10.2 Algoritmos de Compressão ... 262

10.2.1 Código de Huffman ... 263

10.2.2 Run-length ... 266

10.2.3 Algoritmo de Lempel-Ziv-Welch ... 266

10.3 Algoritmos de codificação multimídia ... 267

10.3.1 Codificação de Vídeo ... 268

10.3.2 Codificação de Áudio ... 282

10.4 Implementações no MatLab ... 287

10.4.1 Processamento de Vídeo no MatLab ... 287

10.4.2 Processamento de Áudio no MatLab ... 293

10.5 Exercícios ... 303

10.6 Bibliografia Complementar ... 304

11. Processamento de Voz ... 305

11.1 Amostragem e Quantização ... 312

11.2 Técnicas Temporais para Processamento de Voz ... 319

11.2.1 Energia de Curta Duração ... 321

11.2.2 Magnitude de Curta Duração ... 323

(5)

11.2.4. Função de Autocorrelação ... 326

11.3 Análise Cepstral ... 329

11.4 Exercícios ... 334

(6)

1. Processamento Digital de Sinais

Sinais estão presentes em diversas situações do dia-a-dia do ser humano. Um sinal pode ser definido como uma função que carrega uma informação. A forma mais comum para nós é a comunicação por sinal de voz. Nesse exemplo, temos o sinal gerado pelo trato vocal e o sinal recebido pelo sistema auditivo. Apesar de ser o mesmo sinal transmitido a forma como ele é processado é inerente ao receptor. O processamento de sinais lida com a representação, transformação e manipulação dos sinais e da informação que eles contêm. Até a década de 60, a tecnologia para processamento de sinais era basicamente analógica. A evolução de computadores e microprocessadores juntamente com diversos desenvolvimentos teóricos causou um grande crescimento na tecnologia digital, surgindo o processamento digital de sinais (PDS). Um aspecto fundamental do processamento digital de sinais é que ele é baseado no processamento de sequências de amostras. Para tanto, o sinal contínuo no tempo é convertido nessa sequência de amostras, i.e., convertido em um sinal discreto no tempo. Após o processamento digital, a sequência de saída pode ser convertida de volta a um sinal contínuo no tempo.

A maior parte do processamento de sinais envolve processar um sinal para obter outro sinal. Normalmente, isso é conseguido por um processo conhecido como filtragem.

Sinais podem ser classificados em quatro diferentes categorias dependendo de características de tempo e dos tipos de valores que eles podem assumir. Sinais contínuos no tempo (ou analógicos) são definidos para qualquer valor de tempo e eles assumem valores no intervalo contínuo (a, b), onde a pode ser -∞ e b pode ser +∞. Podem ser representados por uma função de variáveis contínuas. Sinais discretos no tempo são definidos apenas para certos valores específicos de tempo. Podem ser representados matematicamente por uma sequência de números reais ou complexos, x. O n-ésimo número dessa sequência é denotado por x[n]. Assim, x é formalmente escrito como:

(7)

x = {x[n]}, -∞ <n < ∞

onde n é um inteiro. Tais sequências são geradas a partir de um processo de amostragem periódica de um sinal analógico. Assim, o valor numérico do n-ésimo número da sequência é igual ao valor do sinal analógico xa(t) no tempo

nT, i.e.:

x[n] = xa(nT), -∞ <n < ∞

Os valores de amplitude de sinais contínuos ou discretos no tempo podem ser contínuos ou discretos. Se um sinal pode assumir qualquer valor dentro de um espaço finito ou infinito, ele é dito um sinal contínuo em valores. Sinais digitais são aqueles para os quais tanto o tempo quanto a amplitude são discretos. Ou seja, ele é discreto no tempo e só pode assumir valores dentro de um conjunto finito de possíveis valores (é discreto em valores).

Sinais também podem ser classificados em determinísticos ou aleatórios. Qualquer sinal que podem ser unicamente descrito por uma expressão matemática, uma tabela de dados ou uma regra bem definida é chamado determinístico. Esse termo é usado para destacar que quaisquer valores passados, presentes e futuros do sinal são conhecidos precisamente, sem incerteza. No entanto, em aplicações práticas, os sinais não podem ser representados precisamente por equações matemáticas ou suas descrições são muito complexas para uso. Isso indica que tais sinais têm comportamentos imprevisíveis sendo chamados de sinais aleatórios.

1.1 Principais Tipos de Sinais

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

=

=

0

,

1

0

,

0

]

[

n

n

n

δ

(8)

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

pode ser representada como:

p[n] = 3.δ[n+3] + 2.δ[n + 1] + 4.δ[n - 2] – 1.δ[n – 3]

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

∞ −∞ =

=

k

k

n

k

x

n

x

[

]

[

]

δ

[

]

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

<

=

0

,

0

0

,

1

]

[

n

n

n

u

O degrau relaciona-se com o impulso como:

−∞ =

=

n k

k

n

u

[

]

δ

[

]

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

∞ =

=

0

]

[

]

[

k

k

n

n

u

δ

Por outro lado, o impulso relaciona-se com o degrau unitário como: δ[n] = u[n] – u[n – 1]

(9)

Uma sequência exponencial é importante na análise de sistemas discretos e invariantes no tempo. A forma geral de uma sequência exponencial é dada por:

x[n] = A.αn

1.2 Sistemas Discretos no Tempo

Um sistema discreto no tempo é definido matematicamente como uma transformação que mapeia uma sequência de entrada x[n] em uma sequência de saída y[n]. Isso pode ser denotado por:

y[n]=T{x[n]} como representado na Fig. 1.1.

Fig. 1.1. Representação de um sistema discreto no tempo

Alguns exemplos ilustram sistemas simples:

1) Sistema de atraso ideal: y[n] = x[n – nd], -∞ <n < ∞

2) Média móvel:

− =

+

+

2 1

]

[

1

1

2 1 M M k

k

n

x

M

M

A seguir, destacamos algumas importantes propriedades dos sistemas.

1) Um sistema é dito sem memória (memoryless systems) se a saída y[n] a cada valor de n depende apenas da entrada x[n] no mesmo valor de n.

Ex: y[n] = {x[n]}2

(10)

T{a.x1[n] + b.x2[n]} = a.T{x1[n]} + b.T{x2[n]} Ex: Acumulador:

−∞ =

=

n k

k

x

n

y

[

]

[

]

3) Um sistema é invariante no tempo é um sistema no qual um deslocamento no tempo (ou atraso) da sequência de entrada gera um deslocamento correspondente na sequência de saída. Ou seja, suponha um sistema que transforma uma sequência de entrada x[n] na sequência de saída y[n]. Se a sequência de entrada sofre um deslocamento de n0, x[n] = x[n – n0], então a

sequência de saída torna-se y[n] = y[n – n0].

Ex: Um sistema de atraso ideal é um sistema invariante no tempo.

Ex: O seguinte exemplo mostra um sistema que não é invariante no tempo: y[n] = x[M.n], -∞ <n < ∞

4) Um sistema é dito causal se ele não depende de valores futuros da sequência. Ou seja, o valor de y[n1] pode ser calculado apenas com valores de

x[n] para n ≤ n1.

Ex: Um sistema não causal: y[n] = x[n + 1] – x[n]

5) Um sistema é dito estável se toda entrada limitada provoca uma saída limitada. Assim, se, para todo n, |x[n]| ≤ B < ∞, para algum valor finito B, então |y[n]| ≤ C < ∞, para algum valor finito C.

1.3 Sistemas Lineares e Invariantes no Tempo

Uma classe importante de sistemas consiste naqueles que são lineares e invariantes no tempo. Como dito acima, os sistemas lineares são aqueles que obedecem ao princípio da superposição. Se a propriedade da linearidade é

(11)

combinada com a representação de uma sequência geral como uma combinação de impulsos, então um sistema linear pode ser completamente caracterizado pela sua resposta ao impulso. Seja hk[n] a resposta do sistema a

δ[n – k]. Assim, como:

∞ −∞ =

=

k

k

n

k

x

n

x

[

]

[

]

δ

[

]

então

}

]

[

]

[

{

]

[

∞ −∞ =

=

k

k

n

k

x

T

n

y

δ

Pelo princípio da superposição, podemos escrever:

∞ −∞ = ∞ −∞ =

=

=

k k k

n

h

k

x

k

n

T

k

x

n

y

[

]

[

]

{

δ

[

]

}

[

]

[

]

De acordo com essa equação, a resposta do sistema a qualquer entrada pode ser expressa em termos da resposta a δ[n – k].

A propriedade da invariância no tempo implica que, se h[n] é a resposta a δ[n], então a resposta a δ[n - k] é h[n – k]. Com isso, podemos dizer que:

∞ −∞ =

=

k

k

n

h

k

x

n

y

[

]

[

]

[

]

(Eq. 1.1)

Como consequência, um sistema linear invariante no tempo é completamente descrito por sua resposta ao impulso. Essa equação é conhecida como soma de convolução (convolution sum) que pode ser representada pela notação:

y[n] = x[n]*h[n] (Eq. 1.2)

Apesar da semelhança na notação, deve-se salientar que a soma de convolução para sinais discretos não é uma aproximação da integral de convolução.

(12)

Propriedades da soma de convolução: 1) Comutatividade:

x[n]*h[n] = h[n]*x[n]

Isso pode ser facilmente justificável com uma mudança de variável na Eq. 1.1. Especificamente, podemos fazer m = n – k.

2) Distributividade:

x[n]*(h1[n] + h2[n]) = x[n]*h1[n] + x[n]*h2[n]

3) Conexão em Cascata

(13)

5) Causalidade

Como definido anteriormente, um sistema é dito causal se sua resposta não depende de eventos futuros. Ou seja, para calcular a saída de y[n0], precisamos

apenas de x[n], n ≤ n0. Isso implica na condição:

h[n] = 0, n < 0

Assim, para testar a causalidade basta testar se h[n] = 0 para n<0.

6) Estabilidade

A estabilidade é garantida se:

<

=

∞ −∞ = n

n

h

S

|

[

]

|

Para qualquer que seja a entrada x[n] de um sistema:

x[n]* δ[n] = x[n]

Assim, em geral, se um sistema linear invariante no tempo tem uma resposta ao impulso h[n], então seu sistema inverso, se existir, tem resposta ao impulso hi[n]

definida pela relação:

h[n]*hi[n] = hi[n]*h[n] = δ[n]

Uma classe importante de sistemas lineares invariantes no tempo consiste daqueles para os quais x[n] e y[n] se relacionam através de uma equação de diferenças de coeficientes constantes lineares de n-ésima ordem da forma:

= =

=

N k M k k k

y

n

k

b

x

n

k

a

0 0

]

[

]

[

(Eq. 1.3)

Um exemplo de um tal sistema é um acumulador definido pela sequência cujo diagrama de blocos pode ser visto na figura abaixo:

(14)

Tal sistema é representado pela equação de diferenças: y[n] = y[n – 1] + x[n] ou y[n] - y[n – 1] = x[n]

Pela Eq. 1.3, temos: N = 1, a0 = 1, a1 = -1, M = 0 e b0 = 1.

Assim, para cada valor de n a saída é dada pela entrada x[n] somada com o valor anterior do acumulador, y[n – 1].

1.4 Operações entre sequências

Vamos descrever algumas operações básicas em sequências. Os códigos em MatLab para as principais operações pode ser encontrado na Seção 1.7.

a) Adição de sequências:

A adição de amostra por amostra é dada por: {x1[n]} + {x2[n]} = {x1(n) + x2(n)}

Deve ser observado que o comprimento das sequências x1[n] e x2[n] deve ser o

mesmo. Se as sequências têm comprimentos diferentes, a menor deve ser completada para que tenha o mesmo comprimento da maior. Normalmente, isso é feito, acrescentando zeros à sequência (zero padding).

b) Multiplicação de sequências:

Novamente, é uma operação amostra por amostra e as questões de comprimento das sequências devem ser consideradas:

(15)

c) Mudança de escala:

Cada amostra de uma sequência é multiplicada por um escalar α: α.{x[n]} = {α.x(n)}

d) Deslocamento:

Cada amostra x(n) é deslocada k posições: y[n] = {x(n – k)}

Seja m = n – k, então n = m + k e a operação pode ser vista como: y[m + k] = {x(m)}

e) Inversão:

A sequência é posta de trás para frente. Seja x[n] uma sequência de comprimento k. Logo, y[n] será:

y[n] = {x(k – n)}

f) Soma de amostras:

Soma as amostras de uma sequência dentro de um intervalo:   = 1 + ⋯ . +2

 

g) Produto de amostras:

Similar ao anterior, mas com operação de produto em um intervalo.

h) Energia:

A energia de uma sequência x[n] é dada por:  ∗   =  ||   i) Potência:

A potência média de uma sequência periódica  pode ser calculada como: 1

  ||

 

(16)

1.5 Sistemas LTI como Filtros Seletores de Frequência

O termo filtro é normalmente usado para descrever um dispositivo que discrimina, de acordo com algum atributo do objeto aplicado como entrada, o que passa através dele. Por exemplo, como um filtro de ar que deixa o ar passar, mas retém partículas de impureza. Um sistema LTI também funciona como um tipo de discriminante ou filtrando entre os vários componentes de frequência na sua entrada. A forma da filtragem é definida pela resposta de frequência H(ω) que depende da escolha de parâmetros do sistema (como os coeficientes do filtro). Assim, com uma escolha apropriada de parâmetros, podemos projetar filtros seletores de frequência que deixam passar sinais contendo componentes de frequência em algumas bandas e atenuando sinais contendo componentes de frequência em outras bandas.

Em geral, um sistema LTI modifica o espectro do sinal de entrada X(ω) de acordo com a resposta em frequência H(ω) que leva a um sinal de saída com espectro Y(ω) = H(ω)X(ω). De certa forma, H(ω) atua como uma função de peso nos diferentes componentes de frequência do sinal de entrada. Assim, um sistema LTI pode ser visto como um filtro embora não bloqueie completamente qualquer componente de frequência do sinal de entrada. Consequentemente, os termos “sistema LTI” e “filtro” são sinônimos e são normalmente usados sem distinção.

Um filtro é um sistema LTI usado para desempenhar a função de filtragem seletora de frequência. Filtragem é usada em processamento digital de sinais em uma grande variedade de formas, como remoção de ruído, equalização, análise espectral de sinais, etc.

Filtros são normalmente classificados de acordo com suas características no domínio da frequência como passa-baixa, passa-alta, passa-faixa e rejeita-faixa. As características de resposta em magnitude ideais desses tipos de filtros estão ilustradas na Fig. 1.2. Esses filtros ideais têm características de ganho constante

(17)

na banda de passagem (normalmente, tomados como unitários) e ganho zero na banda de corte. Mais detalhes sobre filtros digitais e formas de projeto serão vistos nos Capítulos 4 e 5.

Fig. 1.2. Resposta em magnitude para alguns filtros seletores de frequência

(18)

Outra característica de um filtro ideal é uma resposta de fase linear. Considere que um sinal {x[n]} com componentes de frequência dentro da faixa de ω1< ω

<ω2 passa por um filtro com resposta em frequência:

<

<

=

senão

Ce

H

n j

0

)

(

1 2 0

ω

ω

ω

ω

ω

onde C e n0 são constantes. O sinal na saída do filtro terá um espectro:

0

)

(

)

(

)

(

)

(

X

H

CX

e

j n

Y

ω

=

ω

ω

=

ω

− ω

Aplicando as propriedades da transformada de Fourier, obtemos a saída no domínio do tempo:

Y[n] = C.x[n – n0]

Consequentemente, a saída do filtro é simplesmente uma versão escalonada e atrasada do sinal de entrada. Tanto um atraso simples quanto uma diferença em escala são considerados toleráveis e não distorções do sinal. Portanto, filtros ideais têm uma característica de fase linear na banda de passagem que é:

Θ(ω) = -ωn0

A derivada da fase em relação à frequência é medida em unidades de atraso. Assim, podemos definir o atraso do sinal como uma função da frequência como:

ω

ω

ω

τ

d

d

g

)

(

)

(

=

Θ

τg(ω) é chamado de atraso de grupo (group delay) do filtro. Entendemos τg(ω)

(19)

submetidos à medida que ele passa da entrada à saída do sistema. Note que, quando Θ(ω) é linear, τg(ω) = n0 = constante. Nesse caso, todas as componentes

de frequência do sinal de entrada sofrem o mesmo atraso de tempo.

Como conclusão, todos os filtros ideais têm características de magnitude constante e fase linear dentro da banda de passagem. Em todos os casos, tais filtros não são fisicamente realizáveis, mas servem como idealizações matemáticas para filtros práticos.

1.6 Representação de Sequências pela Transformada de Fourier

Assim como sinais do contínuo, os sinais discretos no tempo também podem ser representados de formas diferentes. Uma das formas mais utilizadas é através da transformação do sinal para o domínio da frequência através da Transformada de Fourier. Muitas sequências podem ser representadas por uma integral de Fourier da forma:

=

π π ω ω

ω

π

X

e

e

d

n

x

(

j

)

j n

2

1

]

[

(Eq. 1.4)

onde X(ejw) é dada por:

∞ −∞ = −

=

n n j j

e

n

x

e

X

(

ω

)

[

]

ω

(Eq. 1.5)

A Eq. 1.4 é conhecida como a Transformada Inversa de Fourier, enquanto a Eq. 1.5 é a Transformada de Fourier.

Em geral, a Transformada de Fourier é uma função complexa em ω. Como na resposta à frequência, algumas vezes, pode-se expressar X(ejω) na forma:

X(ejω) = X

(20)

ou na forma polar:

X(ejω) = |X(ejω)| ej∠X(e^jω)

As quantidades |X(ejω)| e ∠X(e) são chamadas de magnitude e fase da

Transformada de Fourier (também chamada de espectro de Fourier ou, simplesmente, espectro).

Há casos onde a Transformada de Fourier para uma dada sequência não converge. Esses casos podem ser definidos através da Transformada Z como veremos posteriormente.

Podemos verificar facilmente que as Eqs. 1.4 e 1.5 são inversas realmente. Especificamente, considere: ^

]

[

]

[

2

1

n

x

d

e

e

m

x

j n m m j

=

∫ ∑

− ∞ −∞ = − π π ω ω

ω

π

Se trocarmos a ordem da integração com o somatório, temos:

=

− − ∞ −∞ = π π ω

ω

π

e

d

m

x

n

x

j n m m ) ( ^

2

1

]

[

]

[

Calculando a integral dentro dos parênteses, temos:

=

=

=

− −

n

m

n

m

m

n

m

n

d

e

j n m

,

0

,

1

)

(

))

(

sin(

2

1

( )

π

π

ω

π

π π ω

=

δ

[

n

m

]

(21)

Assim:

]

[

]

[

]

[

]

[

^

n

x

m

n

m

x

n

x

m

=

=

∞ −∞ =

δ

Exemplo 1: Seja x[n] = anu[n]. A TF é dada por:

∞ = − ∞ = − − ∞ −∞ = −

=

=

=

=

0 0

1

1

)

(

]

[

)

(

n jw n n jw jwn n n jwn jw

ae

ae

e

a

e

n

x

e

X

Que converge se |a.e-jw| < 1 ou |a| < 1.

OBS:

α

α

∞ =

1

1

0 n n , para |α| < 1 Exemplo 2:

Vamos calcular a resposta ao impulso de um filtro passa-baixa ideal cuja resposta em frequência é:

<

<

<

=

π

|

|

,

0

|

|

,

1

)

(

w

w

w

w

e

H

c c jw LPF

A resposta o impulso hLPF[n] pode ser encontrada através da Transformada

Inversa de Fourier:

− −

=

=

c c w w jwn jwn jw LPF LPF

n

H

e

e

dw

e

dw

h

π

π

π π

2

1

)

(

2

1

]

[

(22)

<

<

−∞

=

n

n

n

w

n

h

LPF

[

]

sin(

c

)

,

π

Exemplo 3:

Determine a resposta em frequência H(ejw) de um sistema cuja resposta ao

impulso h(n) = (0,9)nu[n]. Plote a magnitude e a fase.

 =  ℎ   = 0,9    = 0,9   =1 − 0,91  Assim, a magnitude é calculada como:

"" = # 1

1 − 0,9$%&' + 0,9&' = √1,81 − 1,8$%&'1

E a fase: ∠ = −arctan  0,9&' 1 − 0,9$%&' Plotagem no MatLab: w = [0:1:500]*pi/500; H = exp(j*w)./(exp(j*w) - 0.9*ones(1, 501)); magH = abs(H); angH = angle(H);

subplot (2, 1, 1); plot (w/pi, magH); grid; xlabel('frequency in pi units'); ylabel('|H|'); title('Magnitude response');

subplot (2, 1, 2); plot (w/pi, angH/pi); grid;

xlabel('frequency in pi units'); ylabel('Phase in pi Radians'); title('Phase response');

(23)

1.6.1 Propriedades da Transformada de Fourier

Algumas propriedades da TF: Seja: x[n] ↔ X(ejw) e y[n] ↔ Y(ejw)

Propriedade Sequência Transformada de Fourier

Linearidade a.x[n] + b.y[n] a.X(ejw) + b.Y(ejw)

Deslocamento no Tempo x[n – nd] e-jwndX(ejw)

Deslocamento na Freq ejwonx[n] X(ej(w – w0))

Conjugação x*[n] X*(e-jw)

Reverso no Tempo x[-n] X(e

-jw)

X*(e-jw), se x[n] é real Diferenciação em Freq n.x[n] j dX(ejw)/dw

Convolução x[n]*y[n] X(e-jw).Y(e-jw)

Modulação x[n].y[n]

− − π π θ θ

θ

π

X

e

Y

e

d

w j j

)

(

)

(

2

1

( )

(24)

A seguir, temos códigos do MatLab que exemplificam algumas dessas propriedades:

% Exemplo de Linearidade

x1 = rand(1, 11); x2 = rand(1, 11); n = 0:10; alpha = 2; beta = 3; k = 0:500; w = (pi/500)*k; X1 = x1*(exp(-j*pi/500)).^(n'*k); % DTFT de x1

X2 = x2*(exp(-j*pi/500)).^(n'*k); % DTFT de x2

x = alpha*x1 + beta*x2; % Combinação linear de x1 e x2

X = x*(exp(-j*pi/500)).^(n'*k); % DTFT de x

X_check = alpha*X1 + beta*X2; % DTFT da combinação de X1 e X2

error = max(abs(X - X_check)) % Diferença

% Exemplo de deslocamento no tempo

x = rand (1, 11); n = 0:10; k = 0:500; w = (pi/500)*k;

X = x*(exp(-j*pi/500)).^(n'*k); % DTFT de x % O sinal é deslocado de duas amostras

y = x; m = n + 2;

Y = y*(exp(-j*pi/500)).^(m'*k); % DTFT de y % Verificação

Y_check = (exp(-j*2).^w).*X; % Multiplicação por exp(-j2w)

error = max(abs(Y - Y_check)) % Diferença

% Exemplo de deslocamento na frequência

n = 0:100; x = cos(pi*n/2); k = -100:100; w = (pi/100)*k;

X = x*(exp(-j*pi/100)).^(n'*k); % DTFT de x

y = exp(j*pi*n/4).*x; % Sinal multiplicado por exp(j*pi*n/4)

Y = y*(exp(-j*pi/100)).^(n'*k); % DTFT de y % Verificação gráfica

subplot (2, 2, 1); plot(w/pi, abs(X)); grid; axis([-1, 1, 0, 60]);

xlabel('frequency in pi units'); ylabel ('|X|'); title ('Magnitude de X');

subplot (2, 2, 2); plot(w/pi, angle(X)); grid; axis([-1, 1, -1, 1]);

xlabel('frequency in pi units'); ylabel ('radianos/pi'); title ('Angulo de X');

subplot (2, 2, 3); plot(w/pi, abs(Y)); grid; axis([-1, 1, 0, 60]);

xlabel('frequency in pi units'); ylabel ('|Y|'); title ('Magnitude de Y');

(25)

subplot (2, 2, 4); plot(w/pi, angle(Y)); grid; axis([-1, 1, -1, 1]);

xlabel('frequency in pi units'); ylabel ('radianos/pi'); title ('Angulo de Y');

1.7 Códigos do MatLab (Sinais e Operações)

Função Impulso

function [x, n] = impseq(n0, n1, n2) % Impulso

n = [n1:n2]; x = [(n-n0) == 0]; stem (x); Exemplos: 1. >> impseq (5, 0, 10);

(26)

2.

x[n] = 2.δ[n + 2] - δ[n – 4], -5 ≤ n ≤ 5 >> n = [-5:5];

>> x = 2*impseq(-2, -5,5) - impseq(4, -5, 5);

>> stem (n, x); title ('Exemplo de Sequencia'); xlabel('n'); ylabel('x[n]');

Função Degrau

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

n = [n1:n2]; x = [(n-n0) >= 0]; stem (x); Exemplos 1. >> stepseq (5, 0, 10);

(27)

2.

x[n] = n[u[n] – u[n – 10]] + 10e-0.3(n – 10)[u[n – 10] – u[n – 20]], 0 ≤ n ≤ 20 >> n = 0:20;

>> x1 = n.*(stepseq(0,0,20) - stepseq(10,0,20));

>> x2 = 10*exp(-0.3*(n-10)).*(stepseq(10,0,20) - stepseq(20,0,20)); >> x = x1 + x2;

>> stem(n,x); title('Sequencia de Degraus'); xlabel('n'); ylabel ('x[n]');

Senóide

function x = sinseq(n1,n2) % Senóide

n = [n1:0.1:n2];

x = 3*cos(0.1*pi*n + pi/3) + 2*sin(0.5*pi*n); stem (x);

Exemplo:

(28)

Operações em sequências Adição de sinais

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

function [y,n] = sigadd(x1,n1,x2,n2)

n = min(min(n1),min(n2)):max(max(n1),max(n2)); y1 = zeros(1, length(n)); y2 = y1; y1(find((n>=min(n1))&(n<=max(n1))==1)) = x1; y2(find((n>=min(n2))&(n<=max(n2))==1)) = x2; y = y1 + y2; Multiplicação de sinais y[n] = x1[n].x2[n]

function [y,n] = sigmult(x1,n1,x2,n2)

n = min(min(n1),min(n2)):max(max(n1),max(n2)); y1 = zeros(1, length(n)); y2 = y1; y1(find((n>=min(n1))&(n<=max(n1))==1)) = x1; y2(find((n>=min(n2))&(n<=max(n2))==1)) = x2; y = y1.*y2; Deslocamento y[n] = x[n – k]

function [y,n] = sigshift(x, m, n0) n = m + n0;

y = x;

Inversão

(29)

function [y,n] = sigfold(x,n) y = fliplr(x);

n = -fliplr(n);

Exemplo: Seja x[n] = {1, 2, 3, 4, 5, 6, 7, 6, 5, 4, 3, 2, 1}. O valor em negrito corresponde ao centro da sequência.

Sobre as sequências, temos que: >> n = -2:10; >> x = [1:7, 6:-1:1]; a) Plote x1[n] = 2x(n – 5) – 3x[n + 4]. >> [x11, n11] = sigshift(x, n, 5); >> [x12, n12] = sigshift(x, n, -4); >> [x1, n1] = sigadd(2*x11,n11,-3*x12, n12);

>> stem (n1, x1); title(‘Sequencia’); xlabel (‘n’); ylabel (‘x1(n)’);

b) Plote x2[n] = x[3 – n] + x[n].x[n – 2] >> [x21, n21] = sigfold(x, n); >> [x21, n21] = sigshift(x21, n21,3); >> [x22, n22] = sigshift(x, n,2); >> [x22, n22] = sigmult(x, n, x22, n22); >> [x2, n2] = sigadd(x21, n21, x22, n22); >> stem (n2, x2); title('Sequencia'); >> xlabel ('n'); ylabel ('x2(n)');

(30)

Convolução

Considere as sequências:

x = [3, 11, 7, 0, -1, 4, 2], -3 ≤ n ≤ 3

h = [2, 3, 0, -5, 2, 1]; -1 ≤ n ≤ 4

onde, novamente, os termos em negrito indicam a origem do eixo das abscissas. As sequências podem ser vistas abaixo:

x[n] h[n]

Podemos usar a função conv do MatLab diretamente: >> x = [3, 11, 7, 0, -1, 4, 2];

>> h = [2, 3, 0, -5, 2, 1]; >> y = conv (x, h);

(31)

O problema do uso da função conv é que não sabemos, na resposta, onde está a origem da sequência. Para tanto, vamos criar uma nova função:

function [y, ny] = conv_m (x, nx, h, nh) nyb = nx(1) + nh(1);

nye = nx(length(x)) + nh(length(h)); ny = [nyb:nye]; y = conv(h, x); >> x = [3, 11, 7, 0, -1, 4, 2]; >> nx = [-3:3]; >> h = [2, 3, 0, -5, 2, 1]; >> nh = [-1:4];

>> [y, ny] = conv_m (x, nx, h, nh)

y = 6 31 47 6 -51 -5 41 18 -22 -3 8 2 ny = -4 -3 -2 -1 0 1 2 3 4 5 6 7 A amplitude -51 está no ponto de origem (ny = 0).

Equações de Diferenças e Resposta ao Impulso

Exemplo: Dada a seguinte equação de diferenças:

y[n] – y[n – 1] + 0.9y[n – 2] = x[n], para todo n a) Calcule e plote sua resposta ao impulso h[n] para n = -20,.., 120. Como vimos anteriormente, uma equação de diferenças é da forma:

(32)

= =

=

N k M k k k

y

n

k

b

x

n

k

a

0 0

]

[

]

[

De acordo com a equação dada, temos: a = [1, -1, 0.9] e b = [1]

No MatLab, fazemos: >> x = impseq(0, -20, 120); >> n = [-20:120];

>> h = filter(b, a, x);

(33)

b) Calcule e plote sua resposta ao degrau s[n] para n = -20,.., 120. No MatLab, fazemos:

>> x = stepseq(0, -20, 120); >> n = [-20:120];

>> h = filter(b, a, x);

>> stem(n, h); title('Resposta ao degrau'); xlabel('n'); ylabel('s[n]');

c) O sistema é estável?

Como vimos, um sistema é estável se:

<

=

∞ −∞ = n

n

h

S

|

[

]

|

Assim, no MatLab, basta fazermos: >> sum(abs(h))

Ans = 14.8785

Logo, o sistema é estável.

(34)

1.8 Exercícios

1. Considere um sistema linear arbitrário com entrada x[n] e saída y[n]. Mostre que se x[n] = 0 para todo n, então y[n] deve ser zero para todo n também.

2. Usando a definição de linearidade, mostre que o sistema de atraso ideal e a média móvel são ambos lineares.

3. Para cada sistema abaixo, determine se ele é (1) estável, (2) causal, (3) linear, (4) invariante no tempo e (5) sem memória:

a. T(x[n]) = g[n]x[n], com g[n] dado b. T(x[n]) = Σnk=n0 x[k]

c. T(x[n]) = x[n – n0] d. T(x[n]) = exp(x[n])

e. T(x[n]) = a.x[n] + b, a e b números reais f. T(x[n]) = x[-n])

g. T(x[n]) = x[n] + 3.u[n + 1]

4. O sistema T abaixo é invariante no tempo. Quando as entradas dele são x1[n], x2[n] e x3[n], as saídas são y1[n], y2[n] e y3[n], respectivamente.

(35)

a) Determine se o sistema pode ser linear.

b) Se a entrada x[n] do sistema é um impulso (δ[n]), qual a saída y[n]?

c) Determine a relação entre a entrada e a saída do sistema.

5. Para cada par de sequências abaixo, use convolução discreta para encontrar a resposta à entrada x[n] do sistema linear invariante no tempo com resposta ao impulso h[n].

a)

b)

6. Considere o sistema com entrada x[n] e saída y[n] que satisfaz a equação de diferenças:

y[n] = n.y[n – 1] + x[n]

O sistema é causal tal que, se x[n] = 0, para n < 0, então y[n] = 0, para n < 0.

a) Se x[n] = δ[n], determine y[n] para todo n. b) O sistema é linear?

(36)

7. Plote a seguintes sequências no MatLab:

a) x[n] = n2.(u[n + 5] – u[n – 6]) + 10.δ[n], -5 ≤ n ≤ 5 b) x[n] = 20.(0,5)n.(u[n – 4] – u[n - 10]), -5 ≤ n ≤ 5

8. Seja x[n] = {1, -2, 4, 6, -5, 8, 10}, gere e plote no MatLab as seguintes sequências:

a) x[n] = 3.x[n + 2] + x[n – 4] – 2.x[n] b) x[n] = 5.x[5 + n] + 4.x[n + 4] + 3.x[n]

9. Usando as seguintes sequências:

x1[n] = u[n + 10] – u[n – 20] x2[n] = 2.δ[n – 2] + 5.u[n + 10] x3[n] = 5.u[n + 2] – 6.u[n – 3]

mostre que a convolução linear tem as seguintes propriedades como válidas: Comutatividade: x1[n]*x2[n] = x2[n]*x1[n]

Associatividade: (x1[n]*x2[n])*x3[n] = x1[n]*(x2[n]*x3[n])

Distributividade: x1[n]*(x2[n] + x3[n]) = x1[n]*x2[n] + x1[n]*x3[n]) Identidade: x[n]* δ[n – n0] = x[n – n0]

Use a função conv_m.m apresentada anteriormente.

10. A operação de dilatação de sinal (ou decimação ou downsampling) é definida por:

y[n] = x[nM]

na qual a sequência de entrada é down-sampled por um fator inteiro M. Por exemplo, se :

x[n] = {...., -2, 4, 3, -6, 5, -1, 8,...}

então a sequência down-sampled por um fator de 2 é dada por: y[n] = {..., -2, 3, 5, 8, ..}

Escreva uma função no MatLab que execute essa dilatação. A função deve ser da forma:

function [y, n] = dnsample(x, n, M)

(37)

1.8 Bibliografia Complementar

1. Vinay K. Ingle, John G. Proakis, Digital Signal Processing, Thomson Learning, 2000.

2. Michael Weeks, Digital Signal Processing Using MatLab and Wavelets, Infinity Science Press, 2007.

3. Alan V. Oppenheim, Ronald Schafer, Discrete Time Signal Processing, Prentice Hall, 1989

(38)

2. A Transformada Z

A Transformada Z (TZ) é uma ferramenta matemática poderosa para análise de sinais e sistemas. A transformada Z constitui a forma discreta da transformada de Laplace. Seja a Transformada de Fourier (TF) de uma sequência dada por:

∞ −∞ = −

=

n jwn jw

e

n

x

e

X

(

)

[

]

Seja z = ejw. Temos então, a TZ definida como:

∞ −∞ = −

=

n n

z

n

x

z

X

(

)

[

]

Essa é chamada também de TZ bilateral. A transformada unilateral é dada por:

∞ = −

=

0

]

[

)

(

n n

z

n

x

z

X

Notadamente, há uma relação entre a TZ e a TF. Se z é uma variável complexa, z pode ser escrita como ejw = cos(w) + j.sen(w). Nesse caso, a TZ transforma-se

na TF. De forma mais geral, se z = r.ejw, sua representação gráfica corresponde ao círculo no Plano imaginário (chamado de Plano-Z). Se esse círculo tem raio igual a 1, então temos a condição da TZ = TF (Fig. 2.1). Assim, a TZ calculada no círculo unitário é igual à TF.

A Transformada Z não converge para todos os valores de Z. Onde a TZ converge é chamada de região de convergência (ROC – Region of Convergence). Para garantir a convergência é preciso que:

<

∞ = − 0

|

]

[

|

n n

z

n

x

Assim, é possível que TZ convirja mesmo se a TF não convergir. Para a TF convergir, a ROC da TZ deve conter o círculo unitário. Uma transformada Z só está completamente definida se sua ROC estiver determinada.

(39)

Fig. 2.1. Plano Z: representação gráfica da transformada Z no plano complexo.

No círculo unitário, a transformada Z reduz-se à transformada de Fourier.

A série definida pela TZ é chamada de série de Laurent. Uma tal série representa uma função contínua em qualquer ponto dentro da região de convergência. Assim, a TZ e todas as suas derivadas devem ser funções contínuas de z na ROC. Isso implica que, se a região de convergência uniforme inclui o círculo unitário, então a TF e suas derivadas com respeito a w são funções contínuas de w. Além disso, a sequência deve ser absolutamente somável, i.e., uma sequência estável.

Entre as mais úteis e importantes TZs estão aquelas para as quais X(z) é uma função racional dentro da região de convergência, i.e.:

)

(

)

(

)

(

z

Q

z

P

z

X

=

onde P(z) e Q(z) são polinômios em z. Os valores de z que fazem X(z) = 0 são chamados de zeros de X(z). Os valores de z para os quais X(z) tende a infinito são chamados de pólos de X(z). Os pólos de X(z) são as raízes do polinômio do denominador.

(40)

2.1 Propriedades da Transformada Z

a) Linearidade: ax1[n] + bx2[n] ↔ aX1(z) + bX2(z), ROC = ROCx1∩ ROCx2 Comentários:

A prova de tal propriedade vem diretamente da definição de transformada Z:

∞ −∞ = −

=

n n

z

n

x

z

X

(

)

[

]

Considere que x[n] = ax1[n] + bx2[n]. Logo:

=

+

=

+

=

∞ −∞ = − − ∞ −∞ = − n n n n n

z

n

bx

z

n

ax

z

n

bx

n

ax

z

X

(

)

(

1

[

]

2

[

])

1

[

]

2

[

]

∞ −∞ = − ∞ −∞ = − ∞ −∞ = − ∞ −∞ = −

+

=

+

=

n n n n n n n n

z

n

x

b

z

n

x

a

z

n

bx

z

n

ax

1

[

]

2

[

]

1

[

]

2

[

]

= aX

1

(z) + bX

2

(z)

b) Deslocamento no tempo: x[n + n0] ↔ zn0.X(z), ROC = ROCx (cuidado deve ser

tomado observando o que acontece para z = 0 ou z = ∞).

Comentários:

Suponha que y[n] = x[n – n0]. Logo:

∞ −∞ = −

=

n n

z

n

n

x

z

Y

(

)

[

0

]

Fazendo m = n – n0:

∞ −∞ = − − ∞ −∞ = − − ∞ −∞ = + −

=

=

=

m m n m n m m n m

z

m

x

z

z

z

m

x

z

m

x

z

Y

(

)

[

]

( 0)

[

]

.

0 0

.

[

]

)

(

.

)

(

z

z

0

X

z

Y

=

n

(41)

c) Multiplicação por uma exponencial discreta: anx[n] ↔ X(z/a), ROC = |a|ROCX Comentários:

Essa propriedade é observável substituindo anx[n] na definição de TZ:

∞ −∞ = − ∞ −∞ = −

=

=

n n n n n

z

n

x

a

z

n

x

z

X

(

)

[

]

[

]

Como consequência disso, todas as posições de pólos e zeros são escalonadas por um fator de a, já que, se X(z) tiver um pólo em z = z1, X(a-1z) terá um pólo

em z = a.z1. Se a for um número real, essa propriedade pode ser entendida

como uma compressão ou expansão do plano Z.

d) Convolução no tempo: x1[n]*x2[n] ↔ X1(z).X2(z) , ROC contém ROCx1∩ ROCx2 Comentários: Seja:

∞ −∞ =

=

k

k

n

x

k

x

n

y

[

]

1

[

]

2

[

]

Tal que:

∞ −∞ = −

=

n n

z

n

y

z

Y

(

)

[

]

∑ ∑

∞ −∞ = − ∞ −∞ =

=

n n k

z

k

n

x

k

x

1

[

]

2

[

]

Se mudarmos a ordem dos somatórios:

−∞ = ∞ −∞ = −

=

k n n

z

k

n

x

k

x

z

Y

(

)

1

[

]

2

[

]

(42)

−∞ = − ∞ −∞ = −

=

k k m m

z

z

m

x

k

x

z

Y

(

)

1

[

]

2

[

]

Assim, para valores de z dentro das regiões de convergência para X1(z) e X2(z), podemos escrever:

)

(

)

(

)

(

z

X

1

z

X

2

z

Y

=

e) Diferenciação no Domínio Z: n.x[n] ↔ -z.dX(z)/dz, ROC = ROCx (cuidado

deve ser tomado observando o que acontece para z = 0 ou z = ∞).

Comentários:

Essa propriedade pode ser facilmente provada diferenciando a definição da TZ:

∞ −∞ = −

=

n n

z

n

x

z

X

(

)

[

]

∞ −∞ = − −

=

n n

z

n

x

n

z

d

z

dX

1

]

[

)

(

)

(

)

(

. (-z)

∞ −∞ = − −

=

n n

z

n

x

n

z

z

d

z

dX

z

(

)

[

]

1

)

(

)

(

∞ −∞ = −

=

=

n n

n

nx

Z

z

n

nx

z

d

z

dX

z

[

]

{

[

]}

)

(

)

(

f) Reverso no tempo: x[-n] ↔ X(z-1), ROC = 1/ROC X Comentários:

Novamente, a definição de TZ prova esta propriedade:

∞ −∞ = −

=

n n

z

n

x

z

X

(

)

[

]

Fazendo m = -n, temos:

(43)

)

(

)

](

[

]

[

)

(

1 −1 ∞ −∞ = − − ∞ −∞ =

=

=

=

x

m

z

x

m

z

X

z

z

X

m m m m

2.2 Pares de Transformadas Z

Segue um conjunto de pares de Transformadas Z mais úteis:

2.3 Exemplos de Cálculo da Transformada Z

A seguir, vamos apresentar alguns cálculos de transformada Z e como definir a ROC.

(44)

Exemplo 1: x[n] = anu[n]

−∞ = ∞ −∞ = ∞ = ∞ = − − − −

=

=

=

=

n n n n n n n n n n

az

z

a

z

n

u

a

z

n

x

z

X

0 0 1

)

(

]

[

]

[

)

(

ROC: |az-1| < 1 ⇒ |z| > |a|

|

|

|

|

,

1

1

)

(

)

(

1 0 1

a

z

a

z

z

az

az

z

X

n n

>

=

=

=

= −

Para a = 1:

1

|

|

,

1

1

)

(

]

[

]

[

1

>

=

→

=

z

z

z

X

n

u

n

x

Z

Observamos que, para a = 1, a ROC não contém o círculo unitário. Logo, a TF para essa sequência não converge.

(45)

Exemplo 2: x[n] = -anu[-n – 1]

∞ −∞ = − ∞ −∞ = − ∞ −∞ = −

=

=

=

n n n n n n n n

z

n

u

a

z

n

u

a

z

n

x

z

X

(

)

[

]

[

1

]

[

1

]

∞ = − ∞ = − − −∞ = −

=

=

=

0 1 1 1

)

(

1

)

(

n n n n n n n n

z

a

z

a

z

a

z

X

ROC: |a-1z|<1 ⇒ |z|<|a|

|

|

|

|

,

1

1

1

)

(

1

)

(

1 0 1

a

z

a

z

z

z

a

z

a

z

X

n n

<

=

=

=

= −

(46)

Exemplo 3: x[n] = (1/2)nu[n] + (-1/3)nu[n]

∞ −∞ = − ∞ −∞ = −





+

=

=

n n n n n n

z

n

u

n

u

z

n

x

z

X

[

]

3

1

]

[

2

1

]

[

)

(

∞ −∞ = − ∞ −∞ = −

+

=

n n n n n n

z

n

u

z

n

u

z

X

[

]

3

1

]

[

2

1

)

(

∞ = − ∞ = −

+

=

0 0

3

1

2

1

)

(

n n n n n n

z

z

z

X

∞ = − ∞ = −

+

=

0 1 0 1

3

1

2

1

)

(

n n n n

z

z

z

X

(i) (ii) ROC(i) = |(1/2).z-1| < 1 ⇒ |z| > 1/2 ROC(ii) = |(-1/3).z-1| < 1 ⇒ |z| > 1/3

ROC = ROC(i) ∩ ROC(ii) = |z| > 1/2

1 1

3

1

1

1

2

1

1

1

)

(

− −

+

+

=

z

z

z

X

Para X(z), os pólos são dados por z=1/2 e z=-1/3 e os zeros são z=0 e z=1/12. Uma das propriedades da ROC que podemos observar aqui é que os pólos não

(47)

Exemplo 4: x[n] = (-1/3)nu[n] – (1/2)nu[-n – 1]

∞ −∞ = − ∞ −∞ = −





=

=

n n n n n n

z

n

u

n

u

z

n

x

z

X

[

1

]

2

1

]

[

3

1

]

[

)

(

∞ −∞ = − ∞ −∞ = −

=

n n n n n n

z

n

u

z

n

u

z

X

[

1

]

2

1

]

[

3

1

)

(

− −∞ = − ∞ = −

=

1 0

2

1

3

1

)

(

n n n n n n

z

z

z

X

∞ = − ∞ = −

=

1 0

2

1

3

1

)

(

n n n n n n

z

z

z

X

∞ = − ∞ = −

+

=

0 1 0 1

2

1

1

3

1

)

(

n n n n

z

z

z

X

(i) (ii) ROC(i) = |(-1/3).z-1| < 1 ⇒ |z| > 1/3 ROC(ii) = |(1/2)-1.z| < 1 ⇒ |z| < 1/2

(48)

ROC(i) ROC(ii) ROC:

z

z

z

z

z

z

X

2

1

2

3

1

1

1

2

1

1

1

3

1

1

1

)

(

1 1

+

=

+

+

=

− − 

(49)

Exemplo 5: Função delta δ[n]: δ[n] = 0, n ≠ 0, e δ[n] = 1, n = 0 Transformada Z:

∞ −∞ = −

=

=

=

n n

z

z

n

x

z

X

(

)

[

]

1

.

0

1

ROC = Todo o Plano Z

Exemplo 6: x[n] = δ[n – n0]

∞ −∞ = − − ∞ −∞ = −

=

=

=

n n n n n

z

z

n

n

z

n

x

z

X

(

)

[

]

[

]

0 0

δ

ROC = Todo o Plano Z.

Nos exemplos 5 e 6, x(n) é finita. X(z) é um polinômio de base z-1 e todo o plano

Z menos quando z = 0. Nesse ponto, a transformada não é definida.

Exemplo 7: Determine a transformada Z da sequência:

x[n] = (n – 2).(0,5)(n-2)cos[π(n – 2)/3]u[n – 2]

Considerando a propriedade do deslocamento no tempo (x[n + n0] ↔ zn0.X(z)),

temos:

X(z) = Z{x[n]} = z-2.Z{n(0,5)n.cos(πn/3)u[n]}

Considerando agora a diferenciação no domínio Z (n.x[n] ↔ -z.dX(z)/dz), temos: X(z) = Z{x[n]} = z-2.{-z.[d(Z{(0,5)n.cos(πn/3).u[n]}/dz}

(50)

2 1 1

25

,

0

)

3

cos

.

5

,

0

(

2

1

)

3

cos

.

5

,

0

(

1

]]

[

)

3

cos(

)

5

,

0

[(

− − −

+

=

z

z

z

n

u

n

z

n

π

π

π

2 1 1

25

,

0

5

,

0

1

25

,

0

1

]]

[

)

3

cos(

)

5

,

0

[(

+

=

z

z

z

n

u

n

z

n

π

, ROC = |z| > 0,5 Assim:

+

=

2 1 1 1

25

,

0

5

,

0

1

25

,

0

1

)

(

z

z

z

dz

d

z

z

X

4 3 2 1 5 4 3

0625

,

0

25

,

0

75

,

0

1

0625

,

0

5

,

0

25

,

0

)

(

− − −

+

+

+

=

z

z

z

z

z

z

z

z

X

ROC = |z| > 0,5

O seguinte procedimento no MatLab pode ajudar a verificar se a transformada está correta. Para tanto, vamos calcular as primeiras 8 amostras da sequência x[n] correspondente a X(z): >> b = [0, 0, 0, 0.25, -0.5, 0.0625]; >> a = [1, -1, 0.75, -0.25, 0.0625]; >> [delta, n] = impseq(0,0,7) delta = 1 0 0 0 0 0 0 0 n = 0 1 2 3 4 5 6 7

>> x = filter(b, a, delta) % checar a sequência

x =

0 0 0 0.2500 -0.2500 -0.3750 -0.1250 0.0781

>> x = [(n-2).*(1/2).^(n-2).*cos(pi*(n-2)/3)].*stepseq(2, 0, 7) % sequência original

x =

0 0 0 0.2500 -0.2500 -0.3750 -0.1250 0.0781 Conferindo com a sequência gerada pelo processo de filtragem.

(51)

2.4 Propriedades da Região de Convergência

A região de convergência (ROC) traz algumas propriedades:

1) A ROC é um anel ou disco no Plano Z com centro na origem.

2) A TF da sequência x[n] converge absolutamente se e somente se a ROC da TZ contém o círculo unitário.

3) A ROC não pode conter pólos.

4) Se x[n] é uma sequência de duração finita, a ROC é todo plano Z.

5) Se x[n] é causal (right-sided), a ROC extende-se para além dos pólos mais externos, possivelmente tendendo a infinito.

6) Se x[n] é não causal (left-sided), a ROC extende-se para uma região menor que o menor pólo até zero.

(52)

7) Se x[n] é uma sequência com componentes parte causal e parte não-causal, então a ROC é um anel.

8) A ROC é uma região conectada.

2.5 A Transformada Z Inversa

O cálculo da TZ inversa não é tão direto quanto o da TF. Aqui, existem diversas maneiras formais e informais de calcular a TZ inversa dada uma expressão algébrica e a ROC associada.

Seja a Transformada Z definida por:

∞ −∞ = −

=

n n

z

n

x

z

X

(

)

[

]

Suponha que multiplicamos ambos os lados da transformada por zk-1 e integremos os dois lados sobre um contorno fechado dentro da ROC de X(z) que inclui a origem. Tal contorno pode ser visto na Figura 2.2. Assim, temos:

∫ ∑

∞ −∞ = − − −

=

C C n n k k

dz

z

n

x

dz

z

z

X

(

)

1

[

]

1 (1)

onde C denota o contorno fechado na ROC de X(z), tomado no sentido anti-horário. Como a série converge nesse contorno, podemos mudar a ordem da integração e do somatório no lado direito, ficando com:

Referências

Documentos relacionados

GUILHERME TORRES AFFONSO LUCAS ALMEIDA GONÇALVES MATEUS PEREIRA DOS SANTOS RICARDO LAURINDO PEREIRA ALEXANDRE DE SOUZA FERREIRA RICARDO SILVA PEREIRA DA CRUZ FELIPE GARCIA DOS

Para elaboração do plano de gerenciamento de resíduos sólidos do aeroporto de Joinville foi elaborado um levantamento de todas as normas ambientais pertinentes ao assunto com o

É possível afirmar que os fatores motivadores ganhos pessoais, aprendizado e interação social foram relevantes para esse tipo específico de CV, onde pessoas cadastram um projeto

Esta realidade exige uma abordagem baseada mais numa engenharia de segu- rança do que na regulamentação prescritiva existente para estes CUA [7], pelo que as medidas de segurança

No entanto, partindo da premissa de que os direitos de terceira geração são reais objetivos para o futuro, temos duas consequências drásticas princi- pais: o agigantamento ainda

Rosa. Integrante do Projeto de Pesquisa “República e Democracia no Estado de Direito”.. Ao longo da História, houve sucessivas mudanças na organização

ter se passado tão lentamente como muda uma montanha, aos nossos olhos eternamente parada e cujas mudanças só são percebidas pelos olhos de Deus” (DOURADO, 1999, p.

São eles, Alexandrino Garcia (futuro empreendedor do Grupo Algar – nome dado em sua homenagem) com sete anos, Palmira com cinco anos, Georgina com três e José Maria com três meses.