1. Amostragem
1.1 Revisão da teoria:
- Nenhum sinal digital tem componentes com frequências acima de fs/2.
- Se o sinal analógico a ser digitalizado tiver componentes acima de fs/2, estas devem ser eliminadas antes da amostragem.
- Se isto não for feito, ocorre o efeito de aliasing, que consiste na transposição dos sinais de alta frequência para a região compreendida entre 0 e fs/2, causando distorção do sinal.
1.2 Experiências
1. Gere um sinal digital de 1000 amostras que simule um sinal analógico, consistindo de uma única senóide de frequência 30.76 Hz, amostrada a 1 kHz por 1 segundo. Plote este sinal digital com o eixo x sendo o tempo, de 0 a 1 s.
% Gerando sinal de 30.76 Hz amostrado a 1kHz.
fs = 1000; % Frequência de amostragem em Hertz
f = 30.76; % frequência do sinal a ser gerado em Hertz
t=0:1/fs:1; % Geração do eixo de tempo (1 segundo)
y=sin(2*pi*f*t); % Geração do sinal
% Mostrando o sinal gerado
plot(t,y)
title("Sinal amostrado a 1kHz");
xlabel("tempo (s)");
ylabel("amplitude (V)");
grid
|
% Reamostrando o sinal a 200 Hz
tamanho=length(y);
t1=1;
t2=1;
while (t1<tamanho)
y200(t2) = y(t1);
t1 = t1+5;
t2 = t2+1;
end
|
% Mostrando o sinal gerado
fs2=200;
t=0:1/fs2:1; % Geração do eixo de tempo (1 segundo)
t=t(1:length(y200));
plot(t,y200)
title("Sinal amostrado a 200Hz");
xlabel("tempo (s)");
ylabel("amplitude (V)");
grid
|
2. Quantização
2.1 Revisão da teoria

2.2 Experiências
% Gerando um sinal com duas senóides
fs = 1000; % Frequência de amostragem em Hertz
f2=100.47;
f = 40.76; % frequência do sinal a ser gerado em Hertz
t=0:1/fs:1; % Geração do eixo de tempo (1 segundo)
nAmostras = length(t);
y1=cos(2*pi*f*t); % Geração do sinal
y2=cos(2*pi*f2*t); % Geração do sinal
y=y1+y2;
maximo=max(abs(y));
y=y/maximo;
Vmax = max(y);
Vmin = min(y);
% Mostrando o sinal gerado
plot(t,y)
title("Sinal amostrado a 1kHz");
xlabel("tempo (s)");
ylabel("amplitude (V)");
grid
|
nBits=8;
for n=1:nAmostras
z(n)=quantiza(y(n),Vmin,Vmax,nBits);
end
for n=1:nAmostras
zn(n)=normaliza(z(n),Vmin,Vmax,nBits);
end
plot(t,zn,'r')
diferenca=y-zn;
variancia = var(diferenca)
desviopadrao = sqrt(variancia)
|