You are on page 1of 12

UNIVERSIDADE FEDERAL DE SANTA MARIA

CENTRO DE TECNOLOGIA
ENGENHARIA DA COMPUTAO
TRANSMISSO E COMUNICAO DE DADOS
Prof. Dr. Renato Machado

TRABALHO PRTICO 1
SIMULAO DE AMOSTRAGEM E
QUANTIZAO DE UM SINAL

Tiago Mantay

Santa Maria, RS, Brasil


2015

1 OBJETIVO

Fazer a amostragem, com quantizao uniforme, e apresentar o espectro em


frequncia de um sinal de udio no formato .wav, utilizando o software MATLAB, e
verificar, para diferentes taxas de amostragem, o efeito da sub e da super amostragem na
qualidade do sinal de udio resultante da converso.

2 BASE TERICA

2.1 Amostragem

Sinais analgicos so contnuos no tempo, ou seja, possuem infinitas amostras em


um intervalo de tempo. Para digitalizar qualquer sinal analgico necessrio limitar o
nmero de amostras, no processo denominado converso analgico-digital (A/D). O
nmero de amostras est diretamente ligado fidelidade da converso. Por exemplo, o
mp3 um formato de udio digital resultado de uma converso A/D, que possui
frequncias de amostragem desde 32 Kbps (Kbits por segundo) at 320 Kbps.

Segundo o critrio de Nyquist para amostragem (Equao 1), para um sinal com
largura de banda limitada, possvel reconstruir o sinal amostrado perfeitamente se a
frequncia de amostragem (Fs em Hertz) for no mnimo duas vezes a componente de
maior frequncia do sinal (Fm).
= 2

(1)

Na prtica utiliza-se uma Fs maior para se atingir maior exatido no processo de


amostragem. O perodo de amostragem Ts (Equao 2) em segundos, definido pela
equao 2:

(2)

Figura 1: Exemplo de sinal e amostragem

2.1 Quantizao

A quantizao o processo que representa as amplitudes do sinal (A) em um


nmero finito de nveis de deteco (N) em um processo de amostragem. Quanto maior
for o nmero de nveis utilizados maior ser a fidelidade da converso assim como
quantidade de bits (b) necessrios para represent-los.
= 2

(3)

A distncia entre os nveis de quantizao (), definida pela equao (4).

(4)

3 METODOLOGIA

Primeiramente necessita-se abrir um arquivo .wav no nosso script. Para isso pode
ser utilizada a funo wavread(y,fs,bits), que l o arquivo e retorna 3 variveis: a matriz
que representa o sinal de udio (y), a fs e a nmero de bits utilizados para representar as
amplitudes (bits). No caso dos arquivos .wav a fs 44100 Khz e so utilizados 16 bits
para representar os nveis de quantizao. O arquivo deve estar localizado na mesma pasta
do script com a extenso .m.

Para apresentar o grfico do sinal de udio necessrio saber a quantidade de


amostras a serem representadas. A funo length(y), sendo y nosso sinal, retorna o
comprimento do vetor y. possvel reproduzir o arquivo de udio com a funo
sound(y,Fs).

Para verificao da banda ocupada til analisar o grfico do sinal em frequncia.


O espectro em frequncia do sinal pode ser obtido utilizando a funo fft(y). necessrio
retirar o valor absoluto do eixo resultante da transformada de Fourier, para manipulao
vetorial, no Matlab isso pode ser feito utilizando a funo abs(Y).

O prximo passo no processo amostragem em si, com a funo resample(y,N,M)


pode se reamostrar o sinal para um fator N/M. No presente trabalho, para fins didticos,
h a representao de 3 sinais de udio, o sinal 1 com a frequncia de amostragem de
8Khz, o sinal 2 com a frequncia de 4Khz e o sinal 3 de aproximadamente 1,5Khz.

Figura 2: Grfico do sinal 1

Figura 3: Grfico dos sinal 2

Figura 4: Grfico dos sinal 3

Figura 5: Grficos dos espectros de frequncias dos sinais

Figura 6: Grficos resultado da simulao

4 ANLISE DOS RESULTADOS

Todos os sistemas digitais trabalham, em ltima instncia, com matemtica


discreta, ou seja, elementos finitos chamados de bits. Nosso mundo analgico, existem
infinitos valores dentro de qualquer intervalo de tempo finito. Para tornar possvel o
processamento digital de sinais, de vital importncia que haja uma discretizao dos
dados, ou seja, que o nmero de amostras deve ser finito.

O processo de amostragem um passo importante em toda converso


analgico/digital, pois ir definir a quantidade de amostras por tempo, ou frequncia de
amostragem.

Entretanto para representar um sinal com maior qualidade necessrio amostrar


com uma maior taxa (bits por segundo), aumentando a complexidade do hardware. Desse
modo preciso minimizar quantidade de bits para o processo ser prtico e eficiente. Do
mesmo modo, por exemplo, um processo de converso A/D de um sensor de temperatura

em um ambiente que pode variar de 0C a 30 C, com a preciso de 1C, deve ter 30


nveis de quantizao. Como N=2b, seriam necessrios 5 bits para representar 32 nveis
de quantizao, sendo assim, seria um desperdcio utilizar mais nveis, ou bits, para tal
tarefa e fica a cargo do projetista definir a resoluo necessria. O mesmo acontece com
o MP3, a maioria dos usurios no tem o equipamento necessrio ou no percebem
diferena de um MP3 com bitrate de 320 Kbps para um de 128 Kbps, desse modo, mais
vantajoso utilizar o de menor bitrate, pois exigir menor espao de armazenamento.

A frequncia de amostragem de um vdeo, por exemplo, em torno de 30 fps


(frames por segundo), se este valor for reduzido a 2 fps, veremos 2 quadros por segundo,
seria uma diferena muito sensvel, porm se elevarmos este valor de 30 fps para 500 fps,
no seria muito perceptvel pois h a limitao humana na viso, que est perto dos 30
fps. Por este motivo a amostragem consegue representar de uma forma aparentemente
contnua sinais discretos no tempo, tendo em vista a capacidade limitada dos sentidos dos
seres humanos.

5 BIBLIOGRAFIA

[1] Silveira, Jorge Luis da. Comunicao de Dados e Sistemas de Teleprocessamento.


Makron, McGraw-Hill, 2002.
[2] Tanenbaum, Andrew S. Redes de Computadores, Editora Campus, 1996.
[3] Stallings, W. Wireless Communications and Networks, Prentice Hall, 2002
[4] Stallings, William. Data and Computer Communications. Prentice Hall, 6th edition,
2000.

ANEXO A: Cdigo da simulao


% Autor: Tiago Mantay
% Disciplina: Transmisso e Comunicao de Dados
% Professor: Renato Machado, Dr
%LEITURA, REPRODUO, AMOSTRAGEM, ESPECTRO DO SINAL E RECUPERAO DE
UM
%ARQUVIO .WAV
%arquivo somm.wav deve estar na mesma pasta
% LEITURA DO ARQUIVO DE UDIO
[y,Fs,bits] = wavread('somm.wav');
%
%

% SINAL 1
fs=8000 Hz, bits=16, y o sinal
Ts=1.2500e-04 s

Y = resample(y,1,2);
fs=4000Hz
YY = resample(y,1,5);
fs=1500Hz

% SINAL 2

numAmostras = (length(y)-1);
numAmostras2 = (length(Y)-1);
numAmostras3 = (length(YY)-1);
ty = 0 :(1/Fs): numAmostras*(1/Fs);
1703 posies
tyy = 0 :(2/Fs): numAmostras2*(2/Fs);
posies
tyyy = 0 :(5/Fs): numAmostras3*(5/Fs);
posies

%
%
%
%

1703 amostras,
800 amostras
340 amostras,
Vetor tempo

Vetor tempo 800

Vetor tempo 340

sound(y,Fs);
sound(Y,Fs);
sound(YY,Fs);

% SINAL 3

%
%
%

reproduz o arquivo de udio


reproduz o arquivo de udio com fs/2
reproduz o arquivo de udio com fs/5

%Grfico do sinal de udio


%SINAL1
figure(1);
plot(ty,y,'red');
tt = ['som.wav ' num2str(Fs) ' Hz e ' num2str(bits) ' bits
decodificao por amostra'];
title(tt);
xlabel( 'tempo (s)');
ylabel( 'amplitude');
%SINAL2
figure(2);
plot(tyy,Y,'red');
title('sinal amostrado fs/2 ');
xlabel( 'tempo (s)');
ylabel( 'amplitude');
%SINAL3
figure(3);
plot(tyyy,YY,'red');
title('sinal amostrado fs/2 ');
xlabel( 'tempo (s)');
ylabel( 'amplitude');

td=1/Fs;
tam=2^ceil(log2(numAmostras));
Fmax=1/(2*td);
Faxis=linspace(-Fmax,Fmax,tam+1);
Xsig=fftshift(fft(y,tam)/tam);

td2=2/Fs;
tam2=2^ceil(log2(numAmostras2));
Fmax2=1/(2*td2);
Faxis2=linspace(-Fmax,Fmax,tam+1);
Xsig2=fftshift(fft(Y,tam2)/tam2);

td3=5/Fs;
tam3=2^ceil(log2(numAmostras3));
Fmax3=1/(2*td3);
Faxis3=linspace(-Fmax,Fmax,tam3+1);
+256
Xsig3=fftshift(fft(YY,tam3)/tam3);

%Lfft = 512
%Fmax = 256
%Faxis = vetor de -256 a +256

%Lfft = 512
%Fmax = 256
%Faxis = vetor de -256 a +256

%Lfft = 512
%Fmax = 256
%Faxis = vetor de -256 a

td2=2/Fs;
%GRFICO DO ESPECTRO EM FREQUENCIA
figure(4);
%SINAL1
subplot(311)
stem(Faxis(1:tam),abs(Xsig));
xlabel('frequencia (hz)');
title('Espectro do sinal ');
%SINAL2
subplot(312)
stem(Faxis2(1:tam2),abs(Xsig2));
xlabel('frequencia (hz)');
title('Espectro do sinal amostrado');
%SINAL2
subplot(313)
stem(Faxis3(1:tam3),abs(Xsig3));
xlabel('frequencia (hz)');
title('Espectro do sinal amostrado');
figure(5);
subplot(311);
stem(y,'b');
tt = ['som.wav ' num2str(Fs) ' Hz e ' num2str(bits) ' bits
decodificao por amostra'];
title(tt);
xlabel( 'tempo (s)');
ylabel( 'amplitude');
subplot(312);
stem(Y,'b');
title('Sinal amostrado fs/2');

xlabel( 'tempo (s)');


ylabel( 'amplitude');
subplot(313);
stem(abs(YY),'b');
title('Sinal amostrado fs/5');
xlabel( 'tempo (s)');
ylabel( 'amplitude');
sound(y,Fs);
sound(Y,Fs);
sound(YY,Fs);

reproduz os arquivos de udio