Escolar Documentos
Profissional Documentos
Cultura Documentos
1 Introdução
Este labortório apresenta dois importantes conceitos de sinais digitais. A primeira secção
discute como os números são armazenados em memória. Números podem ser de ponto fixo
ou pnto flutuante. É coerente que decimais e números que podem ter faixas muito largas
de valores utilizem o sistema de ponto flutuante ou floating point. O segundo assunto sobre
armazenamento numérico é a quantização. Todos os sinais anaçógicos que são processados no
computador precisam ser quantizados. Vamos examinar os erros que surgem nessa operação
e determinar como diferentes nı́veis de quantização afetam a qualidade do sinal. Vamos
estudar dois tipos de quantizadores. O quantizador uniforme e o quantizador max, o qual
minimiza o erro médio quadrático entre o sinal original e o sinal quantizado.
2.2 Complemento de um
Para representar um número negativo é calculado o complemento de cada um dos bits do
número positivo. O número positivo 27 na forma de complento de um é escrito como:
0 0 0 1 1 0 1 1
1 1 1 0 0 1 0 0
F = M ∗ 2E
A mantissa é uma fração com sinal, que possui uma potência de dois no denominador.
O expoente é um inteiro com sinal, que representa a potência de dois que a mantissa deve
ser multiplicada. Esses números com sinais podem ser representados com qualquer um dos
três formatos de números de ponto fixo. A IEEE possui um padrão para ponto flutuante
(IEEE 754). Para um número de 32 bits, o primeiro bit é o sinal da mantissa. O expoente
os utiliza os próximos oito bits (o primeiro para o sinal e os 7 restantes para a quantidade),
e a mantissa é armazenada nos 23 bits resntantes. A faixa total de valores para esse número
é [−1.18 ∗ 10−38 , 3.4038 ].
Para adicionar dois números em ponto flutuante, os expoentes devem ser iguais. Se os
expoentes forem diferentes a mantissa é ajustada até que os expoentes sejam corrigidos. Se
um número muito pequeno é adicionado a um número muito grande, o resultado pode ser
igual ao número muito grande. Por exemplo, se 0.15600...0 ∗ 230 é adicionado a 0, 62500...0 ∗
2−3 , o segundo número seria convertido para 0.0000...0 ∗ 230 antes da adição. Uma vez que
a mantissa consegue armazenar apenas 23 números binários, os dı́gitos decimais 625 seriam
perdidos na conversão. Em resumo, o segundo número é arredondado para zero. Para a
multiplicação, os dois expoentes são adicionados e a mantissas multiplicadas.
3 Quantização
3.1 Introdução
Quantização é o ato de aproximar o valor de um sinal ou quantidade para certos nı́veis
discretos. Por exemplo, escalas digitais podem arredondar peso para a grama mais próxima
(na verdade, se estivermos falando sobre peso trata-se de força e portanto gramas-força;
caso contrário se for massa gramas). Tensões analógicas em um sistema de controle pode ser
arredondadas para o valor mais próximo de tensão antes de entrar no sistema controle digital.
Geralmente todos os números necessitam ser quantizados antes de serem representados no
computador.
Imagens digitais também são quantizadas. Os nı́veis de cinza em uma fotografia preta
e branca precisam ser quantizados para armazenar a imagem no computador. Usualmente
é atribuı́do um valor inteiro entre 0 e 255 (tipicamente) para o brilho da fotografia em
cada pixel, onde 0 corresponde ao preto e 255 ao branco. Um vez que um número de 8
bits pode representar até 256 diferentes valores, a imagem é denominada de ’imagem em
escala de 8 bits de cinza’. Uma imagem que é quantizada para apenas 1 bit por pixel (pode
UFRGS - PPGEE - 2012 LAB09
assumir apenas pixels em branco ou preto) é denominada de imagem de meio tom. Muitas
impressoras funcionam colocando, ou não colocando, uma região de tinta colorida em cada
ponto no papel. Para que isso seja adequado, a imagem deve passar por um processo de
’meio tom’ antes ser impressa.
A quantização pode ser pensada como um mapeamento funcional y = f (x) de um valor
real de entrada para um valor discreto de saı́da. Um exemplo de uma função de quantização
é mostrado na Figura 1, onde o eixo x é o valor de entrada e o eixo y é o valor de saı́da
quantizado.
Escreva uma função matlab Y=Uquant(X,N) que faz a quantização uniforme de um array
de entrada X (vetor ou matriz) para N nı́veis discretos. Utilize essa função para quantizar
a imagem fountainbw.tif para 7 b/pel, 6,5,4,3,2,1 b/pel e observe as imagens de saı́da.
Primeiramente faça o download dos arquivos speech.au e music.au. Utilize a sua função
Uquant para quantizar os sinais para 7,4,2 e 1 bits/amostra. Escute o sinal original e os sinais
quantizados e reponda as seguintes questões:
• Descreva as mudanças de qualidade nos sinais com a redução do número de bits por
amostra.
• Qual dos sinais tem a sua qualidade deteriorada primeiro com a diminuição do número
de nı́veis?
• Você acredita que 4 bits por amostra é aceitável para sistemas de telefonia? ... 2 bits
por amostra?
Utilize o comando subplot para plotar os quatro sinais do sinal speech.au de na faixa
de ı́ndices 7201:7400. Repita esse procedimento para o sinal music.au. Faça as observações
nessas figuras.
E =X −Y
[r,lags]=xcorr(E,200,’umbiased’);
plot(lags,r)
UFRGS - PPGEE - 2012 LAB09
Agora calcule e plote uma estimativa da função de correlação cruzada entre o sinal
speech.au quantizado Y e cada sinal de erro E usando:
[c,lags]=xcorr(E,Y,200,’umbiased’);
plot(lags,c)
• A correlação é influnciada pelo número de nı́veis de quantização? As amostras no sinal
de erro parecem estar correlacionadas umas com as outras?
• O número de nı́veis de quantização influencia a correlação cruzada?
Nessa expressão, o ruı́do é o sinal de erro E. Geralmente , isso significa que um alto
P SN R implica em um sinal menos ruidoso.
A potência do sinal amostrado x(n) é definida por:
Px = L1 Ln=1 x2 (n)
P
Figure 3.2: Quantizador Max de cinco nı́veis para um sinal com distribuição gaussiana
3.5.1 Demonstração
O quantizador max determina os nı́veis de quantização baseado na função densidade de
probabilidade do conjunto de dados f (x), e o número de nı́veis desejados N . Ele minimiza
o erro médio quadrado entre o sinal original e o sinal quantizado:
N Z
X xk+1
= (qk − x)2 f (x)dx (3.1)
k=1 xk
Isso significa que cada limite não infinito é exatamente a metade de dois nı́veis adjacentes
de quantização. e que cada nı́vel de quantização está no centróide de sua região. A Figura 2
mostra um quantizador de cinco nı́veis para um sinal com distribuição gaussiana. Note que
os nı́veis estão próximos nas regiões de probabilidade elevada.
O matlab possui uma função chamada lloyds que faz essa otimização. A sua sintaxe é: