Transcript

AMOSTRAGEM E RECONSTRUÇÃO DE SISTEMAS CONTÍNUOS NO TEMPO

Introdução Para que seja possível processar um sinal de tempo contínuo em um computador, o mesmo deve ser primeiramente digitalizado. Isso significa que o sinal de tempo contínuo deve ser amostrado e quantizado, formando um sinal digital que pode ser armazenado no computador. Sistemas analógicos podem ser convertidos em digitais, os quais podem ser processados de forma digital e posteriormente enviado a uma saída analógica novamente. Ou seja, o sinal analógico pode ser reconstruído através de um conversor DA. A Figura 1 ilustra um exemplo contendo os três componentes descritos nas linhas anteriores: amostrador, processador e reconstrutor.

Figura 1 – Exemplo de um sistema de processamento digital de sinal Quando se projeta um sistema desse tipo, é essencial entender os efeitos dos processos de amostragem e reconstrução. Os mesmos podem causar diferentes tipos de distorções. O projetista deve ter certeza de que essas distorções estão abaixo de níveis aceitáveis ou que as mesmas serão compensadas por algum processamento adicional. Amostragem A amostragem é simplesmente um processo de medir o valor de um sinal de tempo contínuo em certos instantes de tempo. Tipicamente essas medidas estão uniformemente espaçadas por um período de amostragem Ts. Se x(t) é o sinal de entrada, então o sinal amostrado y(n) é

t=nTsy(n) = x(t)| . Uma questão crítica: Qual o período de amostragem Ts necessário para representar com fidelidade o sinal x(t)? Para responder essa questão precisamos observar as representações de x(t) e y(n) no domínio frequência. Como y(n) é um sinal de tempo discreto, nós devemos representá-lo com uma DTFT ( )iY e ω . Entretanto, x(t) é um sinal de tempo contínuo que necessita da Transformada de Fourier de tempo contínuo. Felizmente, ( )iY e ω pode ser descrita em termos de ( ) ( )X ou X fΩ :

( ) ( ) 22

1 |

1 22

s

jkfks T

ks s

Y e X fT

kXT T

∞ω

ω− π==−∞ π

=−∞

=

⎛ ⎞ω− π= ⎜ ⎟π⎝ ⎠

Consistentemente com as propriedades da DTFT, ( )iY e ω é periódica com período 2π. Ocorre apenas um escalonamento da amplitude e da freqüência de ( )X f . O ponto crítico da relação é o conteúdo de frequência de ( )X f . Se ( )X f tem componentes de freqüência acima de 1/(2Ts),

AMOSTRAGEM E RECONSTRUÇÃO DE SISTEMAS CONTÍNUOS NO TEMPO

ocorrerá o aliasing, ou seja uma sobreposição de componentes e o sinal original, não poderá mais ser recuperado. Para prevenir o aliasing, a maioria dos sistemas de amostragem precisam de um filtro passa baixas na entrada, para garantir que todo o conteúdo de freqüência fique abaixo de 1/(2Ts), a freqüência de Nyquist. Nesse caso ( )iY e ω pode ser relacionado com ( )X Ω , com k=0.

( ) [ ]12

j

s s

Y e X para - , T T

ω ⎛ ⎞ω= ω∈ π π⎜ ⎟π⎝ ⎠

Sabe-se que ( )iY e ω é periódico com período 2π. Note nessa expressão que ( )iY e ω e ( )X f são relacionados por um simples escalonamento dos eixos de magnitude e frequência. Note também que ω = π em ( )iY e ω corresponde à freqüência de Nyquist, f = 1/(2Ts) em ( )X f . Se o sinal amostrado precisar ser convertido novamente para um sinal analógico, teoricamente, isso poderia ser feito convertendo o sinal de tempo discreto em uma seqüência de impulsos no tempo contínuo com os “pesos dos valores das amostras”. Se o trem de impulsos de tempo contínuo é filtrado com um passa baixas ideal, com freqüência de corte igual a freqüência de Nyquist, uma versão escalonada do sinal filtrado original surgirá. O espectro do sinal reconstruído é:

( ))sj2 fT

s

1Y (e para f < 2TS f

0 caso contrário.

π⎧⎪= ⎨⎪⎩

Amostragem e reconstrução Na prática, sinais são reconstruídos utilizando conversores digitais- analógicos. Esses dispositivos funcionam lendo uma amostra do sinal discreto e gerando uma tensão (ou corrente) de saída correspondente para um período de Ts. O efeito combinado de amostragem e conversão DA podem ser pensados como um simples dispositivo sample-and-hold (amostra e retém). Infelizmente o processo de sample-and-hold distorce o espectro de freqüência do sinal reconstruído. Vamos analisar os efeitos de um sample-and-hold de ordem zero em um sistema de amostragem e reconstrução. A Figura a seguir ilustra um sistema com um filtro passa baixas na entrada, um sample-and-hold e um filtro passa baixas de saída. Se não houvesse amostragem, esse sistema seria composto simplesmente dois filtros cascateados, do qual conhecemos a resposta em freqüência. Qualquer diferença entre a resposta em freqüência desse e do sistema inteiro (com o amostrador) é resultado da amostragem e do processo de reconstrução. Nosso objetivo é comparar as duas respostas em freqüência utilizando o Matlab. Para essa análise assumiremos que os filtros são de enésima ordem do tipo Butterworth com freqüência de corte fc, e que o sample-and-hold roda a uma taxa de amostragem de fs = 1/Ts.

Começaremos a análise examinando o caso ideal. Considere a substituição do sample-and-hold por um gerador de impulsos ideal e assuma que ao invés de filtros Butterworth nós utilizamos filtros

AMOSTRAGEM E RECONSTRUÇÃO DE SISTEMAS CONTÍNUOS NO TEMPO

passa baixas ideais com freqüência de corte fc. Depois de analisar esse caso vamos estudar o sample-and-hold e o filtro Butterworth. Se um gerador de impulsos ideais é usado no lugar do sample-and-hold então o espectro de freqüência do trem de impulsos pode ser calculado combinando as equações:

( ) ( ) 22

1 |

1 22

s

jkfks T

ks s

Y e X fT

kXT T

∞ω

ω− π==−∞ π

=−∞

=

⎛ ⎞ω− π= ⎜ ⎟π⎝ ⎠

∑ com ( ) )sj2fTY (e para f < 1S f

0 caso contrário.

⎧⎪= ⎨⎪⎩

Assumindo que 2s cf f≥ , a soma infinita se reduz a um termo e nesse caso o sinal reconstruído é

( ) ( )1

s

S f X fT

= . Note que o sinal reconstruído está escalonado por um fator 1

sT.

É claro que o sample-and-hold não gera impulsos perfeitos. Ao invés, ele gera um pulso de largura Ts e magnitude igual a amostra de entrada. Portanto, o novo sinal na saída do sample-and-hold é equivalente ao velho sinal (um trem de impulsos) convoluído com o pulso:

Convolução no domínio do tempo é equivalente a multiplicação no domínio da freqüência, assim a convolução com p(t) é equivalente a multiplicação pela Transformada de Fourier P(f) onde

Finalmente a magnitude da resposta em freqüência de um filtro de enésima ordem é dada por:

Podemos calcular a magnitude da resposta do sistema sample-and-hold combinando os efeitos dos filtros Butterworth, o sistema de amostragem ideal e o pulso do sample-and-hold, o que leva a expressão final:

AMOSTRAGEM E RECONSTRUÇÃO DE SISTEMAS CONTÍNUOS NO TEMPO

Note que a expressão |sinc(f/fs)| produz um resultado de atenuação suave das freqüências próximas da da taxa de amostragem de Nyquist. Geralmente essa “suavizade” não é desejável, mas tolerável na maioria dos casos. Biblioteca para o SIMULINK

Biblioteca para o simulink a ser utilizada nesse laboratório Vamos utilizar o Simulink para simular os efeitos dos processos de amostragem e reconstrução. O Simulink trata todos os sinais como sinais de tempo contínuo. Isso significa que sinais amostrados são apenas sinais de tempo contínuo que contém uma série finita de pulsos de largura finita. A altura desses pulsos é a amplitude do sinal no início do pulso. Em outras palavras, tanto a amostragem como o reconstrutor de ordem zero são feitos no mesmo tempo. O sinal de tempo discreto não é gerado. Isso significa que o bloco gerador de impulsos é apenas um gerador de pulsos, ou um dispositivo retentor de ordem zero. Lembre-se que no Simulink, o espectro de freqüência é calculado no tempo contínuo. Por essa razão, muitas componentes sofrendo aliasing aparecerão no espectro. 1. Amostrando e reconstruindo com um gerador de impulso O gerador de impulsos é na verdade a combinação de um gerador de impulso e um retentor de ordem zero perfeito. Primeiramente carregue o arquivo lab. Digite lab no propmt do Matlab. Abrirá uma biblioteca no simulink conforme a figura anterior. Feche todas as figuras abertas e abra o experimento 1:

AMOSTRAGEM E RECONSTRUÇÃO DE SISTEMAS CONTÍNUOS NO TEMPO

Neste experimento um seno é amostrado a uma frequência de 1 Hz; então o sinal amostrado de tempo discreto é utilizado para gerar impulsos retangulares de duração e 0,3 s e amplitude do sinal amostrado.O bloco denominado Impulse Generator tem na sua saída a amostragem do seno reconstruída. Um osciloscópio é utilizado para plotar a entrada e a saída do gerador de impulsos e um analisador de espectro é utilizado para plotar o trem de impulsos e seu espectro. Primeiramente, rode a simulação com a freqüência de entrada do seno em 0.1 Hz. Analise os seu resultados. No espectro do sinal reconstruído observe as componentes do sinal reconstruído. Interprete os resultados! Impulsos ideais podem ser aproximadas apenas. No experimento anterior, a largura do pulso é de 0.3 s, o que é menor que o período de amostragem (1 s). Experimente ajustar a largura do pulso em 0,1 s e rode a simulação. Analise e interprete os resultados. O que mudou em relação ao caso anterior? Explique! Ajuste a largura do pulso em 0.3 s e mude a frequência do seno para 0.8 Hz. Rode a simulação e analise os novos resultados. No gráfico da frequência, verifique o pico de frequência que corresponde a menor freqüência (componente fundamental) da saída do sinal. Explique porque a menor freqüência não é mais a mesma freqüência da senóide de entrada. Acerte a frequência de entrada em 0.8 Hz. Insira um filtro após o gerador de impulsos e utilize um filtro de décima ordem Butterworth com uma freqüência de corte de 0.5 Hz. Conecte a saída do filtro ao analisador de espectro e o Mux e rode a simulação. Explique o espectro do sinal de saída. Faça as analises e comentários embasados nos gráficos gerados! 2. Amostragem e reconstrução de sinal com sample-and-hold Vamos amostrar um sinal de tempo continuo usando um sample-and-hold e posteriormente vamos reconstruí-lo. Sabemos que um sample-and-hold seguido de um filtro passa baixas não resulta em reconstrução perfeita. Esta é a razão pela qual um sample-and-hold funciona como um gerador de pulsos com uma duração de pulso de um período de amostragem. Esta “forma de pulso” de um sample-and-hold é o que distorce o espectro de freqüência. Carregue o experimento 2. Uma estrutura como ilustra a figura a seguir abrirá.

AMOSTRAGEM E RECONSTRUÇÃO DE SISTEMAS CONTÍNUOS NO TEMPO

Modelo no Simulink para amostragem e reconstrução utilizando sample-and-hold. O bloco Network Analyzer funciona gerando um sinal do tipo chirp (mostrado no Scope 1) como entrada do sistema sob teste. O espectro de freqüência desse sinal é conhecido. O analisador mede mede então os conteúdos de freqüência do sinal de saída (Scope 4). A função de transferência é formada calculando a razão do espectro de freqüência da saída pela entrada. A Transformada de Fourier inversa dessa razão, que é a resposta ao impulso do sistema é então calculada. Inicialmente o bloco Sample-and-Hold e o Scope 3 não são conectados. Não há nenhum amostrador nesse sistema, apenas dois filtros passa-baixas em cascata. Rode a simulação e observe os sinais nos Scopes. Analise a resposta em freqüência e a resposta ao impulso. Abra o bloco Sample-and-Hold (duplo-clique) e acerte o tempo de amostragem em 1. Posteriormente, insira o Sample-and-Hold entre os dois filtros e conecte o Scope 3 a sua saída. Rode a simulação e observe os sinais no osciloscópio. Analise as respostas de magnitude e fase e a resposta ao impulso do sistema. Explique a diferença em relação a primeira parte do problema . Forneça uma expressão analítica para o comportamento da magnitude abaixo de 0.45 Hz. Faça as analises e comentários embasados nos gráficos gerados! 3. Interpolação no tempo discreto Nos experimentos anteriores, vimos que o conteúdo de freqüência do sinal precisa ser limitado à metade da taxa de amostragem a fim de evitar o efeito de aliasing no sinal reconstruído. Entretanto a reconstrução do sinal pode ser difícil se a taxa de amostragem escolhida é apenas um pouco superior a freqüência de Nyquist. A reconstrução é muito mais fácil para uma frequência de amostragem mais elevada porque o sinal de saída é mais “parecido” ao sinal de entrada. De outro ponto de vista, o filtro analógico de saída precisa ter uma ordem muito alta para reconstruir o sinal amostrado, com uma freqüência levemente superior a freqüência de Nyquist, com fidelidade. Filtros como os descritos são difíceis e caros para construir. Uma taxa de amostragem mais elevada permite a utilização de filtros analógicos mais suaves (ordens mais baixas), que são muito mais baratos. Entretanto taxas de amostragens altas não são viáveis em muitas aplicações, uma vez que são necessários dispositivos de armazenamento.

AMOSTRAGEM E RECONSTRUÇÃO DE SISTEMAS CONTÍNUOS NO TEMPO

Uma solução prática para este dilema é interpolar o sinal digital para criar novas amostras entre aquelas existentes. Isso pode ser feito primeiramente aumentando (upsampling) a representação digital e então filtrando a as componentes indesejadas com um filtro de tempo discreto. Esse filtro serve para a mesma finalidade que um filtro analógico de ordem elevada, porém é mais barato e relativamente simples. Fazer uma sobre amostragem (upsampling) do sinal por um fator L é simplesmente o processo de inserir L-1 zeros entre cada amostra. A relação no domínio freqüência entre um sinal x(n) e sua versão sobre amostrada z(n) é:

Portanto a DTFT de z(n) é simplesmente X(ejω) comprimida na freqüência por um fator L. Como X(ejω) tem período 2π, Z(ejω) terá um período de 2π/L. Toda a informação original de x(n) estará contida dentro do intervalo [−π/L, π/L] de Z(ejω), e novo aliasing será criado no intervalo [−π,π] , as componentes indesejadas que precisam ser filtradas. No domínio do tempo, essa filtragem tem o efeito de mudar os zeros inseridos em amostras artificiais de x(n), usualmente denominadas de amostras amostradas. A Figura a seguir mostra um modelo do simulink que demonstra a interpolação de tempo discreto. O sistema de interpolação contém três componentes principais: um upsampler que insere L − 1 zeros entre cada amostra de entrada, um filtro de tempo discreto passa baixas, para remover as componentes que sofrem aliasing no sinal interpolado e um bloco de ganho para corrigir a magnitude do sinal final. Note que o sinal a é um sinal de tempo discreto enquanto o sinal c é sinal de tempo discreto interpolado. Abra o experimento Discrete Time Interpolator. Os components do sistema são inicialmente ajustados para interpolar por um fator de 1. Isso significa que os sinais de entrada e saída serão iguais, com exceção do delay. Rode este modelo com os ajustes iniciais e observe o sinal no osciloscópio. O Simulink representa qualquer sinal de tempo discreto retendo cada amostra em um certo período de tempo. Esta representação é equivalente à reconstrução com o sample-and-hold do sinal de tempo discreto. Portanto, um analisador de espectro (de tempo contínuo) pode ser utilizado para visualizar o conteúdo de freqüência do sinal de saída c. O retentor de ordem zero é necessário na saída como um buffer para o analizador de espectro a fim de ajustar o período de amostragem. As componentes de menor freqüência no espectro correspondem ao conteúdo de freqüência do sinal original de entrada, enquanto as altas freqüências são componentes que sofreram aliasing resultantes da reconstrução sample-and-hold. Note que as componentes que sofreram aliasing do sinal c aparecem em múltplos da frequência de amostragem de 1 Hz.

Sistema para upsampling. Faça a interpretação dos resultados e identifique as componentes que sofreram aliasing.

AMOSTRAGEM E RECONSTRUÇÃO DE SISTEMAS CONTÍNUOS NO TEMPO

Posteriormente modifique o sistema para uma sobre amostragem de 4, ajustando esse parâmetro no bloco Upsampler. Você precisará ajustar o tempo de amostragem do filtro (de tempo discreto - DT) para 0.25. Isso efetivamente aumentará a taxa de amostragem do sistema para 4 Hz. Rode a simulação novamente e observe o comportamento do sistema. Note que os zeros foram inseridos entre amostras do sinal de entrada. Analise os resultados dos gráficos gerados na saída. Note as componentes que sofreram aliasing geradas pelo upsampler. Algumas dessas componentes espectrais caem entre a freqüência do sinal original e a nova fequência de amostragem, 4 Hz. Isso ocorre devido aos zeros que foram inseridos pelo upsampler. Identifique as components que sofrem aliasing. Note na saída do Scope que o processo de upsampling causa um descréscimo na energia na representação do sample-and-hold por um fator de 4. Por essa razão utilizamos um bloco de ganho. Agora determine o fator de ganho do bloco de ganho e a freqüência de corte do filtro passa-baixas para produzir a interpolação desejada. Rode a simulação e observe o comportamento do sistema. Identifique as componentes que sofrem aliasing. Explique porque a interpolação de tempo discreto é desejada antes de reconstruir o sinal. Faça as analises e comentários embasados nos gráficos gerados! 4. Decimação de tempo discreto Na seção anterior utilizamos a interpolação para incrementar a taxa de amostragem do sinal de tempo discreto. Entretanto é comum termos o problema inverso, no qual a a taxa de amostragem desejada é menor que a taxa de amostragem real. Nesse caso, precisamos de um processo denominado decimação para reduzir a taxa de amostragem do sinal. Decimação ou downsampling de um sinal x(n) por um fator de D é o processo de criar um novo sinal y(n) pegando a cada D amostras de x(n). Portanto y(n) é simplesmente x(Dn). A relaçào no domínio frequência entre y(n) e x(n) é:

Note a semelhança da equação acima com a equação do teorema de amostragem. Essa semelhança é esperada porque a decimação é um processo de amostrar um sinal de tempo discreto. Nesse caso, Y(ejω) é formado tomando X(ejω) no intervalo [−π,π] , e expandindo-o em freqüência por um fator D. Então, ele é repetido em freqüência a cada 2π, e escalado em amplitude por 1/D. Por razões similares descritas no início desse trabalho, se X(ejω) é zero fora do intervalo [−π/D,π/D] , prevenir-se-á de aliasing dentro do intervalo [−π,π]. E então a equação reduz-se a:

Um sistema para fazer a decimação de um sinal é mostrado na figura a seguir o sinal é primeiramente filtrado e usando um filtro passa-baixas com freqüência de corte de π/2 rad/amostra. Isso assegura que o sinal tenha banda limitada e a equação anteriro se aplica. A saída do filtro é então subamostrada removendo amostras. Faça o download do arquivo music.au . Leia o sinal contido nesse arquivo usando o camndo auread e rode o mesmo com o comando sound . O sinal contido em music1.au foi amostrado com 16 kHz, assim ele vai parecer muito mais lento quando rodado com taxa de amostragem de 8kHz (default do comando sound – leia o help e experimente novas taxas!). Para corrigir a taxa de amostragem do sinal, crie um novo sinal, sig1, copiando todo o vetor de music.au. Depois calcule um sinal

AMOSTRAGEM E RECONSTRUÇÃO DE SISTEMAS CONTÍNUOS NO TEMPO

subamostrado, sig2, primeiramente passando um filtro passa baixas com freqüência de corte π/2. Depois aplique a decimação no sinal filtrado por 2 e ouça cuidadosamente o novo sinal. DICA: Você pode filtrar o sinal usando o commando do Matlab output = conv(s,h), onde s é o sinal e h é a resposta ao impulso do filtro desejado. Para projetar um filtro passa baixa de comprimento M (utilize comprimento 20) com freqüência de corte ωrad/amostra, use o comando h = fir1(M,W/pi). Faça o código no Matlab para esse exercício . Também comente a qualidade do sinal de áudio gerada utilizando o método da decimação por 2.

Conclua sobre o método utilizado e as suas observações.


Top Related